我知道我可以通过初始化 REPL 在 Julia 上使用多个线程
julia --threads 4
但是有没有办法从 Julia 内部添加线程呢?我可以通过这样做来改变nthreads
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
关于multithreading - 初始化后在 Julia 中添加线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71532661/