многопроцессорность в slurm python превысила лимит памяти - PullRequest
1 голос
/ 21 марта 2019

Мой многопроцессорный код в python отлично работает на моем компьютере.Но когда я использую slurm, я получаю ошибку памяти Exceed job.Я не могу понять, как решить эту проблему.В эта ссылка @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

1 Ответ

1 голос
/ 29 марта 2019

Вы не указываете требования к памяти в сценарии отправки, поэтому вы получаете значение по умолчанию, которое может быть очень низким.

Добавить #SBATCH --mem=4GB или больше, чтобы запросить больше памяти.

Но учтите, что для многопроцессорной работы Python вам нужно указать -c 16, а не -n 16, потому что последняя потенциально может распределять задания по отдельным узлам (серверам), которые модуль multiprocessing не может обрабатывать, в то время какПервый будет гарантировать, что все зарезервированные ядра находятся на одном узле.

...