gpt4 book ai didi

linux - 在 Sun Grid Engine 上同时启动 -hold_jid 作业

转载 作者:太空宇宙 更新时间:2023-11-04 12:20:09 24 4
gpt4 key购买 nike

我如何启动一堆 SGE(Sun Grid Engine)作业,其中一些作业使用 -hold_jid 选项,但不需要对 qsub 提交的顺序进行巧妙排序。

如果我这样做一切都很好,job2 等待 job1 完成:

qsub                   job1.sh
qsub -hold_jid job1.sh job2.sh # OK: job2 waits for job1

但是,如果我改为按如下所示的不同顺序提交,job2 会错误地启动而不等待 job1。大概是因为 SGE 看到没有 job1 等待,因为 job1 还没有提交。

qsub -hold_jid job1.sh job2.sh   
qsub job1.sh # BAD: job2 does not wait for job1

我尝试了用户保留选项 -h,然后使用 qalter 释放用户保留,但释放用户保留似乎也释放了 -hold_jid保持:

qsub -h -hold_jid job1.sh job2.sh
qsub -h job1.sh
qalter -h U job*.sh # BAD: job2 does not wait for job1

构建依赖树并开始从叶级别提交作业将解决我的问题。但是我想避免这种情况。我在 RHEL 6 上使用 Sun Grid Engine 6.2u3。

最佳答案

如果@Vince 是正确的并且 SGE 确实在等待尚未启动的作业,那么实现您的目标的唯一方法是为您的所有作业名称添加一个独特的部分。

如果作业未按正确顺序启动,则使用 jobid 将不起作用,因为您无法猜测 future 作业的 jobid。如果 job1 还没有启动,job2 qsub 执行无法猜测 job1 jobid 等待什么...

例如:

uniqueID=`date "+%Y-%m-%d_%H-%M-%S"`
qsub -N "job2_$uniqueID" -hold_jid "job1_$uniqueID" job2.sh
qsub -N "job1_$uniqueID" job1.sh

这样,无论作业启动顺序如何,作业 2 都会等待作业 1。

关于linux - 在 Sun Grid Engine 上同时启动 -hold_jid 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46254422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com