[問題] for 迴圈 平行化

作者: Dirac (Dirac)   2016-06-07 16:39:15
小弟最近需要加快迴圈速度
第一個想到的就是平行化
這裡是小弟的程式碼 (創立矩陣)
j=0
for w in np.arange(Omega_start,Omega_end,Omega_grid):
k=0
for t in np.arange(Timearray[int(len(Timearray)/20*TI)],Timearray[int(len(Timearray)/20*TF-1)],h*Time_grid):
a[k][j] = wave(w,t)
k+=1
j+=1
#####
a[k][j] 是一個矩陣 , wave是一個定義函數 ,
主要想要讓for w 這邊用平行化速度加快
請問一下有什麼tutorial可以看嗎?
multiprocessing 的使用文件實在是有點複雜...
感謝各位版友
作者: bibo9901 (function(){})()   2016-06-07 16:53:00
你第一個想到的應該是優化這醜陋的code1. 這裡真有必要用np.arange? 試試內建的generator2. 第二層迴圈看起來和第一層無關, 提出去計算一次就好^的條件
作者: alibuda174 (阿哩不達)   2016-06-07 17:27:00
花時間的地方是wave吧?
作者: LiloHuang (十年一刻)   2016-06-08 21:08:00
這個問題會建議你直接用 numba 的 @jit decorator通常會有顯著的性能提升。http://goo.gl/uNdlP8 可參考網頁上面的範例

Links booklink

Contact Us: admin [ a t ] ucptt.com