我知道通过使用初始化REPL,我可以在Julia上使用多个线程
julia --threads 4
但是有没有办法从Julia内部添加线程?我可以通过做这个来更改读数
julia> Threads.nthreads()
1
julia> Threads.nthreads() = 4
julia> Threads.nthreads()
4
但我没有注意到任何性能提升。我有一种感觉,以这种方式设置线程数并不能像我期望的那样工作。
一旦启动Julia,就不能增加线程池。
也许最好的选择是使用带有线程号参数的auto
:
$ julia --threads auto
julia> Threads.nthreads()
8
需要知道的另一件重要的事情是,Julia可以调用具有自己独立线程池的C库。线性代数BLAS是最显著的例子:
$ julia --threads 2
julia> using LinearAlgebra
julia> BLAS.get_num_threads()
8
julia> Threads.nthreads()
2