我在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模块无法处理的不同节点(服务器)上分配作业,而前者将确保所有保留的核心都在同一节点上。

09-04 13:14