【发布时间】:2021-11-27 05:12:33
【问题描述】:
我对“openMP 线程”的理解是它们可能不会一对一地映射到 OS 线程。 openMP spec 似乎不需要这个。
GCC 有the __thread keyword,它用于线程本地存储(根据我的解释,线程与 OS 线程中的线程一样)。这是否意味着 GCC __thread 与 openMP 的 threadprivate 不兼容?如果 openMP 规范允许将 openMP 线程多路复用到 OS 线程上,那么我认为 __thread 和 threadprivate 不兼容。
我看到有一个question 不久前询问了旧版本的 GCC,它说它们基本上是兼容的。对于较新版本的 GCC(比如 GCC 11.2)仍然如此吗?
【问题讨论】: