Глобальная переменная с OpenMP

Вопрос по OpenMP для многопоточного кода:

Все ли глобальные переменные совместно используются потоками? Как сделать определенную глобальную переменную частной для главного потока?

Спасибо

PS: это код C.


person OnRoadCoder    schedule 20.01.2010    source источник
comment
какой язык, си или фортран? специфика немного отличается для двух языков. также, если Фортран, вы пытаетесь приватизировать общие блоки?   -  person Anycorn    schedule 20.01.2010


Ответы (1)


если я правильно помню

#pragma omp threadprivate

глобальные переменные немного сложны, если их нужно инициализировать, вы должны использовать директиву copyfirst (я думаю, это правильное имя). также переменные threadprivate могут нести значительные штрафы, в некоторых реализациях доступ к переменной становится вызовом функции.

person Anycorn    schedule 20.01.2010