所有进程都运行在同一个核心上

所有进程都运行在同一个核心上

我发现我的机器上的所有进程都只在单个核心上运行,并且它们的核心亲和力设置为 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))

htop 看起来像这样: 在此输入图像描述 核心亲和力是:

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 环境变量。

答案1

SLURM该问题与PBS根据请求的核心数量设置核心关联性有关。添加SLURM以下行可以使用所有核心:

#SBATCH --cpus-per-task=8

相关内容