bash - 如何知道 PBS 批处理作业何时完成

标签 bash pbs

我有一个 BASH 脚本,可以将多个串行作业提交到 PBS 排队系统。提交作业后,脚本结束。然后这些作业在集群上运行,当它们全部完成后,我可以继续下一步。典型的工作流程可能涉及其中的几个步骤。

我的问题:

有没有办法让我的脚本在提交完成后不退出,而是休眠直到该脚本提交的所有作业在集群上完成,然后才退出?

最佳答案

您正在尝试建立工作流程,对吗?做你想完成的事情的最好方法是使用 job dependencies .本质上,您要做的是提交 X 个作业,然后提交更多依赖于第一组作业的作业,您可以使用作业依赖项来完成此操作。您可以在上一个链接中了解执行依赖关系的不同方法,但这是提交 3 个作业然后再提交 3 个直到前 3 个作业退出后才会执行的示例。

#first batch
jobid1=`qsub ...`
jobid2=`qsub ...`
jobid3=`qsub ...`

#next batch
depend_str="-W after:${jobid1} -W after:${jobid2} -W after:${jobid3}"
qsub ... $depend_str
qsub ... $depend_str
qsub ... $depend_str

关于bash - 如何知道 PBS 批处理作业何时完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25674240/

相关文章:

linux - 使用 cron 防止 Bash 脚本并行运行或重叠

python - 从 PBS 作业调用 python 脚本

bash - 通过 grepping qstat 输出并将 jobid 发送到 qdel 来删除作业?

cluster-computing - 依赖于作业阵列的扭矩作业

bash 中包含日期格式和 .zip 扩展名的备份文件的正则表达式

linux - 使用一个变量作为另一个变量名称的一部分

linux - 如何使 echo 与 bash 中的 read 兼容?

linux - Bash 管道和 SIGTERM

mpi - 在 open-mpi/mpi-run 中加载共享库

python - PBS 集群节点上的多处理