2012-03-19 43 views
0

我想在主區域內進行申報並行,這樣的:的OpenMP - 主指令中並行區域

#pragma omp parallel 
{ 
    #pragma omp master 
    { 
     *many functions...* 

     #pragma omp parallel for 
     for (int i = 0; i < x; ++i){ 
      a += i; 
     } 
    } 
} 

這僅僅是一個示例代碼,我有上百個,我不想功能在他們每個人手動添加主語句,但是這可能嗎?或者有什麼其他的方式去做我想要的?

+3

似乎是一個不好的設計? – Anycorn 2012-03-19 15:55:00

回答

3
#pragma omp parallel 
{ 
    //mater only 
    #pragma omp master 
    { 
     *many functions...* 
    } 
    //full team: just for not parallel for 
    #pragma omp for 
    for(int i = 0; i < x; ++i){ 
     a += i; 
    } 
} 

只要聲明爲mater外。

或者只是做連續動作出來的平行部分人的方一道

*many functions...* 

#pragma omp parallel for 
for(int i = 0; i < x; ++i){ 
    a += i; 
}