Работает ли thread_local для потоков OpenMP? - PullRequest
1 голос
/ 30 марта 2020

Если я использую thread_local int x = 0, увидит ли каждый поток OpenMP свой собственный экземпляр x? Так как поиск thread_local в https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5.0.pdf не находит ничего, я думаю, нет, но был бы рад услышать иначе.

Если это не гарантировано, можно ли это объединить с threadprivate как

thread_local int x = 0;
#pragma omp threadprivate(x)

Или мне нужно что-то вроде

#ifdef USE_OPENMP
int x = 0;
#pragma omp threadprivate(x)
#else
thread_local int x = 0;
#endif

вместо?

РЕДАКТИРОВАТЬ: High Performance Mark дал ссылку на проект 5.1 в комментарии, в которых говорится, что

Переменные, которые появляются в директивах threadprivate или переменные со спецификатором класса хранения _Thread_local (в C) или thread_local (в C ++), являются threadprivate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...