Linux では __thread で宣言され、Windows では __declspec(thread) で宣言された TLS 変数に対して、OpenMP (Intel C++ 12 実装など) は現在何をしていますか? それらをスレッドプライベートにするか、単にTLSを無視しますか?
関連する論文が1つ見つかりましたが、まだ混乱しています。
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1639501&tag=1
Linux では __thread で宣言され、Windows では __declspec(thread) で宣言された TLS 変数に対して、OpenMP (Intel C++ 12 実装など) は現在何をしていますか? それらをスレッドプライベートにするか、単にTLSを無視しますか?
関連する論文が1つ見つかりましたが、まだ混乱しています。
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1639501&tag=1
私の経験から、__thread は、多くのコンパイラ (VC、gcc、icc) で OpenMP threadprivate (MSDN のこのページにも記載されています) を実装するために使用されます。