我想加快涉及許多獨立集成的計算。爲此,我使用pythons Joblib和多處理。到目前爲止,我已經成功地將我的計算的內部循環並行化了,但我想對外部循環做同樣的事情。由於並行編程伴隨着我的思維混亂,我想知道是否有人可以幫助我。到目前爲止,我有:
from joblib import Parallel, delayed
import multiprocessing
N = 10 # Some number
inputs = range(1,N,2)
num_cores = multiprocessing.cpu_count()
def processInput(n):
u_1 = lambda x,y: f(x,y)g(n,m) # Some function
Cn = scintegrate.nquad(u_1, [[A,B],[C,D]]) # A number
return Cn*F(x,y)*G(n,m)
resultsN = []
for m in range(1,N,2): # How can this be parallelized?
add = Parallel(n_jobs=num_cores)(delayed(processInput)(n) for n in inputs)
resultsN = add + resultsN
resultsN = sum(resultsN)
這到目前爲止產生了正確的結果。現在我想用外循環做同樣的事情。有沒有人有一個想法,我可以做到這一點?
我也想知道u_1聲明是否可以在processInput之外完成,並且任何其他改進建議都將被讚賞。
感謝您的回覆。