Oracle® Solaris Studio 12.4 リリースの新機能

印刷ビューの終了

更新: 2014 年 12 月
 
 

OpenMP 4.0 のサポート

このリリースでは、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) の値を表示するために使用できます。


注 -  このリリースでは、OpenMP 4.0 デバイスと SIMD 構文が使用できます。ただし、すべてのコードはホストデバイス上で実行され、SIMD 構文によって SIMD 命令が使用されないこともあります。

詳細は、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 を参照してください。