作者Dirac (Dirac)
看板Python
標題[問題] for 迴圈 平行化
時間Tue Jun 7 16:39:15 2016
小弟最近需要加快迴圈速度
第一個想到的就是平行化
這裡是小弟的程式碼 (創立矩陣)
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 的使用文件實在是有點複雜...
感謝各位版友
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.184.65
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1465288758.A.825.html
→ bibo9901: 你第一個想到的應該是優化這醜陋的code 06/07 16:53
→ bibo9901: 1. 這裡真有必要用np.arange? 試試內建的generator 06/07 16:55
→ bibo9901: 2. 第二層迴圈看起來和第一層無關, 提出去計算一次就好 06/07 16:55
→ bibo9901: ^的條件 06/07 16:56
→ alibuda174: 花時間的地方是wave吧? 06/07 17:27
→ LiloHuang: 這個問題會建議你直接用 numba 的 @jit decorator 06/08 21:08
→ LiloHuang: 通常會有顯著的性能提升。 06/08 21:09