[問題] OpenMP

看板C_and_CPP (C/C++)作者時間14年前 (2011/05/11 20:30), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串4/4 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) ubuntu GCC 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) openmp 問題(Question): 使用openmp對lu分解進行平行化 但運算時間卻變長 以下是核心code for(i=0; i<*n-1; i++) { #pragma omp parallel for reduction(*:sum) /*對“L列”進行計算*/ for(j=i+1; j<*n; j++) { for(k=0,sum=0; k<*n; k++) { if(k != i) sum += l[j][k]*u[k][i]; } l[j][i] = (float)((a[j][i]-sum)/u[i][i]); } #pragma omp parallel for reduction(*:sum) /*對“U行”進行計算*/ for(j=i+1; j<*n; j++) { for(k=0,sum=0; k<*n; k++) { if(k != i+1) sum += l[i+1][k]*u[k][j]; } u[i+1][j] = (float)((a[i+1][j]-sum)); } } 請問有甚麼方法可以改善運算時間 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.230.4.73

05/11 21:01, , 1F
omp parallel 裡面再for
05/11 21:01, 1F

05/12 01:14, , 2F
可以再詳細說明嗎..有點不懂
05/12 01:14, 2F

05/13 12:46, , 3F
threads create 一次就好 然後跑兩次for
05/13 12:46, 3F

05/13 12:46, , 4F
你的寫法會create 兩次thread 會增加overhead
05/13 12:46, 4F

05/13 12:48, , 5F
n如果夠大應該看得出效能提升才對0.0
05/13 12:48, 5F
文章代碼(AID): #1Doe5IFR (C_and_CPP)
討論串 (同標題文章)
完整討論串 (本文為第 4 之 4 篇):
2
5
4
18
15年前, 01/17
8
15
15年前, 04/28
0
2
文章代碼(AID): #1Doe5IFR (C_and_CPP)