#slurm
#slurm
Вопрос:
Я думал MaxRSS
, что это было использовано для понимания требований к памяти SLURM
для заданий; однако теперь я задаю себе вопрос.
Я получил уведомление SLURM
о том, что моя работа не удалась.
SLURM Job_id=7347729 Name=job.cph.proband завершен, время выполнения 00:01:21, OUT_OF_MEMORY
Раньше я sacct
проверял, почему задание завершилось неудачей; однако, похоже, что оно завершилось неудачей с ошибкой ООМ. Это странно, поскольку похоже, что он пытался использовать только 1.61 Gb
запрошенный 3 Gb
(показанный как 2.93
здесь).
Либо мое понимание MaxRSS
неверно, либо эта работа не выполняется по другой причине?
Ответ №1:
В этом вики-сообщении предполагается, что диспетчер заданий может недостаточно быстро получать данные об использовании, чтобы отслеживать всплеск использования памяти, чтобы sacct
инструмент дал вам конкретный ответ:
Механизм учета SLURM основан на опросе и не всегда улавливает всплески использования памяти. Реализация FSL использует функцию ядра Linux под названием «cgroups» для управления использованием памяти и процессора. SLURM настраивает cgroup для задания с соответствующими ограничениями, которые строго соблюдает ядро Linux.
Проблема проста: ядро убило процесс из-за задания-нарушителя, а механизм учета SLURM не провел опрос в нужное время, чтобы увидеть всплеск использования, который заставил ядро остановить процесс.
То, что ваш sacct
вызов показывает использование 1,6 ГБ непосредственно перед отменой задания объемом 3 ГБ, может указывать на то, как ваш процесс использует память.
Структура данных, используемая вашим процессом, может потребовать изменения размера по мере ее роста. В процессе перераспределения этих данных ваш процесс может временно запросить объем памяти, превышающий тот, который Slurm имеет для этой работы.
В зависимости от реализации std::vector
, например, C может попытаться создать временный новый вектор, размер которого в два раза или несколько других кратен размеру, после добавления достаточного количества элементов для копирования данных из старого вектора.
Говоря в общих чертах, без знания каких-либо подробностей о том, что вы используете, временного создания структуры данных размером в два раза больше 1,6 ГБ, по-видимому, будет достаточно, чтобы вызвать отмену задания, в вашем примере, в дополнение к любому уже выделенному пространству.