我在大型国家系统上访问了低优先级队列。我当时只能在队列中分配1个工作。
PBS作业包含一个在壁垒结束前不太可能完成的程序。保留的作业不能以超过3的数字排队。
-W depend=afterok:$ID_of_previous_job
。该脚本将立即提交所有作业,但只有前3个将进入队列(H状态中的最后2个)next_job
的最后一行修改提交脚本(实际程序很可能在walltime
结束之前完成,然后是最后一行没有执行。previous_job
是否结束)是否可以使用while
和/ sleep
?
答案 0 :(得分:1)
选项1
要使用while
和sleep
,您需要执行与时间检查脚本非常相似的操作:
#!/bin/bash
jobid=`submit the first job`
while [[ -z `qstat ${jobid} | grep C` ]]; do
sleep 5
done
# submit the new job once the loop is done, after checking the exit status if desired
选项2 - 可能只是TORQUE,不确定: Dmitri Chubarov在评论中提出的更好的方法可能是使用每个工作的结局选项。要做到这一点,计算节点必须能够提交作业,但由于你正在考虑完成工作的最后一行,所以这似乎是一种可能性。
通过在脚本中添加以下行来向作业添加一个perjob结局: #PBS -l epilogue = / path / to / script
然后有脚本:
#!/bin/bash
# check exit code if desired, its argument 10 to the script
# submit the next job