2012-03-19 11 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

答えて

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; 
    } 
} 

マターの外側を宣言するだけです。

それとも一緒に並列セクションアルの側面を逐次的アクションを行う

*many functions...* 

#pragma omp parallel for 
for(int i = 0; i < x; ++i){ 
    a += i; 
} 
関連する問題