ERROR: Target architecture mismatch. Trying to get Julia working on a machine with multiple CPUs

question

#1

On a machine with Ubuntu 16.04 and 2 intel CPUs.

EDIT: see post at the end. Apparently I can’t get Julia running on the other CPU on this machine. So the real question is how to build Julia on a machine with two physical CPUs?

First without override ARCH=x86_64 in Make.user I always get ERROR: Target architecture mismatch. Please delete or regenerate sys.{so,dll,dylib}.
Anyways, no problem there with the override in the Make.user file override ARCH=x86_64 julia builds and runs fine.

However running make test keeps spitting ERROR: Target architecture mismatch. Please delete or regenerate sys.{so,dll,dylib}. Any help here?

Running julia - no problem
Running julia test/runtests.jl all spits:

$ julia --check-bounds=yes test/runtests.jl all
ERROR: Target architecture mismatch. Please delete or regenerate sys.{so,dll,dylib}.
ERROR: Target architecture mismatch. Please delete or regenerate sys.{so,dll,dylib}.
Master process (id 1) could not connect within 60.0 seconds.
exiting.
Master process (id 1) could not connect within 60.0 seconds.
exiting.
Master process (id 1) could not connect within 60.0 seconds.
exiting.
Master process (id 1) could not connect within 60.0 seconds.
exiting.
Master process (id 1) could not connect within 60.0 seconds.
exiting.
Master process (id 1) could not connect within 60.0 seconds.
exiting.
Master process (id 1) could not connect within 60.0 seconds.
exiting.
Master process (id 1) could not connect within 60.0 seconds.
exiting.
Master process (id 1) could not connect within 60.0 seconds.
exiting.
Master process (id 1) could not connect within 60.0 seconds.
exiting.
Master process (id 1) could not connect within 60.0 seconds.
exiting.
Master process (id 1) could not connect within 60.0 seconds.

#4

no problem there with the override in the Make.user file override ARCH=x86_64 julia builds and runs fine.

This should not be necessary. Are you on a cluster? Using system LLVM? What’s output of versioninfo()?


#6

Ah I think it’s some issue related to multiple CPUs on this machine. Doing

julia> addprocs(40)
ERROR: Target architecture mismatch. Please delete or regenerate sys.{so,dll,dylib}.
ERROR: Target architecture mismatch. Please delete or regenerate sys.{so,dll,dylib}.

I do have 2 physical CPUs on this machine.

The real question then is how to fix this?


#7

Do the generic tarballs work? I use them on a dual Intel CPU machine all the time without a problem. That would be a good test if you haven’t run it already.


#8

Yes the generic tarballs work. So something must be going on with the source build that’s causing this problem. Is there something special I must override in the make file ?


#9

I think you need to override MARCH instead of ARCH.