On Mon, Nov 23, 2015 at 11:43 AM, Ian Watson <ianiwat...@gmail.com> 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?
>
>

Reply via email to