python - slurm python多处理超出内存限制

标签 python memory-management memory-leaks multiprocessing slurm

我的 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 模块无法处理,而前者将确保所有保留的核心都在同一节点上。

关于python - slurm python多处理超出内存限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55274469/

相关文章:

python - MinValueValidator 不适用于 Django 中的 DecimalField

python - Networkx:NetworkXException:节点列表包含随机 block 模型的重复项

linux - 如何找出linux下的空闲物理内存量(在c中)

python - kivy TextInput更改字体颜色添加背景线

python - ansible 支持 boto3 吗?

python - Django 应用程序的典型内存使用情况

ios - 深入了解保留周期

swift - 为什么在 UIView 再次添加到父级之前不调用 deinit?

iphone - 如何在不造成内存泄漏的情况下清除自定义对象的 NSMutableArray?

c++ - 为什么删除我的指针不会删除我的指针?