Re: [julia-users] How to build Julia in a portable way (for compute farm deployment)?

2015-08-03 Thread David van Leeuwen
Hello Jameson, 

I have more/less the same issue as Glen H---I need to build a single Julia 
for a large cluster with a varied set of x86_64 architectures.  My strategy 
would be to build on the newest arch (to get maximum dynamic openblas 
support) but with restricted ARCH/MARCH setting, x86_64 / x86-64 (mind the 
_ - difference).   Indeed the oldest arch is an AMD with SSE2 but not SSE3, 
the rest is Intel core2 and higher up. 

However, today's 0.4-dev download with Make.user


ARCH=x86_64

MARCH=x86-64


gives on fresh make (after download):

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /bin/mkdir -p

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking whether make supports nested variables... yes

checking build system type... x86_64-pc-linux-gnu

checking host system type... x86_64-pc-linux-gnu

checking for x86_64-linux-gcc... gcc -march=x86_64 -m64 

checking whether the C compiler works... no

configure: error: in `/homes/eva/q/qleuween/src/julia/deps/libuv':

configure: error: C compiler cannot create executables

See `config.log' for more details

make[1]: *** [libuv/config.status] Error 77

make: *** [julia-deps] Error 2


To me it seems that libuv is using an ARCH setting for MARCH, but I don't 
know how to circumvent this. 


Cheers, 


---david

On Thursday, September 11, 2014 at 4:50:34 AM UTC+2, Jameson wrote:
>
> openblas defaults to detecting the runtime system and picking the best 
> code to run for that computer.
>
> The recommendation to remove `sys.so` has been deprecated. Setting ARCH / 
> MARCH is now the preferred solution. (note that core2 is not the least 
> common denominator, since there exist some AMD chips without some of the 
> core2 instructions – instead use x86_64 / x86-64)
>
>
> On Wed, Sep 10, 2014 at 10:17 PM, Glen Hertz  > wrote:
>
>> Hi,
>>
>> I'm trying to deploy Julia to users in a compute farm environment with 
>> many machines running on different CPUs.  This has been discussed here:
>>
>>
>> https://groups.google.com/forum/?fromgroups=#!searchin/julia-users/make$20dist/julia-users/B8x6CYbFUNY/Ph5Cunhl5EwJ
>>
>> The recommendation was to use `make dist` which builds a tarball that 
>> doesn't include `sys.so` and you can move it to any machine.  With the 0.3 
>> release `make dist` builds `sys.so` so I removed it but the executable is 
>> still not portable.  What are the most likely steps to build Julia so it 
>> works on different hardware?  I did something like this (on a RHEL 5.5 
>> system):
>>
>> "Make.user":
>> FC=gfortran44
>> CC=gcc44
>> CXX=g++44
>> MARCH=core2
>> OPENBLAS_TARGET_ARCH=CORE2
>>
>> (I updated binutils, python and patchelf).
>>
>> When I run `make dist` it crease a tarball with a `sys.so` so I deleted 
>> it.  It still segfaults.  
>>
>> It doesn't seem like `OPENBLAS_TARGET_ARCH` is working since 
>> `versioninfo()` shows it was compiled for `Nehalem`.  Note, to rebuild I 
>> did:
>>
>> ```
>> cp Make.user ..
>> git clean -xdf
>> cp ../Make.user .
>> make dist
>> ```
>>
>> Please let me know if there is something better I can try out and if I 
>> get something working I can update the documentation.  
>>
>> Thanks,
>>
>> Glen
>>
>>
>

Re: [julia-users] How to build Julia in a portable way (for compute farm deployment)?

2014-09-10 Thread Jameson Nash
openblas defaults to detecting the runtime system and picking the best code
to run for that computer.

The recommendation to remove `sys.so` has been deprecated. Setting ARCH /
MARCH is now the preferred solution. (note that core2 is not the least
common denominator, since there exist some AMD chips without some of the
core2 instructions – instead use x86_64 / x86-64)


On Wed, Sep 10, 2014 at 10:17 PM, Glen Hertz  wrote:

> Hi,
>
> I'm trying to deploy Julia to users in a compute farm environment with
> many machines running on different CPUs.  This has been discussed here:
>
>
> https://groups.google.com/forum/?fromgroups=#!searchin/julia-users/make$20dist/julia-users/B8x6CYbFUNY/Ph5Cunhl5EwJ
>
> The recommendation was to use `make dist` which builds a tarball that
> doesn't include `sys.so` and you can move it to any machine.  With the 0.3
> release `make dist` builds `sys.so` so I removed it but the executable is
> still not portable.  What are the most likely steps to build Julia so it
> works on different hardware?  I did something like this (on a RHEL 5.5
> system):
>
> "Make.user":
> FC=gfortran44
> CC=gcc44
> CXX=g++44
> MARCH=core2
> OPENBLAS_TARGET_ARCH=CORE2
>
> (I updated binutils, python and patchelf).
>
> When I run `make dist` it crease a tarball with a `sys.so` so I deleted
> it.  It still segfaults.
>
> It doesn't seem like `OPENBLAS_TARGET_ARCH` is working since
> `versioninfo()` shows it was compiled for `Nehalem`.  Note, to rebuild I
> did:
>
> ```
> cp Make.user ..
> git clean -xdf
> cp ../Make.user .
> make dist
> ```
>
> Please let me know if there is something better I can try out and if I get
> something working I can update the documentation.
>
> Thanks,
>
> Glen
>
>


[julia-users] How to build Julia in a portable way (for compute farm deployment)?

2014-09-10 Thread Glen Hertz
Hi,

I'm trying to deploy Julia to users in a compute farm environment with many 
machines running on different CPUs.  This has been discussed here:

https://groups.google.com/forum/?fromgroups=#!searchin/julia-users/make$20dist/julia-users/B8x6CYbFUNY/Ph5Cunhl5EwJ

The recommendation was to use `make dist` which builds a tarball that 
doesn't include `sys.so` and you can move it to any machine.  With the 0.3 
release `make dist` builds `sys.so` so I removed it but the executable is 
still not portable.  What are the most likely steps to build Julia so it 
works on different hardware?  I did something like this (on a RHEL 5.5 
system):

"Make.user":
FC=gfortran44
CC=gcc44
CXX=g++44
MARCH=core2
OPENBLAS_TARGET_ARCH=CORE2

(I updated binutils, python and patchelf).

When I run `make dist` it crease a tarball with a `sys.so` so I deleted it. 
 It still segfaults.  

It doesn't seem like `OPENBLAS_TARGET_ARCH` is working since 
`versioninfo()` shows it was compiled for `Nehalem`.  Note, to rebuild I 
did:

```
cp Make.user ..
git clean -xdf
cp ../Make.user .
make dist
```

Please let me know if there is something better I can try out and if I get 
something working I can update the documentation.  

Thanks,

Glen