OpenMP flush vs flush(列表)

时间:2013-02-13 17:20:53

标签: c++ openmp

在OpenMP中,我可以刷新一组指定的变量或整个缓存。

有人知道这项行动的表现吗?只刷新真正改变的变量或者“全部冲洗”这么快,我不应该担心吗?

我有链接列表,我需要不时刷新我的线程。我应该遍历列表并单独刷新每个元素,还是简单地刷新所有元素?

1 个答案:

答案 0 :(得分:2)

根据OpenMP 3.1标准中的建议:

  

使用带有列表的 flush 构造非常容易出错   强烈建议用户不要尝试使用它。

和以下句子:

  

实现可以通过忽略来实现带有列表的 flush   列表,并将其视为没有列表的 flush

我首先使用pragma omp flush(没有任何列表)实现解决方案。

然后,在尝试优化此实现之前,我会仔细考虑添加列表来刷新构造,因为代码不会是性能可移植的