G ++ 5.4.0(Ubuntu):OpenMP原子写入无法编译

时间:2017-12-01 15:04:13

标签: g++ openmp

使用Ubuntu 16.04.4运行G ++ 5.4.0,

#pragma omp atomic
arr[index] = number;

失败,出现以下错误:

invalid form of '#pragma omp atomic' before ';' token

但是,这应该符合IBM open mp文档:

                      .-update--.   
>>-#--pragma--omp atomic--+---------+--------------------------->
                      +-read----+   
                      +-write---+   
                      '-capture-'   

这里出了什么问题?

1 个答案:

答案 0 :(得分:2)

您必须为此类声明指定writeomp atomicupdate的默认值为v = x; ,不适用于您的对帐单:

有效表达式列在OpenMP标准中。

  

如果读取atomic-clause:

x = expr;
     

如果写了atomic-clause:

x++;
x--;
++x;
--x;
x binop= expr;
x = x binop expr;
x = expr binop x;
     

如果atomic-clause更新或不存在:

main()