2017-02-14 228 views
1

我正在使用128核心的linux服務器,但我不是唯一使用它的服務器,所以我想確保我的程序最多使用60個內核。我正在編寫的程序是一系列模擬,其中每個模擬都是並行化的。可以選擇這種單一仿真的內核數量,我通常使用12.因此,理論上,我可以同時運行這些仿真中的5個,這將導致(5x12)個內核使用60個總。我想從python開始模擬(因爲這是所有預處理髮生的地方),我的眼睛已經抓住了多處理庫,特別是Pool類。Python多進程池進程數

現在我的問題是:我應該使用 池=池(進程= 5) 或 池=池(進程= 60)

的想法是:沒有過程的說法表示工人的使用量(每個工人分配12個核心),還是可用的進程總量?

+0

_processes_是要使用的工作進程的數量。從[docs](https://docs.python.org/3.6/library/multiprocessing.html#multiprocessing.pool.Pool) –

+0

我相信它會從池中分配的進程總數系統可用的物理內核 - 因此您可能需要「Pool(processes = 60)」。 – martineau

回答

1

Pool中的參數'processes'意味着你想在這個程序中創建的總子進程。因此,如果要使用全部60個內核,則應該爲60.