我正在尝试在集群上运行一些并行代码。集群使用 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 个内核,或者由于其他原因可能很慢。有谁知道出了什么问题?