我发现我机器上的所有进程只在一个核心上运行,并且它们的核心关联设置为 0。这是一个小的 python 脚本,它为我重现了这个:
import multiprocessing
import numpy as np
def do_a_lot_of_compute(a):
for i in range(1000):
a = a * np.random.randn(123789)
return a
if __name__ == '__main__':
with multiprocessing.Pool() as pool:
pool.map(do_a_lot_of_compute, np.arange(10000))
pid 15977's current affinity list: 0
pid 15978's current affinity list: 0
pid 15979's current affinity list: 0
pid 15980's current affinity list: 0
pid 15981's current affinity list: 0
pid 15982's current affinity list: 0
pid 15983's current affinity list: 0
pid 15984's current affinity list: 0
pid 15985's current affinity list: 0
所以我的问题归结为:为什么核心亲和力都设置为 0?没有设置 OMP 或 KMP 环境变量。
该问题涉及SLURM
并PBS
设置基于请求的核心数量的核心相关性。在SLURM
添加以下行允许使用所有核心的:
#SBATCH --cpus-per-task=8
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句