Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
slurm python多处理超出内存限制_Python_Memory Management_Memory Leaks_Multiprocessing_Slurm - Fatal编程技术网

slurm python多处理超出内存限制

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

我的python多处理代码在我的计算机上运行得非常好。但是当我使用slurm时,我得到一个
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时修复的问题。我并没有意识到区别是什么,但至少问题解决了。谢谢大家