We have a Linux cluster that consists of different models of hardware.

If I build Julia on one kind of hardware, say

model name      : Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz

but then run that installation on another kind of hardware, say

model name      : Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz

I will usually get an error message

ERROR: Target architecture mismatch. Please delete or regenerate 
sys.{so,dll,dylib}.

As far as I know, the underlying O/S and software on both machines is the 
same, Red Hat Enterprise Linux Server release 6.6 (Santiago), but I cannot 
be 100% certain about that. I am compiling with gcc-5.2.0

I tried the suggestion in DISTRIBUTING.md, but setting MARCH to either 
core2 or x86-64 failed on the E5-2680 machine - openblas usually fails 

../kernel/x86_64/dtrmm_kernel_4x8_haswell.c:79: Error: no such instruction: 
`vpermpd $0xb1,%ymm3,%ymm3'

A discussion thread a year ago seemed to indicate some problems as well...

https://groups.google.com/forum/#!topic/julia-users/3H9Krno8aVU

I can of course build an architecture specific Julia for each different 
kind of hardware we have, or some subset of them, and then invoke the right 
version depending on where the job is run, but is there an easier way? 


Reply via email to