給大家的第一個新年快樂和2017年的快樂編碼。如何在服務器上並行提交「任務」
我有1M個「任務」使用python運行。每個任務將需要大約2分鐘,並將處理一些本地圖像。我想盡可能以自動的方式並行運行。我的服務器有40個核心,所以我開始看如何做多,但我看到了以下問題:
- 保持每個任務的日誌是不容易的(我的工作,但到目前爲止,我沒有成功即使我在stackoverflow上找到很多示例)
- 如何知道應該使用多少個CPU以及應該將多少CPU留給服務器以執行基本的服務器任務?
- 當我們在服務器上有多個用戶時,我們如何看到已經使用了多少個CPU?
在我以前的CERN物理學家的生活中,我們使用作業提交系統在許多集羣上提交任務。當插槽可用時,任務被放入隊列並進行處理。我們是否也有用於LINUX服務器的工具?我不知道這樣的工具(作業調度員)的正確英文名稱是什麼?
最好的將是一個工具,我們可以配置使用我們的N CPU作爲「車輛」來並行處理任務(並保留所需的CPU,以便服務器也可以運行基本任務),將作業的所有用戶在隊列中具有優先權並處理它們「車輛」可用。獎金將成爲監控任務處理的一種方式。
我希望我用正確的詞來描述我想要的。
感謝 法比安斯基
謝謝。我正在使用python多處理模塊,但是我不清楚我們是否有3個用戶在服務器上運行,我怎麼知道有多少進程正在運行以及有多少個空閒空閒。對於服務器的單個用戶來說,它似乎是一個很好的工具,但是如果所有用戶獨立使用所有線程,我們將會使服務器崩潰。我誤解了某些事件是因爲我們在同一臺服務器上有多個用戶需要同時使用所有資源? –
更新了答案。 – noxdafox
非常感謝這個偉大的總結。我會看看你所建議的所有工具。 –