Примеры запуска задач в SLURM

Примеры постановки задач в очередь

u9999@umt:~$ sbatch  -n 3 --wrap="srun myprog 3 5.1"
Submitted batch job 776

сформирована пакетная задача с запуском 3-х процессов mytest1 c 2-мя параметрами. Задаче присвоен уникальный идентификатор 776.

u9999@umt:~$ srun -N 2 sleep 30 &
[1] 22313

сформирована интерактивная задача в фоновом режиме. [1] - номер фоновой задачи в текущем сеансе, 22313 - pid процесса srun на управляющей машине. Уникальный идентификатор можно узнать с помощью команд squeue, sacct.

Многопоточная задача на одном узле

srun -n1 --cpus-per-task=12  myprog

Запуск одного процесса на одном узле с выделением ему 12 ядер.

Запуск задачи с GPU

Один процесс, которому выделена одна видеокарта модели K40m

srun  -n1 --gres=gpu:k40m:1 cudaprog

Один процесс, которому выделена восемь видеокарт модели a100

srun  -n1 -p v100 --gres=gpu:v100:8 -C a100 cudaprog

Возможные варианты видеокарт в 2023 году: m2090, k40m, v100

Запуск задачи с большим объёмом ОЗУ

srun  -n3 -С bigmem myprog

Свойством bigmem помечены узлы с памятью 192 Гбайт и более (96 Гбайт в разделе debug).

Пример задачи, рестартующей после истечения заказанного времени

Все опции запуска описаны в batch-файле. За 60 секунд до окончания заказанного времени все процессы, запущенные через srun получат сигнал TERM и завершатся, после чего последняя команда в скрипте restart_sbatch снова поставит его в очередь. Перезапуск произойдёт и в том случае, когда программа, запущенная через srun завершится самостоятельно. Опция --signal задаёт номер сигнала, который будет отправлен процессам (KILL) и время отправки сигнала (60 секунд до конца заказанного времени счёта).

Запуск

sbatch restart_sbatch

Содержимое restart_sbatch:

#!/bin/sh
#SBATCH -n 1 -t 180
#SBATCH --signal=KILL@60

srun myprog arg1 arg2
# здесь можно вставить анализ результатов,
# формирование новых параметров,
# проверку условий завершения
# и т.п.
sbatch ./restart_sbatch