次の方法で共有


F. Version 2.0 の新機能と説明

この付録では、バージョン 1.0 からバージョン 2.0 へのアップグレードで更新された重要な OpenMP C/C++ 仕様の概要について説明します。仕様に追加された新しい機能は次のとおりです。

  • OpenMP ディレクティブでコンマを使用できるようになりました (7 ページの「2.1 ディレクティブの書式」)。

  • num_threads 句の追加。この句により、開発者は parallel コンストラクトのスレッド数を要求できるようになりました (8 ページの「2.3 parallel コンストラクト」)。

  • threadprivate ディレクティブが、静的ブロック スコープ変数に対応できるようになりました (23 ページの「2.7.1 threadprivate ディレクティブ」)。

  • C99 可変長配列は完全型なので、完全型が許可されているどこにでも指定できるようになりました。たとえば、private 句、firstprivate 句、および lastprivate 句のリストで指定できます (25 ページの「2.7.2 データ共有属性句」)。

  • 並列領域内のプライベート変数を、入れ子になったディレクティブ内でもプライベートとして指定できるようになりました (25 ページの「2.7.2.1 private」)。

  • copyprivate 句が追加されました。この句は、プライベート変数を使用してチーム内のメンバから他のメンバに値をブロードキャストします。これは、値に対して共有変数を使用する代替方法です。レベルごとに変数が変わる再帰処理など、共有変数の使用が難しい場合にこの句を使用します。copyprivate 句は、single ディレクティブ内にのみ現れます (32 ページの「2.7.2.8 copyprivate」)。

  • MPI ルーチンに類似したタイミング ルーチン omp_get_wtick および omp_get_wtime の追加。これらの関数は、ウォール クロック タイミングを実行するのに必要です (44 ページの「3.3.1 omp_get_wtime 関数」および 45 ページの「3.3.2 omp_get_wtick 関数」)。

  • 実装で定義される OpenMP C/C++ の動作一覧の付録が追加されました。これらの場合については、その動作を定義および文書化するためには実装が必要です (97 ページの「E. OpenMP C/C++ の実装で定義されている動作」)。

  • 以前の C/C++ 対応 OpenMP API 仕様を明確化または改善するために行われた変更は次のとおりです。