0
我想並行化一個python腳本。我已經創建一個定義:如何將多個參數並行化一個簡單的python def
def dummy(list1,list2):
do usefull calculations ...
在List1和List2包含的文件名列表,要我看,然後進行計算他們。這些文件是獨立的。 list1和2包含相同數量的參數。
讓我們假設我有2個cpus(我想強制使用cpus的數量)。我希望第一個cpu使用只包含list1和list2的前半部分的列表調用定義,同時第二個cpu應該與list1和list2的後半部分調用相同的def dummy。
喜歡的東西:
import multiprocessing
nb_cpus = 2
pool = multiprocessing.Pool(processes=nb_cpus)
for ii in nb_cpus:
list_half1 = list1[0:max/nb_cpus]
list_half2 = list2[0:max/nb_cpus]
result[ii] = pool.map(dummy,list_half1,list_half2)
的問題是,pool.map只有在高清有1個參數和工作,我不能遍歷的CPU。
謝謝你對這個問題的任何幫助!
PS:我不可能將兩個參數連接成一個參數,因爲在實際情況中,我正在傳遞更多的參數。
或者使用'pool.starmap'調用'myFunction的(*項目)' 。 – Blckknght 2013-05-07 17:39:43
謝謝你的回覆。 問題是我的一些參數不能在整個cpus上分割,而是傳遞給每個cpus。我怎樣才能做到這一點? – sponce 2013-05-07 21:18:42
我通過定義一個全局變量來解決這個問題。感謝您的幫助。 – sponce 2013-05-10 15:49:19