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 ядер.
Один процесс, которому выделена одна видеокарта модели K40m
srun -n1 -p tesla --gres=gpu:k40m:1 my_cuda_prog
Один процесс, которому выделена восемь видеокарт модели a100
srun -n1 -p hiperf --gres=gpu:a100:8 my_cuda_prog
Один процесс, которому нужна одна видеокарта модели v100 или a100
srun -n1 -p hiperf --gres=gpu:1 my_cuda_prog
Возможные варианты видеокарт в 2024 году: m2090, k40m, v100, a100
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