等待一组qsub作业完成

Nup*_*pur 35 qsub

我有一个批处理脚本,它从几个qsub作业开始,我想在它们全部完成后陷阱.

我不想使用-sync选项,因为我希望它们同时运行.每个作业都有一组不同的命令行参数.

我希望我的脚本等到所有工作完成后再做一些事情.我不想使用睡眠功能,例如检查每30秒后是否生成了某些文件,因为这会消耗资源.

我相信Torque可能有一些选择,但我正在运行SGE.

有关如何实现这一点的任何想法吗?

谢谢Ps我找到了另一个线程 链接

有一个反应

您可以使用wait来停止执行,直到完成所有作业.您甚至可以收集所有退出状态和其他运行统计信息(花费的时间,当时完成的工作数,无论如何),如果您循环等待特定ID.

但我不知道如何在不轮询某些价值的情况下使用它.可以使用bash陷阱,但我如何使用qsub?

SDG*_*tor 35

启动qsub作业,使用-N选项为它们指定任意名称(job1,job2等):

qsub -N job1 -cwd ./job1_script
qsub -N job2 -cwd ./job2_script
qsub -N job3 -cwd ./job3_script
Run Code Online (Sandbox Code Playgroud)

启动脚本并告诉它等到名为job1,job2和job3的作业在启动之前完成:

qsub -hold_jid job1,job2,job3 -cwd ./results_script
Run Code Online (Sandbox Code Playgroud)

  • 嗯..不,那不是问题.这是PBS Pro使用不同的格式.你需要使用`-W depend = afterok:<job_id> [:<job_id>:...]` (3认同)
  • 如果工作列表太长,这似乎不起作用(我有40个工作,命令最终是940个字符......) (2认同)

sk8*_*123 6

如果所有作业的名称都具有通用模式,则您可以在提交作业时提供该模式。https://linux.die.net/man/1/sge_types向您展示了您可以使用的模式。例子:

-hold_jid "job_name_pattern*"
Run Code Online (Sandbox Code Playgroud)


小智 3

qsub -hold_jid job1,job2,job3 -cwd ./myscript
Run Code Online (Sandbox Code Playgroud)

  • 为了提高帖子的质量,请说明您的帖子解决问题的原因/方式。 (11认同)