Автоматически перезапускать задания, отправленные с sbatch --array при ошибке - PullRequest
1 голос
/ 25 апреля 2019

Я отправляю задания в массиве.Иногда одно задание приводит к ошибке из-за сложной проблемы диагностики памяти графического процессора.Простой повторный запуск задания приводит к успеху.

Я хотел бы поймать эту ошибку, зарегистрировать ее и вернуть задание в очередь для повторного выполнения.Если это невозможно сделать с работой с массивами, это нормально, не обязательно использовать массивы (хотя и предпочтительнее).

Я пытался поиграться с sbatch --rerun, но это не таккажется, что я делаю то, что хочу (я думаю, что этот вариант предназначен для повторного запуска после аппаратной ошибки, обнаруженной в slurm, или если узел перезапускается при выполнении задания - это не так для моих заданий).

Любой совет хорошо принят.

1 Ответ

1 голос
/ 25 апреля 2019

Если вы можете обнаружить проблему с памятью графического процессора, вы можете завершить задание отправки с помощью такой конструкции:

if <gpu memory issue>; then
    scontrol requeue $SLURM_JOBID
fi

Это вернет задание в очередь планирования и будет перезапущено как есть.,Интересно, что переменная окружения SLURM_RESTART_COUNT содержит количество раз, когда задание было поставлено в очередь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...