2
一旦其他人完成,我将启动一个pbs脚本。对于我使用这个命令:等待已完成的作业
$ job1=$(qsub job1.pbs)
$ jobN=$(qsub jobN.pbs)
$ qsub -W depend=afterok:$job1:$jobN join.pbs
这工作,在大多数情况下。但是,如果我在job1和jobN已完成时运行加入脚本,它将无限期地空闲,因为它正在等待已完成的作业完成。这听起来很疯狂,但这是发生了什么。如果我运行qstat
我可以清楚地看到,我的加盟工作正在举行(“H”)
$ qstat -u me
Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time
--------------- -------- -------- ---------- ------ --- --- ------ ----- - -----
1990613 me workq join.pbs -- 1 1 -- -- H --
但是如果作业中的至少一个仍然在运行,而另一个已经完成,那么在加入脚本不会闲置并完成。
那么有什么解决方案来处理已经结束的工作?我们显然需要完成这项工作。
如果作业从'qstat'消失了,这意味着你需要增加'keep_completed'。否则,当联接作业准备好运行时,依赖关系永远不会满足,并且永远不会释放。 – clusterdude
您使用的是什么版本的扭矩?这可能是你遇到了一个已经修复的错误。 – dbeer