小编Vic*_*yyy的帖子

Python 使用 slurm 进行多处理

我想使用多重处理来运行一个简单的任务(我认为这与在 matlab 中使用 parfor 相同,正确吗?)

例如:

from multiprocessing import Pool
def func_sq(i):
    fig=plt.plot(x[i,:])     #x is a ready-to-use large ndarray, just want
    fig.save(....)           #to plot each column on a separate figure

pool = Pool()
pool.map(func_sq,[1,2,3,4,5,6,7,8])
Run Code Online (Sandbox Code Playgroud)

但我很困惑如何使用 slurm 提交我的工作。我一直在寻找答案,但找不到好的答案。目前,虽然不使用多处理,但我正在使用 slurm 作业 sumit 文件,如下所示:(名为 test1.sh)

#!/bin/bash

#SBATCH -N 1
#SBATCH -n 1
#SBATCH -p batch
#SBATCH --exclusive

module load anaconda3
source activate py36
srun python test1.py
Run Code Online (Sandbox Code Playgroud)

然后,我在提示窗口中输入 sbatch test1.sh。

那么如果我想使用多处理,我应该如何修改我的sh文件?我自己尝试过,但似乎只需将 -n 更改为 16 和 Pool(16) 就会使我的工作重复 16 次。

或者,如果多重处理不合适,是否有办法最大化我的性能(我听说过多重威胁,但不知道它到底是如何工作的)

我该如何有效地利用我的记忆力才不会被压垮?(我的x矩阵很大)

谢谢!

对于 GPU …

python multiprocessing python-3.x slurm

5
推荐指数
1
解决办法
5080
查看次数

标签 统计

multiprocessing ×1

python ×1

python-3.x ×1

slurm ×1