gpt4 book ai didi

我可以假设 OpenMP 共享变量是原子读写的吗?

转载 作者:行者123 更新时间:2023-12-04 10:29:23 25 4
gpt4 key购买 nike

例如,假设我有一个变量无法在一条指令中被底层处理器访问(例如 32 位架构上的 64 位整数)。

// let x, y, z of the same integral type of size > architecture
#pragma omp parallel shared(x), private(y,z)
y = ...;
z = ...;
if (x == y)
x = z;

虽然 if 语句和实际赋值之间可能存在竞争,但是否可以在上下文切换之前读取一半的 x,然后再读取另一半?还是保证对共享变量的读写访问始终以原子方式发生?我在标准中找不到关于此的任何声明。

最佳答案

没有也没有。此代码将导致资源竞争。

关于我可以假设 OpenMP 共享变量是原子读写的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9284888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com