Использовать идентификатор задания slurm

Когда я запускаю вычисления в кластере, у меня обычно есть отдельная программа, выполняющая пост-обработку в конце:

sbatch simulation
sbatch --dependency=afterok:JOBIDHERE postprocessing

Я хочу избежать опечатки и автоматически добавить хороший идентификатор работы. Есть идеи? Благодаря

Ответ 1

Вы можете сделать что-то вроде этого:

RES=$(sbatch simulation) && sbatch --dependency=afterok:${RES##* } postprocessing

Переменная RES будет содержать результат команды sbatch, что-то вроде Submitted batch job 102045. Конструкция ${RES##* } изолирует последнее слово (см. Подробнее здесь), в текущем случае - идентификатор задания. Часть && гарантирует, что вы не пытаетесь отправить вторую работу в случае сбоя первого сообщения.