slurm python多处理超出内存限制
我的python多处理代码在我的计算机上运行得非常好。但是当我使用slurm时,我得到一个slurm python多处理超出内存限制,python,memory-management,memory-leaks,multiprocessing,slurm,Python,Memory Management,Memory Leaks,Multiprocessing,Slurm,我的python多处理代码在我的计算机上运行得非常好。但是当我使用slurm时,我得到一个except作业内存错误。我想不出如何解决这个问题。在@jaap中,我建议使用cgroups记帐,但我不知道如何实现它。而且我还没有授权更改它。有人能提出解决办法吗?下面您可以看到我的slurm代码: #!/bin/bash #SBATCH -p mid1 #SBATCH -A rrrr #SBATCH -J python_auvergne #SBATCH -n 1 #SBATCH -c 16 #SBATC
except作业
内存错误。我想不出如何解决这个问题。在@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多处理作业,您需要指定
-c16
,而不是-n16
,因为后者可能会在不同的节点(服务器)上分配作业,而多处理
模块无法处理这些作业,而前者将确保所有保留的核心都在同一个节点上。首先感谢您的回答。我试过--mem=90GB,这是最大值。一开始我认为它有效,但过了一点,它给了我同样的错误。也使用了-c16而不是-n16,没有任何变化。但我还是有同样的问题。在sacct-j
的内存相关(*RSS,*VM)列中,您使用了哪些数字?sacct结果中没有与RSS和VM相关的列,可能是因为我使用了srun的sbatch intead。我将使用srun再次运行它,然后给出结果。MaxRSS maxrstask AveRSS maxvmize AveVMSize aveviskwrite MaxDiskWrite 50013996K 0 49957916K 284507664K 284443280K 2589.83M 2589.83M@damienfrancois这是他们将linux记帐更改为cgroup时修复的问题。我并没有意识到区别是什么,但至少问题解决了。谢谢大家