我正在運行耗時的程序很多次。我有機會訪問集羣,我可以要求504個處理器,但客戶服務讓我們說慢,所以我轉向你。我用一個非常簡單的應用程序如下:現在Python多處理的限制。池
import multiprocessing
def function(data):
data = complicated_function_I_was_given(data)
with open('unique_id', 'w') as f:
f.write(data)
pool = multiprocessing.Pool(504)
pool.map(function, data_iterator)
,雖然我可以看到進程啓動(即「complicated_function_I_was_given」寫了一堆廢鐵,但具有獨特的名字,所以我肯定是沒有衝突) ,這個過程似乎非常緩慢。我期待 data_iterator
立即處理,雖然有些將需要幾天,但在1天后沒有產生任何東西。難道是multiprocessing.Pool()有一個限制嗎?或者說它不會通過不同的節點分配進程(我知道每個節點都有12個內核)?我正在使用python2.6.5。
感謝您的鏈接,我認爲你是對的。我不知道我怎麼會錯過這個問題!現在玩mpi4py比。 – Zenon 2012-02-27 00:09:13