0
我試圖在python中並行化一些代碼。以串行方式運行我的代碼需要大約24小時,但是,有一個for循環,每次迭代都獨立於前一次迭代,因此這是並行化的理想情況。什麼,我想實現我的代碼如下:一個簡單的例子,並行python for循環
import scipy as sci
from multiprocessing import Pool
def mycode(args):
for x in range(0,2000)
y = sci.fft(data[x,:],axis=1)
output[x,:]=y
return output
if __name__=="__main__":
pool=Pool(processes = 8)
output= pool.map(mycode(args),2000)
然而,看着上面,我可以看到,雖然蟒蛇產生9點蟒蛇的過程中,只有一個被實際使用任何CPU電源或記憶。所有其他人都在0%。使用for循環使用Pool的正確方法是什麼?
什麼是「重建」功能?它是否返回一個可調用的?爲什麼'pool.map'的第二個參數是一個數字(2000),而不是可迭代的?爲什麼在你的例子中有一個'mycode'函數,如果它從未被調用? –
與可迭代的爭論2000年它將只使用1個進程。 –