在OpenMP中,我可以刷新一组指定的变量或整个缓存。
有人知道这项行动的表现吗?只刷新真正改变的变量或者“全部冲洗”这么快,我不应该担心吗?
我有链接列表,我需要不时刷新我的线程。我应该遍历列表并单独刷新每个元素,还是简单地刷新所有元素?
答案 0 :(得分:2)
根据OpenMP 3.1标准中的建议:
使用带有列表的 flush 构造非常容易出错 强烈建议用户不要尝试使用它。
和以下句子:
实现可以通过忽略来实现带有列表的 flush 列表,并将其视为没有列表的 flush 。
我首先使用pragma omp flush
(没有任何列表)实现解决方案。
然后,在尝试优化此实现之前,我会仔细考虑添加列表来刷新构造,因为代码不会是性能可移植的。