使用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-'
这里出了什么问题?
答案 0 :(得分:2)
您必须为此类声明指定write
或omp atomic
。 update
的默认值为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()