我使用condor在幾個小時內完成大約100個進程的批處理。這些過程完成後,我需要從第一批開始下一批運行,這個過程重複數十次。我的神鷹池大於100個核心,我想限制我的condor集羣一次只能執行100個進程,這樣condor在第一個進程完成之後纔開始進行下一個進程。這可能嗎?condor計劃的併發進程數量限制
1
A
回答
1
這聽起來像是你正在運行一個檢查點的工作,然後下一個工作讀取該檢查點並執行一些操作並寫出一個新的檢查點等10次。我不確定爲什麼你需要按照你的方式分解它,爲什麼不只是有一個包裝腳本來查找檢查點文件並使用它,或者從頭開始?
另一種選擇是在提交文件中使用「要求」,並列出只能運行作業的100臺機器或核心。例如:
Requirements = (machine == "astrolab01") || (machine == "astrolab02") || (machine == "astrolab03")
將確保您永遠不會同時運行超過3個工作。除非這些機器有多個內核,那麼你需要做的是這樣的:
Requirements = (name == "[email protected]") || (name == "[email protected]")
1
您需要使用DAG管理器 - 這允許您定義作業之間的父子關係,這樣就可以等待結果開始第二份工作之前的第一份工作。
DAGman還有一個MAX_JOBS_RUNNING設置,它可以限制活動作業的總數。
這是全部記錄在8.4手冊的第2.10節。您可能需要使用某種腳本來構建DAG文件,並且有一個位置可用於存儲運行的臨時結果 - 作業無法將數據直接從父項傳遞給子項。輸出從第一次運行收集到工作目錄中,然後從工作目錄發送到下一個作業。
相關問題
- 1. iOS開發人員計劃 - 設備的數量和限制
- 2. System.Threading.Tasks - 限制併發任務的數量
- 3. 限制併發PowerShell作業的數量
- 4. 限制線程池中併發線程的數量
- 5. 限制分叉進程的數量
- 6. MongoDB限制併發量
- 7. 如何限制進程數量?
- 8. MultiThreading:限制併發線程
- 9. 限制併發線程
- 10. Nginx工作進程併發用戶數限制
- 11. Python - 限制進口數量?
- 12. 限制使用數據庫的應用程序進程的併發執行
- 13. 計數並限制我應用上的用戶數量
- 14. 計劃是進入無限循環C++
- 15. 由於您已達到併發構建限制,因此計劃無法運行
- 16. 多進程限制進程
- 17. Google Map Js Api Premium計劃限制
- 18. 用戶計劃/ MeteorJS付款限制
- 19. constexpr計算數量的實際限制
- 20. 有限制的結果數量總計
- 21. HttpWebRequest併發限制
- 22. 在MarkLogic中可以創建的計劃任務數量是否有限制?
- 23. 限制併發產卵和等待工作進程
- 24. 使用建議文件鎖限制併發進程
- 25. 限制線程池線程的數量
- 26. 限制運行的併發任務數
- 27. 限制服務器端的併發連接數量?
- 28. 如何限制併發工人的數量?
- 29. Eclipse RCP IJob:限制併發執行作業的數量
- 30. PHP/Cron限制併發運行腳本的數量
所以,要明確一點,你有一套工作,如: a1 - > a2 - > a3 ----> a10 b1 - > b2 - > b3 ----> b10 其中a3需要a2完成,a2需要a1等? –
或者a2是否需要a1和b1先完成? –