Hi, consider the following example:
julia> versioninfo()
Julia Version 1.1.1
Commit 55e36cc308 (2019-05-16 04:10 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Xeon(R) Gold 6136 CPU @ 3.00GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-6.0.1 (ORCJIT, skylake)
Environment:
JULIA_NUM_THREADS = 24
julia> using LinearAlgebra
julia> BLAS.set_num_threads(24)
julia> ccall((:openblas_get_num_threads64_, Base.libblas_name), Cint, ())
16
julia> BLAS.set_num_threads(12)
julia> ccall((:openblas_get_num_threads64_, Base.libblas_name), Cint, ())
12
It won’t let me get more than 16 threads for BLAS. The computer has 2 CPUs, each of which has 12 cores (24 HT). How does the limitation 16
come from?
Thanks!