0
你好我想多處理一個for循環,我計算4個不同的獨立函數。唯一的問題是這些函數需要多個參數。其中一些參數是使用循環索引選擇正確元素的列表。這裏是一個示例代碼多處理一個for循環與多個參數,這取決於循環索引
import numpy as np
def function_1(a,b,c,d):
#do heavy calculations
#function is written in fortran and linked via f2py
def function_2(a,b,c,d):
#do heavy calculations
#function is written in fortran and linked via f2py
def function_3(a,b,c,d):
#do heavy calculations
#function is written in fortran and linked via f2py
def function_4(a,b,c,d):
#do heavy calculations
#function is written in fortran and linked via f2py
result_1 = 0
result_2 = 0
result_3 = 0
result_4 = 0
a = [1,2,3]
b = [4,5,6]
c = 2
d = 5
for k in xrange(3):
result_1 += function_1(a[k],b[k],k*c,d)
result_2 += function_2(a[k],b[k],k*c,d)
result_3 += function_3(a[k],b[k],k*c,d)
result_4 += function_4(a[k],b[k],k*c,d)
有沒有辦法做到這些計算並行而不是順序? 對於在fortran中編寫的函數,可以這樣做嗎?
這隻會工作,如果我的函數具有相同的參數個數對? – chris
@chris你可以改變參數* args – galaxyan
好吧,但這意味着我將不得不重寫我的fortran函數,以使gen_func – chris