看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《stone0912 (開心石)》之銘言: : 遇到的問題: (題意請描述清楚) : 矩陣運算耗費太久的時間 : 舉例說明: : EX1: ~矩陣運算~ : int A[62][62][34]; : for (int i=-90;i<=90;i++){ : for (int j=-90;j<=90;j++){ : for (int iii=1;iii<=61;iii++){ : for (int jjj=1;jjj<=61;jjj++){ : for (int kkk=1;kkk<=33;kkk++){ : A[iii][jjj][kkk]=(iii+jjj)/kkk }}}}} : 就需要10多秒~ : ====================================================================== : EX2: ~矩陣累加~ : int A[62][62][34]; : int main(){ : for (int i=-90;i<=90;i++){ : for (int j=-90;j<=90;j++){ : for (int iii=1;iii<=61;iii++) { : for (int jjj=1;jjj<=61;jjj++) { : for (int kkk=1;kkk<=33;kkk++) { : A[iii][jjj][kkk]=A[iii][jjj][kkk]+(iii+jjj)/kkk; }}}}} : 則需20多秒~ : 是否有針對"矩陣運算" 及 "矩陣累加"進行時間改善的方法??? : 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) : VC++ DWORD WINAPI MyThreadFunction( LPVOID lpParam ) { for (int j=-90;j<=90;j++) for (int iii=1;iii<=61;iii++) for (int jjj=1;jjj<=61;jjj++) for (int kkk=1;kkk<=33;kkk++) A[iii][jjj][kkk]=A[iii][jjj][kkk]+(iii+jjj)/kkk; } int main(){ for (int i=-90;i<=90;i++) CreateThread(NULL,0,MyThreadFunction,NULL,0,NULL); } 像這樣子樣吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.78.26
loveme00835:執行緒從開始到結束也是一樣久阿= =" 10/05 13:04
stupid0319:原po執行是20秒分散給180個執行緒就 20/180 秒~亂掰 10/05 13:07
james732:理想頂多是 (20 / CPU數量) 吧? 10/05 13:08