Julia kernel cannot start

Not sure whether to open a github issue or create a topic here:

I’m using the latest version of the jupyter/datascience-notebook docker container.

Every time I start a new notebook with the Julia kernel, I get this output in the container logs:

[I 01:42:55.775 NotebookApp] Kernel started: f79978e7-60f6-4cc9-bf73-5aec2be8fcfc
Invalid instruction at 0x7fd595fb7ba8: 0x62, 0xf1, 0x7d, 0x48, 0xef, 0xc0, 0xc3, 0x90, 0x89, 0xc2, 0x83, 0xe2, 0xe0, 0x0f, 0x8e

signal (4): Illegal instruction
in expression starting at none:0
dot_compute at /opt/julia-1.4.1/bin/../lib/julia/libopenblas64_.so (unknown line)
Allocations: 2503 (Pool: 2495; Big: 8); GC: 0
[I 01:42:58.775 NotebookApp] KernelRestarter: restarting kernel (1/5), new random ports
Invalid instruction at 0x7fdf27741ba8: 0x62, 0xf1, 0x7d, 0x48, 0xef, 0xc0, 0xc3, 0x90, 0x89, 0xc2, 0x83, 0xe2, 0xe0, 0x0f, 0x8e

signal (4): Illegal instruction
in expression starting at none:0
dot_compute at /opt/julia-1.4.1/bin/../lib/julia/libopenblas64_.so (unknown line)
Allocations: 2503 (Pool: 2495; Big: 8); GC: 0
[I 01:43:01.787 NotebookApp] KernelRestarter: restarting kernel (2/5), new random ports
Invalid instruction at 0x7fb44b8f2ba8: 0x62, 0xf1, 0x7d, 0x48, 0xef, 0xc0, 0xc3, 0x90, 0x89, 0xc2, 0x83, 0xe2, 0xe0, 0x0f, 0x8e

signal (4): Illegal instruction
in expression starting at none:0
dot_compute at /opt/julia-1.4.1/bin/../lib/julia/libopenblas64_.so (unknown line)
Allocations: 2503 (Pool: 2495; Big: 8); GC: 0
[I 01:43:04.798 NotebookApp] KernelRestarter: restarting kernel (3/5), new random ports
Invalid instruction at 0x7fbc1d03dba8: 0x62, 0xf1, 0x7d, 0x48, 0xef, 0xc0, 0xc3, 0x90, 0x89, 0xc2, 0x83, 0xe2, 0xe0, 0x0f, 0x8e

signal (4): Illegal instruction
in expression starting at none:0
dot_compute at /opt/julia-1.4.1/bin/../lib/julia/libopenblas64_.so (unknown line)
Allocations: 2503 (Pool: 2495; Big: 8); GC: 0
[I 01:43:07.807 NotebookApp] KernelRestarter: restarting kernel (4/5), new random ports
Invalid instruction at 0x7f3d9b958ba8: 0x62, 0xf1, 0x7d, 0x48, 0xef, 0xc0, 0xc3, 0x90, 0x89, 0xc2, 0x83, 0xe2, 0xe0, 0x0f, 0x8e

signal (4): Illegal instruction
in expression starting at none:0
dot_compute at /opt/julia-1.4.1/bin/../lib/julia/libopenblas64_.so (unknown line)
Allocations: 2505 (Pool: 2496; Big: 9); GC: 0
[W 01:43:10.818 NotebookApp] KernelRestarter: restart failed
[W 01:43:10.818 NotebookApp] Kernel f79978e7-60f6-4cc9-bf73-5aec2be8fcfc died, removing from map.

I was using an older version of the container image (from around April or May) getting this problem, updated to the latest version, and still seeing the same problem.

Ok, I found some more info about it now:

Turns out its a problem which is caused by running the kernel on a Xeon processor, and inside a docker container. Basically, when inside a docker container libOpenBLAS cannot correctly detect the CPU features of the host, so it uses AVX512 instructions which causes the crash on Xeon machines.

Theres a workaround mentioned:

You can start the container with

docker run -it --rm -e OPENBLAS_CORETYPE=haswell jupyter/datascience-notebook
1 Like