Как глобально установить предложение по умолчанию в none? - PullRequest
5 голосов
/ 17 марта 2012

Я знаю, что могу сказать OpenMP не делить переменные по умолчанию в параллельном регионе, используя

#pragma omp parallel default none

Но есть ли способ установить это глобально?Кажется, что глобальное значение по умолчанию таково, что все, что не объявлено как частное, является общим, и, по крайней мере, в моем приложении, есть гораздо больше вещей, которые должны быть частными, чем должны быть общими.

1 Ответ

8 голосов
/ 18 марта 2012

Все переменные в OpenMP являются общими по умолчанию.Если вам нужен набор закрытых переменных, вам нужно будет указать эти переменные в параллельной директиве pragma в закрытом предложении.Если вы используете

#pragma omp parallel default none

Вам необходимо указать частные переменные и общие переменные.Например:

#pragma omp parallel default(none) private(i,j) shared(a,b) 

Ссылки:

[1] http://en.wikipedia.org/wiki/OpenMP#OpenMP_clauses

[2] https://computing.llnl.gov/tutorials/openMP/#ClausesDirectives

...