环境变量设置
export JULIA_NUM_THREADS=2
Julia REPL启动命令
julia -p 2
在不使用多进程的情况下运行
rand(Float64, (10000, 10000)) * rand(Float64, (10000, 10000))
在top下能够看到CPU占用最高800%,说明使用了8个核做计算。
如果运行
using Distributed
@spawnat :any rand(Float64, (10000, 10000)) * rand(Float64, (10000, 10000))
在top下看到CPU最高占用只有100%.
问题:
- 为什么在指定一个worker计算时不会进行线程并行?
- 在单进程运行时,矩阵乘法并行时的线程数似乎与环境变量JULIA_NUM_THREADS无关,如何手动指定?
PS:
julia> versioninfo()
Julia Version 1.4.2
Commit 44fa15b150* (2020-05-23 18:35 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: AMD EPYC 7702P 64-Core Processor
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, znver1)