0

次のように、マスター リージョン内でパラレル for を宣言します。

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

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

これは単なるコード例です。何百もの関数があり、それぞれにマスター句を手動で追加したくありませんが、これは可能ですか? または、私がやりたいことを行う他の方法はありますか?

4

1 に答える 1

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

材料の外で for を宣言するだけです。

または、並列セクションの外側で一連のアクションを一緒に実行するだけです

    *many functions...*

#pragma omp parallel for 
for(int i = 0; i < x; ++i){
    a += i;
}
于 2012-03-19T15:55:20.027 に答える