当我在集群上启动计算时,我通常有一个单独的程序在最后进行后处理:
sbatch simulation
sbatch --dependency=afterok:JOBIDHERE postprocessing
我想避免输入错误并自动插入正确的工作 ID。任何想法?谢谢
最佳答案
你可以这样做:
RES=$(sbatch simulation) && sbatch --dependency=afterok:${RES##* } postprocessing
RES
变量将保存 sbatch
命令的结果,类似于 Submitted batch job 102045
。构造 ${RES##* }
隔离最后一个词(查看更多信息 here ),在当前情况下是作业 ID。 &&
部分确保您不会在第一次提交失败的情况下尝试提交第二个作业。
关于linux - 使用 slurm 作业 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19960332/