我想在主区域内声明并行,如下所示:
#pragma omp parallel
{
#pragma omp master
{
*many functions...*
#pragma omp parallel for
for (int i = 0; i < x; ++i){
a += i;
}
}
}
这只是一个示例代码,我有数百个函数,我不想在每个函数中手动添加master子句,但这可能吗?或者还有其他方法可以做我想要的吗?
答案 0 :(得分: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;
}