我想在主区域内声明一个并行,如下所示:
#pragma omp parallel
{
#pragma omp master
{
*many functions...*
#pragma omp parallel for
for (int i = 0; i < x; ++i){
a += i;
}
}
}
这只是一个示例代码,我有数百个函数,我不想在每个函数中手动添加主子句,但这可能吗?还是有其他方法可以做我想做的事?
最佳答案
#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;
}
}
只需在 Material 外部声明 for。
或者只是一起执行并行部分之外的顺序操作
*many functions...*
#pragma omp parallel for
for(int i = 0; i < x; ++i){
a += i;
}
关于c++ - OpenMP - 主指令中的并行区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9773356/