我在python中的多处理代码完全适用于我的计算机。但是当我使用slurm时,我得到一个Exceed job
内存错误。我无法弄清楚如何解决这个问题。在this link @jaap建议使用cgroups会计,但我不明白如何实现它。我还没有授权改变它。谁有人建议解决方案?下面你可以看到我的slurm代码:
#!/bin/bash
#SBATCH -p mid1
#SBATCH -A rrrr
#SBATCH -J python_auvergne
#SBATCH -n 1
#SBATCH -c 16
#SBATCH --time=04-00:00:00
#export PATH=$/truba/home/rulug/anaconda3/bin/:$PATH
module load centos7.3/comp/gcc/7
python3 V1.py
exit
您没有在提交脚本中指定内存要求,因此您将获得默认值,该值可能非常低。
添加#SBATCH --mem=4GB
或更多以请求更多内存。
但请注意,对于Python多处理作业,您需要指定-c 16
而不是-n 16
,因为后者可能会在multiprocessing
模块无法处理的不同节点(服务器)上分配作业,而前者将确保所有保留的核心在同一个节点上。