0

我想在主区域内声明一个并行,如下所示:

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

只需在母校之外声明。

或者只是一起做平行部分之外的顺序动作

    *many functions...*

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