Поддержка OpenMP
- Поддержка:
- Стандарт OpenMP 3.1
- Языки C, C++, Fortran
- Ограничения:
- Для e2k не поддержано в режиме
-mptr128
- 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 своими параметрами могут иметь только константы и переменные целого типа, выражения не допускаются