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