相关疑难解决方法(0)

为什么不允许在OpenMP中共享类成员变量x(x)?

在成员函数中,我可以int *x像这样使用共享成员变量进行并行化

#pragma omp parallel for default(shared)
for(int i=0;i<size;i++) {
  x[i]=i;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试

#pragma omp parallel for default(none) shared(x,size)
for(int i=0;i<size;i++) {
  x[i]=i;
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:'obj::x' is not a variable in clause 'shared'.我更喜欢第二个版本,因为它宣布它正在使用的共享变量,提醒我确保没有竞争条件或类似的问题.

OpenMP声称这obj::x不是一个变量?

c++ openmp

7
推荐指数
1
解决办法
8456
查看次数

标签 统计

c++ ×1

openmp ×1