SLURM: Доступ к лимиту времени стены из скрипта

Можно ли получить доступ к лимиту времени стены из скрипта SLURM? Для PBS Torque ответ на этот вопрос был дан здесь. Есть ли аналогичная среда для SLURM?


person Julian Helfferich    schedule 23.05.2017    source источник
comment
что означает термин walltime в таких системах управления вычислениями?   -  person Charlie Parker    schedule 10.10.2020
comment
Время работы компьютерной программы — это время от начала и до конца/завершения программы. В контексте системы очередей это запрошенный период времени для выполнения задания. Например. в slurm, если вы запрашиваете ограничение по времени в 1 час (--time=1:00:00), то ваше время на стене составляет 1 час.   -  person Thomas Espe    schedule 11.10.2020


Ответы (1)


В SLURM лимит времени стены устанавливается с помощью --time:

#SBATCH --time=10:42:00

Доступ к этому значению можно получить через squeue, в частности, через спецификатор формата %l:

$ squeue -h -j $SLURM_JOBID -o "%l"
10:42:00
$

Существует также спецификатор формата %L, который выводит время, оставшееся до выполнения задания:

$ squeue -h -j $SLURM_JOBID -o "%L"
10:38:29
$

Параметр -h подавляет печать заголовка в выходных данных.

Из man squeue:

%l Ограничение по времени задания или шага задания в днях-часах:минутах:секундах. Значение может быть «NOT_SET», если оно еще не установлено, или «UNLIMITED» для отсутствия ограничений. (Действительно для заданий и шагов задания)

%L Время, оставшееся до выполнения задания, в днях-часах:минутах:секундах. Это значение вычисляется путем вычитания времени, использованного заданием, из его ограничения по времени. Значение может быть «NOT_SET», если оно еще не установлено, или «UNLIMITED» для отсутствия ограничений. (Действительно только для вакансий)

%M Время, использованное заданием или этапом задания, в днях-часах:минутах:секундах. Дни и часы печатаются только по мере необходимости. Для шагов задания в этом поле отображается время, прошедшее с начала выполнения, поэтому оно будет неточным для шагов задания, которые были приостановлены. Рассогласование часов между узлами в кластере приведет к тому, что время будет неточным. Если время явно неправильное (например, отрицательное), оно отображается как «INVALID». (Действительно для заданий и шагов задания)

Протестировано на slurm 17.02.2

person Thomas Espe    schedule 23.05.2017
comment
Но это время может сильно отличаться от лимита времени, установленного для подписки на задание через -l walltime=HH:MM:SS. - person Julian Helfferich; 24.05.2017
comment
Кажется, я неправильно истолковал ваш вопрос, я скоро обновлю свой ответ - person Thomas Espe; 24.05.2017
comment
Да, это именно то, что я искал. Формат %L особенно полезен. Спасибо! - person Julian Helfferich; 24.05.2017
comment
Для полноты scontrol show job $SLURM_JOBID также включает информацию об ограничении времени. Но я думаю, что ваше решение намного лучше. - person Julian Helfferich; 24.05.2017
comment
что означает термин walltime в таких системах управления вычислениями? - person Charlie Parker; 10.10.2020