Illumina / Nirvana

The nimble & robust variant annotator
https://illumina.github.io/NirvanaDocumentation/
GNU General Public License v3.0
171 stars 44 forks source link

"Illegal instruction" when running on NAS (x86_64) Ubuntu 18.04.5 LTS #47

Closed sorgoz closed 3 years ago

sorgoz commented 3 years ago

Hi,

I'm trying to run Nirvana on a NAS device that has Ubuntu 18.04.5 LTS. Arch = x86_64.

When I start annotation, it outputs the header with names and the beginning of the table, but soon the process terminates with "Illegal instruction" message.

How can I get more info what is wrong exactly?

Dotnet version 5.0.201 (also tried earlier versions - couldn't even build the release with 2.1).

MichaelStromberg commented 3 years ago

Hi Sergey,

This is due to our BlockCompression library that is compiled in C++. In the past, illegal instruction referred to our use of AVX instructions in the library. For now, we have backed away from that and are targeting older CPU instructions (-march=ivybridge -mtune=haswell).

The second reason why this sometimes happens is because of old versions of the Linux kernel / glibc library. In the past we even distributed a separate library for older CentOS 6 machines: https://github.com/MichaelStromberg-Illumina/DotNetMisc/tree/master/lib_centos6

You can drop the CentOS 6 library into your Nirvana directory to see if it helps. Otherwise, you can try to compile your own BlockCompression library using that repo: https://github.com/Illumina/BlockCompression

Let me know if that works for you.

sorgoz commented 3 years ago

Thanks for the quick response Michael.

I tried using the precompiled lib for centos6 as you suggested - the error changed to another one (something about not seeing the actual data after decompression), so I went further and compiled BlockCompression from the source.

This new build caused exactly the same initial error - Illegal Instruction.

Then I changed MARCH variable in the Makefile to native, rebuilt the lib and that solved the problem.

MichaelStromberg commented 3 years ago

Brilliant! I'm glad everything worked out!