看板 C_and_CPP 關於我們 聯絡資訊
想請問有使用過openmp的板友們 openmp是否可以支援 在 parallel sections 裡面再次使用 parallel for 如下 #pragma omp parallel sections { #pragma omp section { #pragma omp parallel for for( int i=0; i < 10; i++ ) a[i] += i; } #pragma omp section { #pragma omp parallel for for( int i=0; i < 10; i++ ) b[i] += i; } } 我知道上面這個 example code 很蠢 不會有人這樣寫 不過我所要表達的意思是 我可否在section內部 再使用一次parallel呢? 因為我每個section所做的事情差別很大 有些可能是在等待外部IO 所以不吃CPU 有些是真的在運算 期望可以平行得到最大的運算能力 我也試過以下的方法 不過無效 #pragma omp parallel sections { #pragma omp section { fun(a); } #pragma omp section { 等待外部IO sleeping.... } } void fun( int a[10] ) { #pragma omp parallel for num_threads(4) for( int i = 0; i < 10; i++ ) a[i] += i; } 代表即使是call另外的平行化的function 還是一樣不行平行運算 只有一個master thread在做運算而已 不知道是否可以開啟某個選項 可以做到我期望的事情呢?? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.71.218.214
justdemon:自問自答 omp_set_nested() 01/11 19:42