gpt4 book ai didi

python - 使用 slurm 在单个节点上使用 python 进行多处理

转载 作者:行者123 更新时间:2023-12-05 06:20:24 24 4
gpt4 key购买 nike

我正在尝试在集群上运行一些并行代码。集群使用 slurm,我的代码是用 python 编写的。当我在自己的机器上运行代码时,它使用了多个内核。但是,当我尝试在集群上运行代码时,它非常慢,而且似乎没有使用多核。

这里是python的相关代码:

from multiprocessing import Pool

Nz_i=range(1,13)

p=Pool()
p.map(Err_Calc,Nz_i)
p.close()
p.join()

函数 Err_Calc 是在前面定义的。我不认为它的定义是相关的。

我用来在集群上运行代码的 SBATCH 如下:

#!/bin/bash
#SBATCH -N 1
#SBATCH -p RM-shared
#SBATCH --ntasks-per-node 13
#SBATCH -t 03:10:00

module load python/intel_2.7.14

python Err_vs_Nz_Cl.py

文件 Err_vs_Nz_Cl.py 包含我上面显示的代码。我希望这个 SBATCH 能为我提供 13 个内核,但代码似乎只使用了 1 个内核,或者由于其他原因可能速度很慢。有谁知道出了什么问题吗?

最佳答案

这可能是错误的(我是新手),但是如果将 --ntasks-per-node 13 参数更改为 --cpus-per-task 13 会发生什么?我认为文档说您需要以这种方式明确指定 cpu 的数量,否则它将只使用一个 cpu 运行。

来源:https://slurm.schedmd.com/sbatch.html

关于python - 使用 slurm 在单个节点上使用 python 进行多处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60513212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com