как написать sbatch для обработки нескольких заданий в slurm - PullRequest
0 голосов
/ 27 марта 2020

У меня есть два исполняемых файла, которые нужно запустить: a.out и b.out.

(1) Я хочу запустить a.out на двух узлах, каждый узел имеет один a.out процесс.

(2) Я хочу запустить b.out на двух узлах, узел такой же в (1), но у каждого узла есть два b.out процесса.

Мой наивный код показан следующим образом

#!/bin/bash
#SBATCH --nodes 2
#SBATCH --ntasks-per-node 2

srun a.out
srun b.out

Но это не может удовлетворить потребности выше. Как мне написать sbatch для достижения этой цели?

Прошу прощения, если это глупая проблема. Спасибо за ваше время.

1 Ответ

0 голосов
/ 27 марта 2020

Предположим, у нас есть 3 узла и мы хотим запустить первое задание A и задание B. Задание A должно выполняться на каждом узле с 1 процессом. Задание B должно выполняться на каждом узле с 5 процессами.

Таким образом, можно записать файл sbatch sbatch_input.sh, который:

#!/bin/bash
#SBATCH --nodes 3
#SBATCH --ntasks-per-node 5
#SBATCH -p cnall

# job A
srun --nodes 3 --ntasks=3 hostname
echo "-------------------------------"
# job B
srun --nodes 3 --ntasks-per-node=5 hostname

запускает сценарий с sbatch

sbatch ./sbatch_input.sh

В результате показано, что

c05b01n06
c05b01n08
c05b01n07
-------------------------------
c05b01n06
c05b01n08
c05b01n07
c05b01n06
c05b01n06
c05b01n06
c05b01n06
c05b01n08
c05b01n08
c05b01n08
c05b01n08
c05b01n07
c05b01n07
c05b01n07
c05b01n07

Здесь не используется номер 2 в проблеме в случае неправильного понимания.

  • Ссылка

https://slurm.schedmd.com/srun.html

Как соотносятся термины «работа», «задача» и «ступеньки» связаны друг с другом?

...