看板 Python 關於我們 聯絡資訊
小弟最近需要加快迴圈速度 第一個想到的就是平行化 這裡是小弟的程式碼 (創立矩陣) 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
LiloHuang: http://goo.gl/uNdlP8 可參考網頁上面的範例 06/08 21:10