Thank you Yichao Updating binutils solved the problem. Note that the link says that binutils needed to be at 2.18 or better, but the initial version on the system was 2.20 which failed. Once I updated to the latest, 2.25.1, everything worked. Maybe some other earlier versions might have worked too...
So, now I have julia built with MARCH=x86-64 OPENBLAS_DYNAMIC_ARCH=0 make (or MARCH=core2) and it seems to be working on all the hardware in our cluster. Now, presumably I am losing some performance on various pieces of hardware, but that can wait for another day... As ever, the Julia community works just great... Thanks! Ian On Monday, November 23, 2015 at 12:08:16 PM UTC-5, Yichao Yu wrote: > > On Mon, Nov 23, 2015 at 11:43 AM, Ian Watson <[email protected] > <javascript:>> wrote: > > 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 > > Yes, you should build with an architecture that is compatible with all > the ones you want to run on. > > > > > > ../kernel/x86_64/dtrmm_kernel_4x8_haswell.c:79: Error: no such > instruction: > > `vpermpd $0xb1,%ymm3,%ymm3' > > binutils too old > > https://github.com/julialang/julia#linux-build-troubleshooting > > > > > 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? > > > > >
