我在決定使用python multiprocessing或芹菜或pp爲我的應用程序時有點麻煩。我的應用程序是非常重的CPU,但目前只使用一個CPU,所以我需要將它傳播到所有可用的CPU(這導致我看看Python的多處理庫),但我讀了這個庫不能縮放到其他機器如果需要。現在我不確定是否需要多個服務器來運行我的代碼,但我想在本地運行celery,然後擴展只需要添加新的服務器而不是重構代碼(如果我使用多)。Celery是否像Python多處理一樣在本地系統上高效?
我的問題:這個邏輯正確嗎?並且在本地使用芹菜時是否會有任何負面(性能)(如果事實證明一臺具有多個核心的服務器可以完成我的任務)?還是建議使用多處理,並在以後增加其他功能?
謝謝!
p.s.這是一個個人學習項目,但我可能有一天喜歡在一家公司工作,想要學習專業人員如何做。
是什麼讓你認爲多個CPU可以幫助IO應用程序?如果您的應用程序是IO綁定的,那麼您需要多個IO通道,而不是CPU。 – 2012-02-12 16:46:52
對不起錯誤的單詞......這是非常CPU密集型。基本上它只是一個大數據輸入的大型遞歸數學。看起來像一個好的過程分發 – Lostsoul 2012-02-12 17:01:30
啊 - 在這種情況下,繼續:)你需要容錯 - 例如,試圖使用分散在各地的志願者計算 - 或者你只是想在實驗室或一個實驗室使用計算機簇? – 2012-02-12 17:47:54