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