如何開始一堆使用-hold_jid
選項的SGE(Sun Grid Engine)作業,但不需要巧妙排序qsub
提交的順序。Sun Grid Engine上的同時啓動-hold_jid作業
如果我做到這一點寄託都很好,其中JOB2等待JOB1結束:
qsub job1.sh
qsub -hold_jid job1.sh job2.sh # OK: job2 waits for job1
但是,如果我不是以不同的順序如下圖所示提交,作業2錯誤啓動,而無需等待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。
我*想*這可能是由於您的工作沒有在保有中唯一命名。例如,job1在技術上完成(過去的job1)並存儲在SGE記帳日誌的某處。所以,當你提交job2時,即使job1完成已經有一段時間了,job2仍然會執行。要測試,請嘗試使用唯一名稱命名作業,或者使用jobid。 – Vince
「,但釋放用戶持有似乎也釋放'-hold_jid'持有」:進一步測試我發現情況並非如此。 'qsusb'在命令發出時立即解釋'-hold_jid'選項,而不是在作業排定時解釋。因此,'qsub -h -hold_jid job1.sh job2.sh'命令將在隊列中查找'job1.sh',看到沒有,並將job2置於隊列中,而不保留。 –