このリリースでは、OpenMP API 標準言語仕様の主要アップグレードである OpenMP API バージョン 4.0 に導入された新しい機能がサポートされています。C、C++、および Fortran コンパイラによってサポートされるこのリリースの新しい OpenMP 4.0 機能には、次のものがあります。
エラー処理 - OpenMP 4.0 では、実行時エラーが存在するときの OpenMP アプリケーションの回復力および安定性を改善するためのエラー処理機能が定義されています。OpenMP の並列実行は、条件付き取り消しおよびユーザー定義の取り消しポイントを使用して完全に中止できます。
スレッドアフィニティー - OpenMP 4.0 には OpenMP スレッドを実行する場所を定義するメカニズムが提供されており、その結果、局所性の改善、偽共有の減少、メモリー帯域幅の増加をもたらします。
タスク拡張 - OpenMP 4.0 は、タスクベースの並列化サポートについて、いくつかの拡張機能を提供しています。タスクをグループ化して、強いタスク同期化をサポートすることができます。タスク間の同期は、タスク依存関係の指定を通じてサポートされます。
Fortran 2003 のサポート - Fortran 2003 規格では、最新のコンピュータ言語機能が多数追加されました。これらの機能を OpenMP 仕様に持たせることで、ユーザーは Fortran 2003 互換のプログラムを並列化することができます。
順序一貫性を持つ原子性 - ストレージの特定の場所が原子的にアクセスされたとき、順序一貫性を強制することができる節が追加されました。
ユーザー定義の縮約 - 基本言語演算子と組み込み手続きによる縮約に加えて、OpenMP 4.0 はユーザー定義の縮約をサポートします。カスタム縮約は declare reduction ディレクティブを使用することによってプログラマから定義でき、これらの縮約は後に reduction 節で指定できます。
新しい環境変数 OMP_DISPLAY_ENV - OMP_DISPLAY_ENV 環境変数は、OpenMP 環境変数に関連付けられた内部制御変数 (ICV) の値を表示するために使用できます。
詳細は、Oracle Solaris Studio 12.4: OpenMP API ユーザーズガイド を参照してください。
OpenMP 4.0 の機能の詳細は、OpenMP Application Program Interface Version 4.0, July 2013 および OpenMP 4.0.1 Examples, February 2014 を参照してください。