Опубликован стандарт параллельного программирования OpenMP 5.1

13 ноября 2020 года

После двух лет разработки опубликован набор спецификаций OpenMP 5.1 (Open Multi-Processing), определяющих API и способы применения методов параллельного программирования для языков Си, Си++ и Фортран на многоядерных и гибридных (CPU+GPU/DSP) системах с общей памятью и блоками векторизации (SIMD). Отдельные элементы OpenMP 5.1 будут включены в следующий выпуск LLVM/Clang 12.0, а также, возможно, успеют попасть в ветку GCC 11.

Основные новшества OpenMP 5.1:

  • Улучшено использование современного C++ в OpenMP. Добавлена полная поддержка распараллеливания программ, написанных с использованием стандартов C11, C18, C++11, C++14, C++17 и C++20. Вместо выражения "pragma" предоставлена поддержка синтаксиса атрибутов, который может применяться для указания директив OpenMP и более прост для интеграции с шаблонами.
  • Расширена поддержка специализированных аппаратных ускорителей. Добавлена конструкция "interop" для обеспечения совместимости с устройствами, напрямую не поддерживающими OpenMP, и использования поддерживаемых данными устройствами интерфейсов, таких как CUDA streams, HIP и OpenCL.
  • Добавлена возможность отражения указателей функций на устройство или ускоритель. Реализована поддержка специфичных для устройств переменных окружения.
  • Расширена предоставляемая компилятору информация, на основе которой можно задействовать дополнительные оптимизации. Для передачи дополнительной информации об использовании OpenMP в программе добавлена директива "assume". Кроме того предложена директива "tile" для определения локализации данных при выполнении циклов, и директива "unroll" для частичного разматывания цикла.
  • Добавлена директива "masked" для ограничения выполнения кода только заданным подмножеством потоков.
  • Предоставлена возможность генерации ошибок и предупреждений, выводимых на стадии компиляции. Добавлена новая директива "error".
  • Улучшена поддержка языка Fortran. Реализована полная совместимость со спецификацией Fortran 2008 и предоставлена начальная поддержка Fortran 2018.
  • Упрощено определение функций, специфичных для конкретных окружений. Сразу несколько функций теперь могут быть включены в один вариант конструкции "declare", а код можно более тщательно адаптировать к определённому окружению.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Опубликован стандарт параллельного программирования OpenMP 5.1», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.