Просмотр информации о вычислительной среде

Команда sinfo

Команда sinfo имеет следующий формат вывода:

Partition Avail Timelimit Nodes Nodelist State S:C:T Memory GRES
intel-a100-pci5 up 1-00:00:00 8 g5500-[1-8] idle 2:16:2 1031707 gpu:v100:4
intel-a100-sxm4 up 1-00:00:00 2 g8600-[1-2] idle 2:32:2 1031828 gpu:v100:8
intel-ib up 1-00:00:00 22 fusion-[1-22] idle 2:32:2 1031134 -
intel up 2-00:00:00 8 xh620-[1-4] idle 2:16:2 515324 -
arm up 2-00:00:00 6 tai-[1-6] idle 2:64:1 522809 -

PARTITION – условное обозначение вычислительных комплексов в составе кластера:

AVAIL – состояние вычислительных комплексов

TIMELIMIT – максимальное время выполнения вычислительного задания

NODES – количество вычислительных узлов с одинаковым статусом (STATE) и характеристиками (S:C:T, MEMORY, GRES) в составе комплекса.

NODELIST - перечень символьных имен узлов, входящих в состав комплекса

  • g8600-[1-2] – обозначает, что:
    • в состав комплекса входят два узла g8600-1 и g8600-2
    • узлы имеют одинаковый статус (STATE) и характеристики (S:C:T, MEMORY, GRES)

STATE – состояние вычислительного узла

  • idle – узел/узлы доступен/доступны для постановки вычислительных заданий
  • down - узел/узлы НЕ доступен/доступны для постановки вычислительных заданий

S:C:T – характеристика отдельно взятого вычислительного узла

  • S – socket - количество физических процессоров вычислительного узла
  • С – core - количество физических ядер одного процессора
  • T – threads - количество потоков одного ядра

MEMORY – объем оперативной памяти вычислительного узла (в Мбайтах, МБ)

GRES – дополнительные ресурсы вычислительного узла

  • gpu:v100:4 – обозначает, что в вычислительном узле 4 графических ускорителя V100
  • gpu:a100:4 – обозначает, что в вычислительном узле 4 графических ускорителя A100

Подробная информация о команде sinfo представлена по ссылке https://slurm.schedmd.com/sinfo.html

Команда squeue

Команда squeue имеет следующий формат вывода:

JOBID PARTITION USER NAME STATE TIME CPUS TRES_PER_NODE PRIORITY TIME_LIMIT TIME_LEFT NODELIST(REASON)
405 intel test running 10:15 1-00:00:00 xh620-1

JOBID – порядковый номер вычислительного задания

PARTITION – условное обозначение вычислительного комплекса на узлах которого выполняется вычислительное задание

USER – учетная запись пользователя от которой выполняется вычислительное задание

NAME – имя вычислительного задания (имя выполняемой команды)

STATE – состояние вычислительного задания

TIME – время в течении которого выполняется вычислительное задание

CPUS – количество ядер, выделенных вычислительному заданию

TRES_PER_NODE – тип и количество GPU, выделенных вычислительному заданию

PRIORITY – текущий приоритет вычислительного задания

TIME_LIMIT – максимальное время выполнения вычислительного задания

TIME_LEFT – оставшееся время выполнения вычислительного задания

Подробная информация о команде squeue представлена по ссылке https://slurm.schedmd.com/squeue.html

Запуск вычислительных заданий

Команда srun

Команда srun выполняет постановку вычислительных заданий на выполнение в интерактивном режиме.

Примечание:
1) при выполнении задания в интерактивном режиме процесс выполнения и результаты отображаются на экране терминала

Команда srun имеет следующие форматы запуска:
srun [параметры] команда
srun [параметры] /home/пользователь/путь/до/исполняемого/файла

Примечание:
1) параметры указываются через пробел
2) параметры указывать необязательно, в этом случае к вычислительному заданию будут применены параметры по умолчанию.

Подробная информация о команде srun представлена по ссылке https://slurm.schedmd.com/srun.html

Команда sbatch

Команда sbatch выполняет постановку вычислительных заданий на выполнение в фоновом режиме.

