yohhoyの日記

技術的メモをしていきたい日記

OpenMP 5.2仕様リリース

2021年11月 OpenMP 5.2仕様リリース記事 OpenMP ARB Releases OpenMP 5.2 with Improvements and Refinements より抄訳。

OpenMP仕様バージョン5.2はOpenMP ARB、主要なコンピュータハードウェア/ソフトウェアベンダのグループ、そしてOpenMPコミュニティのユーザによって共同開発されました。改訂仕様は下記の主要な機能追加を含みます:

  • 非構造化データオフロード利用の簡略化。target enter datatarget exit data)におけるmap指示節のデフォルトマップ型は、tofrom)におけるマップ型と同じ振舞いを提供します。
  • ユーザ定義マッパーサポートの拡張。declare mapperディレクティブが追加の修飾句を受け付けるよう拡張されました。
  • メモリアロケータの改善。Fortran側で確保した変数に対してOpenMPアロケータ利用をサポートするためにallocatorsコンストラクトとallocateディレクティブの実行可能形式が追加され、dispatchコンストラクトが追加のendディレクティブをとるよう拡張されました。
  • FortranのPUREプロシージャ利用の改善。PUREプロシージャ*1で許可されるディレクティブが、最適化ヒント(assumption)ディレクティブ、nothingerrorディレクティブ、メタディレクティブ、ループ変形コンストラクトを含むよう拡張されました。
  • スコープコンストラクト利用の改善。scopeコンストラクトにおいてallocateおよびfirstprivate指示節が許可されます。
  • リニア指示節*2の一貫性向上。他の指示節と一致するようlinear指示節が改訂されました。
  • OpenMPディレクティブ構文の改良。より簡潔で一貫性のある構造になります。*3

関連URL

*1:副作用を持たない、いわゆる純粋関数のこと。

*2:OpenMP 4.0で追加されたSIMD化を制御するための指示節。OpenMP 4.5からループ並列化へも適用可能に拡張された。

*3:前バージョンOpenMP 5.1と比べると、OpenMP 5.2仕様書の文書構造が大幅に書き換えられている。(PDF) OpenMP 5.2 is Here! によれば "Large portions of specification now generated from JSON-based database" とのこと。