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