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


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

sbatch simulation
sbatch --dependency=afterok:JOBIDHERE postprocessing

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

1 13

1 ответ:

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

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

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