Использование имени задания SBATCH в качестве переменной в выводе файла - PullRequest
0 голосов
/ 09 мая 2018

С SBATCH вы можете использовать идентификатор задания в автоматически сгенерированных выходных файлах, используя следующий синтаксис с %j:

#!/bin/bash
# omitting some other sbatch commands here ... 
#SBATCH -o slurm-%j.out-%N # name of the stdout, using the job number (%j) and the first node (%N)
#SBATCH -e slurm-%j.err-%N # name of the stderr, using job and first node values

Я искал похожий синтаксис для использования имени заданиявместо идентификатора работы.У кого-нибудь есть ссылка на то, на какие другие значения slurm / sbatch можно ссылаться в синтаксисе стиля %j?

1 Ответ

0 голосов
/ 09 мая 2018

В новейших версиях SLURM есть опция% x, которая представляет имя задания. Смотрите раздел «Изменения в Slurm 17.02.1» на github: https://github.com/SchedMD/slurm/blob/master/NEWS

Однако во многих современных кластерах версия slurm старше этой, и эта опция не реализована. Вы можете просмотреть версию планировщика slurm в вашей системе:

sbatch --version

Однако есть обходной путь. Вы можете создать свой собственный скрипт bash, который может принимать имя в качестве аргумента, создать скрипт отправки, который использует это имя для имени задания и выходных файлов, а затем отправить его. Например, Вы можете создать скрипт submit.sh:

#!/bin/bash

echo "#!/bin/bash" > jobscript.sh
echo "#SBATCH -o $1-%j.out-%N" >> jobscript.sh
echo "#SBATCH -e $1-%j.err-%N" >> jobscript.sh
echo "#SBATCH -J $1" >> jobscript.sh   
#other echo commands with SBATCH options

echo "srun mycommand" >> jobscript.sh


#submit the job
sbatch jobscript.sh

И затем выполните его с аргументом, соответствующим названию работы, которую вы хотите присвоить своей работе:

bash ./submit.sh myJobName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...