Запуск задач в SLURM.
Система SLURM позволяет с помощью команд sbatch и srun работать соответственно в пакетном и интерактивном режимах. Пакетный режим является основным в работе с кластером. Полная информация об этих коммандах выдаётся с помощью команды man.
Команда sbatch для запуска программы в пакетном режиме имеет вид
sbatch [опции] --wrap="srun <имя программы> [параметры программы]"
или
sbatch [опции] <имя скрипта> [параметры скрипта]
Минимальный скрипт может выглядеть так:
#!/bin/bash
srun myprogram param1 param2
Опции
-
-n <число процессов> если число процессов (tasks) не задано, то по умолчанию n=1.
-
-t <время> при отсутствии заказа времени для решения задачи выделяется по умолчанию 30 минут.
-
-N <кол-во узлов> задает число узлов (nodes) для задачи, если пользователю это важно.
Опции -w, -x, -С позволяют более гибко регулировать список узлов, допустимых для запуска задачи (см. man sbatch).
- -w [nodename/range] - выделить заданию ресурсы узлов
- -x [nodename/range] - не выделять заданию ресурсы узла
Удаление задач из очереди
При запуске на кластере задача попадает в очередь заданий и ей присваивается уникальный идентификатор (ID). Для отмены выполнения задачи (ожидающей счета или уже стартовавшей) служит команда scancel:
- scancel 565 345 # убрать из очереди задачи с указанными ID;
- scancel -u u9999 # убрать из очереди все задачи пользователя u9999;
- scancel --state=PENDING -u u9999 # убрать из очереди ожидающие запуска задачи пользователя u9999.
CTRL+C— снимает интерактивную задачу без фонового режима.
Просмотр информации о кластере
В результате запуска задача помещается в очередь и ей присваивается уникальный идентификатор (JOBID). Его можно узнать командами squeue, sacct.
-
squeue — просмотр очереди (информации о задачах, находящихся в счете или в очереди на счет); возможно использование ключей, например:
-
squeue --user=
whoami
# посмотреть только свои задачи; - squeue --states=RUNNING # посмотреть считающиеся задачи;
-
squeue --long # выдать более подробную информацию.
-
sacct — просмотр задач текущего пользователя за сутки (с начала текущего дня); возможно использование ключей, например:
sacct -u u9999 --starttime 2019-01-01 # посмотреть все задачи пользователя u9999 с начала года.
-
sinfo — просмотр информации об узлах (прежде всего, о состоянии узлов: доступны, заняты, свободны, ...); возможно использование ключей, например:
sinfo -s # выдача суммарной информации о разделах кластера без детализации по узлам.
-
scontrol — выдача детальной информации об узлах, разделах, задачах
- scontrol show node tesla34 # информация об узле, в частности, причине состояния drain, down;
- scontrol show partition # о разделах;
- scontrol show job 174457 # о задаче.