rvaser/sword

Illegal instruction error

Closed this issue ยท 11 comments

Hi Robert!
I find that when trying to run a command like:

sword -i ./Step5_align_contigs_to_database/TempFiles/Translated_step4_AbundanceFiltered_Trinity.09.fasta -t 12 -o ./Step5_align_contigs_to_database/TempFiles/Translated_step4_AbundanceFiltered_Trinity.09.result.tsv -f bm9 -j /mibi/Jon/CoMW/databases/NCyc_100.faa -c 30000

I get "Illegal instruction" as output. I got the syntax above from the script and even if I shave arguments down to just -i -o -j it gives the same error message. I have checked the -i file and they seem to be in the correct fasta-format. I have also checked lengths of sequences. The longest is just above 2200 bytes, so no problem there (checked because you recorded an issue with lengths of sequences above 65k).
Can you help with this?
Kr,
Jon

Hello Jon,
are there any log messages or does it exit immediately? Can you please run cat /proc/cpuinfo | grep "sse" and paste the output here?

Best regards,
Robert

Hi Robert,

Jon and I have worked together using sword in a workflow CoMW that I have developed. If you remember, we have talked extensively and you made sword available through conda. This is same error that another person had and I was trying to debug the situation. Even running sword -h exits immediately with same error "Illegal Instruction". @bgp799 can post the cat /proc/cpuinfo grep "sse" and I will ask the same from another person who had the error.

Thanks for helping,
Zohaib

It works very well in my system with sword=1.0.3. I have added my cat /proc/cpuinfo | grep "sse" output below to compare once @bgp799 will post too.

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate sme ssbd ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip rdpid overflow_recov succor smca

Hi Zohaib, Jon,
I checked whether there are any AVX2 instructions present in the sword conda executable, and there are despite the flag -mno-avx2 added via cmake command. Jon, your server does not support them and hence the error occurs. I'll try and sort it out soon.

Best regards,
Robert

That is very helpful, Robert.
Thank you very much.
Zohaib

Version 1.0.4 in conda should fix your problem. Let me know if it works for you.

Thank you Robert for helping with this. I have checked it in my system, it works very well for me just like before.

@bgp799 I have udpdated CoMW as well with new version of sword.
Zohaib

@rvaser I checked with another colleague who had similar issues of "Illegal Instruction". With sword=1.0.4 it works fine on his machine.
Thanks for helping. I guess you can close the issue now.

Zohaib

Hi Robert!
It looks like it's running now. I will close this issue. Thank you for a fast response! It has helped me:-)
Kind regards,
Jon