Базовые команды системы управления ресурсами Slurm

sinfo

Просмотр состояния узлов и разделов суперкомпьютера.

user@master ~$ sinfo
PARTITION AVAIL  TIMELIMIT NODES STATE NODELIST
gpu          up 3-00:00:00     3 fail* node[9,55,83]
gpu          up 3-00:00:00    25 down* node[14,51-54,56,81,113-120]
gpu          up 3-00:00:00     1 drain node84
gpu          up 3-00:00:00    10 resv  node[61-70]
gpu          up 3-00:00:00    48 alloc node[1-8,10-13,15-16,28-50,57-60,71-80,82,85-90]
gpu          up 3-00:00:00    11 idle  node[17-27]
...

squeue

Просмотр состояния очереди заданий. С ключом «-u username»  — вывод состояний задач, запущенных пользователем username.

user@master ~$ squeue
  JOBID PARTITION     NAME    USER ST       TIME NODES NODELIST(REASON)
2420539       cpu batch_he   user1 PD       0:00     1 (Nodes required for job are DOWN, DRAINED or reserved for jobs in higher priority partitions)
2420589       gpu run.sbat   user2  R    3:38:33     8 node[1-5,10-12]
2420058       gpu lmp_mpi    user3  R 2-21:24:16     1 node6
2420621       gpu gmx_mpi    user3  R    1:23:03     1 node15
2420620       gpu gmx_mpi    user3  R    1:24:30     1 node87
...

srun

Постановка задачи в очередь в интерактивном режиме. Работа командного интерпретатора блокируется до завершения работы задания. Стандартный вывод и стандартный вывод ошибки задания выдаются на консоль.

user@master ~$ srun -N 4 -p gpu hostname
node16
node17
node19
node18

sbatch

Постановка задачи в очередь в пакетном (неинтерактивном) режиме. Файл задания должен содержать командные строки запускаемых программ, которым могут предшествовать параметры запуска в виде строк «#SBATCH parameter».

После завершения выполнения задания стандартный вывод и стандартный вывод ошибки записываются в файлы slurm-JOBID.out и slurm-JOBID.err (можно задать файлы с другими именами).

user@master ~$ echo '#!/bin/sh
#SBATCH -N 4
#SBATCH --time=10
#SBATCH --partition=gpu
hostname' >batch_hostname.sh
user@master ~$ sbatch batch_hostname.sh
Submitted batch job 2420645

salloc

Выделение одного или нескольких узлов для последующего запуска на них приложений (обычно в интерактивном режиме). После успешного выделения ресурсов запускается дочерний командный интерпретатор (shell), из которого их можно использовать. После завершения использования ресурса требуется  явно освободить их, завершив работу дочернего командного интерпретатора командой exit.

По возможности не используйте выделение ресурсов с помощью salloc.

user@master ~$ salloc -N 4 -p gpu
salloc: Granted job allocation 2420651
user@master ~$ echo $SLURM_NODELIST
node[16-19]
user@master ~$ srun -N 4 hostname
node18
node19
node17
node16
user@master ~$ exit
exit
salloc: Relinquishing job allocation 2420651

scontrol

Просмотр или изменение параметров и состояния задачи. Например, для просмотра информации о задаче можно использовать следующую командную строку:

user@master ~$ scontrol show job 2420645
JobId=2420645 JobName=batch_hostname.sh
UserId=user(userid) GroupId=Users(10000) MCS_label=N/A
Priority=1057677109 Nice=0 Account=user QOS=normal
JobState=COMPLETED Reason=None Dependency=(null)
...

scancel

Отмена выполнения задачи.

user@master ~$ scancel 2420645