假设我正在使用@async
在后台运行昂贵的计算。是否会在运行Julia运行时的同一线程上(即在同一CPU内核上)执行此计算?如果是,我是否必须像julia --threads 2
一样启动Julia并使用Base.Threads
?
最佳答案
@async
产生一个绿色线程协程。它们都将在同一系统线程中生成,因此对于等待外部资源(IO,远程作业)的并行性类型很有用,对于诸如并行化数值计算之类的事情(除非它们在远程上完成)是不利的。工作人员)。
基本上,在Julia中,您具有以下并行类型:
@simd
-利用CPU的单指令多数据(SIMD)功能@async
-协程@threads
-多线程,需要设置JULIA_NUM_THREADS
环境变量@distributed
-单台或多台机器上的多处理CUDA.jl
您可以在StackOverflow上为上述每个主题找到几个更详细的示例。
关于multithreading - Julia :@async和多个CPU内核/线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64094328/