Примечание:
1) при выполнении задания в фоновом режиме на экране терминала отображаются лишь сведения о постановки задания на выполнение. Для просмотра процесса выполнения задания и результатов его выполнения необходимо предусмотреть вывод в файл.

Команда sbatch имеет следующий формат запуска:
sbatch /home/пользователь/путь/до/файла/slurm.job

Подробная информация о команде sbatch представлена по ссылке https://slurm.schedmd.com/sbatch.html

Параметры команд srun и sbatch

Основные параметры для команд srun и sbatch:

-p или --partition – определяет на узлах какого комплекса будет выполняться задание, например, -p intel-gpu или --partition=intel-gpu

Примечание:
1) если параметр не задан, то по умолчанию будет использоваться комплекс intel

-w или --nodelist – определяет перечень узлов (а также их количество) на которых будет выполняться задание, например:

Параметр Результат
-w xh620-1 или --nodelist=xh620-1 будет выделен 1 узел с номером 1
-w xh620-[1,2] или --nodelist=xh620-[1-2] будут выделены 2 узла с номерами 1,2
-w xh620-[1,3,5] или --nodelist=xh620-[1,3,5] будут выделены 3 узла с номерами 1,3,5
-w xh620-[1,2,3,5] или --nodelist=xh620-[1-3,5] будут выделены 4 узла с номерами 1,2,3,5
-w xh620-[1,2,3,4,5] или --nodelist=xh620-[1-5] будут выделены 5 узлов с номерами 1,2,3,4,5

Примечание:
1) применяется только совместно с параметром --partition
2) если параметр не задан, то узлы для выполнения задания будут определены автоматически с учетом значения параметров --ntasks и --nodes
3) если на момент запуска задания количество узлов, определённое в параметре, превышает количество доступных узлов, задание будет помещено в очередь и иметь статус PD (Pending) – ожидает ресурсов.

-n или --ntasks – определяет количество запускаемых экземпляров задания, например, -n 10 или --ntasks=10

Примечание:
1) если параметр не задан, то по умолчанию будет запущен 1 экземпляр задания

-N или --nodes - определяет количество узлов для выполнения задания, например, -N 2 или --nodes=2

Примечание:
1) при --nodes 2 - задание будет выполнено 1 раз на каждом из 2 узлов
2) если параметр не задан, то необходимое количество узлов для выполнения задания будет определено автоматически с учетом значения параметров --nodelist и --ntasks
3) если на момент запуска задания количество узлов, определённое в параметре, превышает количество доступных узлов, задание будет помещено в очередь и иметь статус PD (Pending) – ожидает ресурсов.

--ntasks-per-node – определяет максимальное количество заданий, выполняемых на одном узле, например, --ntasks-per-node=1

--cpus-per-task – определяет количество vCPU (потоков, threads), предоставляемых заданию, например, --cpus-per-task=4

Примечание:
1) для каждого узла xh620 максимальное значение vCPU равно 64
2) для каждого узла g5500 максимальное значение vCPU равно 64
3) для каждого узла g8600 максимальное значение vCPU равно 128
4) для каждого узла fusion максимальное значение vCPU равно 128
5) для каждого узла tai максимальное значение vCPU равно 128
6) если параметр не задан, то по умолчанию вычислительному заданию будет выделено 1 или 2 vCPU

--gres – определяет ресурсы, предоставляемые вычислительному заданию, например:
--gres=gpu:v100:4 - заданию будет предоставлено 4 графических ускорителя Nvidia V100
--gres=gpu:a100:4 - заданию будет предоставлено 4 графических ускорителя Nvidia A100

Примечание:
1) если параметр не задан, то по умолчанию графические ускорители вычислительному заданию не выделяются

Рекомендуемые параметры для команд srun и sbatch:

-o или --output – определяет файл для перенаправления стандартного вывода stdout, например, --output=slurm.out

Примечание:
1) если параметр не задан, то по умолчанию будет создан файл slurm-1234.out, где 1234 - порядковый номер вычислительного задания
2) параметр не совместим с параметром --pty, их нельзя использовать одновременно

Управление вычислительными заданиями

Команда scancel

Команда scancel имеет следующий формат запуска scancel jobid, например,

scancel 405

Подробная информация о команде scancel представлена по ссылке https://slurm.schedmd.com/scancel.html