2 回答

TA貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊
解決方案1
我建議您以較小的步驟分解管道,然后可以在bash腳本等中將其自動化。首先,您需要生成所有需要通過slurm運行的命令。如果將它們提交為Slurm作業(yè)數(shù)組(請參見此處),則可以同時提交用于解析所有這些命令輸出的腳本。使用slurm依賴項,您可以使作業(yè)僅在作業(yè)陣列完成后才開始。
解決方案2
您可以在python腳本中執(zhí)行while循環(huán)并檢查作業(yè)的狀態(tài):
import time
t = time.time()
while True:
# Break if this takes more than some_limit
if time.time() - t > some_limit:
break
# Check if the jobs are done. This could be done by
# grep'ing squeue for your username and some tags
# that you name your jobs
check_for_completion()
# Sleep for a while depending on the estimated completion time of the jobs
time.sleep(some_time)
解決方案3
在slurm上保留N個節(jié)點,然后在其中運行腳本。這樣可以避免前端混亂。我建議使用gnu parallel在節(jié)點上分配您的作業(yè)。
添加回答
舉報