Поделиться через


F. Новые функции и разъяснения в версии 2.0

В этом приложении приведены основные изменения, внесенные в спецификацию OpenMP C/C++ при переходе с версии 1.0 на версию 2.0. Следующие элементы являются новыми функциями, добавленными в спецификацию:

  • Запятые разрешены в директивах OpenMP.

  • Добавление пункта num_threads. Это предложение позволяет пользователю запрашивать определенное количество потоков для параллельной конструкции.

  • Директива threadprivate была расширена для принятия статических переменных области блока.

  • Массивы переменной длины C99 являются полными типами и могут быть указаны в любом месте, где разрешены полные типы, например, в списках предложений , и (см. раздел 2.7.2).

  • Частная переменная в параллельном регионе может быть помечена как частная снова в вложенной директиве.

  • Добавлено copyprivate предложение. Он предоставляет механизм использования частной переменной для трансляции значения от одного члена команды другим участникам. Это альтернатива использованию общей переменной для передачи значения, когда передача такой общей переменной может представлять сложность (например, в рекурсии, требующей другой переменной на каждом уровне). Условие copyprivate может присутствовать только в директиве single.

  • Добавление подпрограмм omp_get_wtick и omp_get_wtime аналогично подпрограммам MPI. Эти функции необходимы для измерения времени на обычных часах.

  • Добавлено приложение со списком поведения, определяемого реализацией в OpenMP C/C++. Реализация необходима для определения и документирования его поведения в этих случаях.

  • Следующие изменения служат для уточнения или исправления функций в предыдущей спецификации API OpenMP для C/C++:

    • Уточнено, что поведение omp_set_nested и omp_set_dynamic при omp_in_parallel возврате ненулевого значения не определено.

    • Уточнено вложение директив при использовании вложенного параллелизма.

    • Функции инициализации блокировки и уничтожения блокировки можно вызывать в параллельном регионе.

    • В приложение A добавлены новые примеры.