[問題] MPI的問題

看板C_and_CPP作者 (目標~!)時間15年前 (2011/03/03 14:51), 編輯推噓2(205)
留言7則, 4人參與, 最新討論串1/1
想請問版上先進一個MPI化的問題 迴圈內的運算,要怎樣把他平行 ============================================================== int a = 100 ; int b = 10000 ; for (int t=0; t<=a; t++) { for (int x=1; x<=b; x++) { for (int z=1; z<=a; z++) { p[x][0][0] = p[x][0][0] + (p[x][1][z] * p[x][1][z+t]) ; } } } ============================================================== 在int x的那個迴圈裡面,計算量會很大~ 但是每個x又互相都獨立 所以想請問要怎樣讓 cpu0 處理 x = 1~2500 cpu1 處理 x = 2501~5000 cpu2 處理 x = 5001~750 cpu3 處理 x = 7501~10000 謝謝~~~ <(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.38.186

03/03 14:58, , 1F
03/03 14:58, 1F

03/03 15:23, , 2F
把 x 拖出去最外層再 parallel for 即可
03/03 15:23, 2F

03/03 15:23, , 3F
啊等等 這樣不對 你可能需要直接在 x 這一層 parallel for
03/03 15:23, 3F

03/03 18:15, , 4F
他不是要mpi@@
03/03 18:15, 4F

03/03 19:29, , 5F
平行觀念一樣呀 差在data partition (scatter,gather)
03/03 19:29, 5F

03/03 19:30, , 6F
基本上是一個process處理1/4個x的range吧
03/03 19:30, 6F

03/03 19:33, , 7F
LPH66 用詞是OpenMP的,parallel for schedul(static,2500)
03/03 19:33, 7F
文章代碼(AID): #1DRpfjo- (C_and_CPP)