Поддержка OpenMP¶
Поддержка:
Стандарт OpenMP 3.1
Языки C, C++, Fortran
Ограничения:
Nested параллелизм не поддержан. Если при исполнении уже распараллеленного цикла встречаются циклы, которые нужно распараллелить, то эти (вложенные) циклы будут исполняться последовательно
Не поддержан clause
collapse
Для C/C++ после директивы
#pragma omp
всегда должен следовать statement языка. Проблемы могут возникнуть для#pragma omp barrier
и#pragma omp flush
, если за ними нет statement’а. Для обхода проблемы рекомендуется в следующей строке поставить пустой statement, например “0;” или “;”Переменные, перечисленные в clause’ах
private
,lastprivate
,firstprivate
иthreadprivate
должны иметь скалярный базовый тип или массив скалярного базового типа. В противном случае результат программы неопределенДиректива
#pragma omp for
не поддержана для итераторов C++Для C/C++ clause’ы
if
иnum_threads
своими параметрами могут иметь только константы и переменные целого типа, выражения не допускаются