Использовать идентификатор задания slurm
Когда я запускаю вычисления в кластере, у меня обычно есть отдельная программа, выполняющая постобработку в конце:
sbatch simulation
sbatch --dependency=afterok:JOBIDHERE postprocessing
Я хочу избежать опечаток и автоматически вставить идентификатор хорошей работы. Есть идеи? Спасибо
1 ответ:
Вы можете сделать что-то вроде этого:
RES=$(sbatch simulation) && sbatch --dependency=afterok:${RES##* } postprocessing
Переменная
RES
будет содержать результат командыsbatch
, что-то вродеSubmitted batch job 102045
. Конструкция${RES##* }
изолирует последнее слово (см. Подробнее здесь), в данном случае идентификатор задания. Часть&&
гарантирует, что вы не попытаетесь отправить второе задание в случае неудачи первого представления.