multithreading - 初始化后在 Julia 中添加线程

标签 multithreading multiprocessing julia

我知道我可以通过初始化 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/

相关文章:

java - java中如何让一个线程对象停止另一个线程对象

python - PicklingError 中的多重处理结果

linux - 如何检测并找出一个程序处于死锁状态?

julia - Julia 中不可变对象(immutable对象)的地址

java - ThreadPoolExecutor 在关闭之前未完全执行线程

iOS 应用程序意外中断。多线程问题(可能)

java - 从两个sql服务器快速加载数据

python - 我应该使用线程或多处理来对 Python 进行暴力破解吗?

struct - Julia:修改可变结构数组中的相同字段

julia - 如何在 Julia 中执行向量的逐元素平方根?