Запуск сценария bash на узлах, которые srun использует для задания mpi - PullRequest
0 голосов
/ 14 апреля 2020

Я могу запустить задание mpi на нескольких вычислительных узлах, используя пакетный сценарий slurm и srun. Как часть сценария slurm, я хочу запустить сценарий оболочки, который запускается на узлах, которые задание использует для сбора информации (с помощью верхней команды) о задачах, выполняемых на этом узле. Я хочу, чтобы скрипт оболочки запускался на уровне узла, а не на уровне задач. Скрипт оболочки отлично работает, работая только на одном вычислительном узле, а для заданий, использующих один вычислительный узел, я могу запустить его в фоновом режиме как часть скрипта slurm. Но не ясно, как заставить его работать на нескольких вычислительных узлах с помощью srun. Я попытался использовать несколько команд srun в пакетном сценарии slurm, но сценарий оболочки запускается только на вычислительном узле.

1 Ответ

0 голосов
/ 15 апреля 2020

Я понял это. Я создаю оболочку сценария оболочки для вызова mpi-кода, а затем в сценарии slurm я использую srun в сценарии оболочки. В скрипте-обертке у меня есть следующее условие для запуска моего скрипта оболочки (sampleTop2. sh) для запуска одного экземпляра на каждом из выделенных вычислительных узлов.

if (( ( SLURM_PROCID % SLURM_NTASKS_PER_NODE) == 0 )) then ./sampleTop2.sh $USER $SLURMD_NODENAME 10 & fi

...