That's because the default configured maximum is 16 cores.

Look for `NUM_THREADS` in deps/Makefile. The reason we keep this low is 
because openblas allocates NUM_THREADS buffers on startup, and it makes 
julia consume a lot of memory.

See: https://github.com/xianyi/OpenBLAS/issues/321

You can change this value in deps/Makefile. We could even make this a 
top-level make configuration parameter. 

Perhaps the right way to do this is to compile with a large number, like 
256, but set OPENBLAS_NUM_THREADS to a conservative value to prevent 
unnecessary allocation.

-viral

On Thursday, April 9, 2015 at 11:37:31 PM UTC+5:30, Chris Rackauckas wrote:
>
> Hello,
>   I am new to Julia and am trying to get it to use multi-threaded BLAS via 
> openBLAS on an HPC node. I compiled it on the HPC and in Julia I check
>
> julia> versioninfo()
> Julia Version 0.3.8-pre+2
> Commit af187c5 (2015-03-25 14:33 UTC)
> Platform Info:
>   System: Linux (x86_64-unknown-linux-gnu)
>   CPU: AMD Opteron(tm) Processor 6376
>   WORD_SIZE: 64
>   BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Piledriver)
>   LAPACK: libopenblas
>   LIBM: libopenlibm
>   LLVM: libLLVM-3.3
>
> I then run a simple test
>
> A = rand(40000,40000);
> B = rand(40000,40000);
> A*B;
>
> In another window I used htop to check the performance and see that it is 
> using (and maxing) 16/64 cores on the node. I also tried increasing the 
> number of BLAS threads
>
> blas_set_num_threads(64)
>
> Is there some compilation command I have to use to make it use more than 
> 16 cores? Something else? Or am I the only one with this issue and should 
> contact the HPC techs? Other programs I run using the the setup are able to 
> use all 64 cores.
>

Reply via email to