XL Fortran for AIX V8.1.1

ランゲージ・リファレンス

+----------------------------------IBM 拡張----------------------------------+


第 14 章 OpenMP 実行環境ルーチンおよびロック・ルーチン

OpenMP 仕様は、並列的な実行環境の制御および照会を可能にする多数のルーチンを提供します。

OpenMP インターフェースを介して実行時環境で作成される並列スレッドは、Fortran Pthreads ライブラリー・モジュール呼び出しを使用して作成および制御されるスレッドとは別のものと見なされます。以下の説明において「プログラムの直列部分」とは、実行時環境で作成されたいずれか 1 つのスレッドのみによって実行される、プログラムの部分という意味です。たとえば、 f_pthread_create を使用して複数のスレッドを作成することができます。 しかし、その後に OpenMP 並列ブロックの外から、または逐次化されネストされた並列領域内から omp_get_num_threads を呼び出す場合、この関数は、現在実行中のスレッド数にかかわらず 1 を戻します。

OpenMP 実行環境ルーチンには次のものがあります。

OpenMP 実行時ライブラリーには、ポータブル壁時計タイマーをサポートする 2 つのルーチンが含まれます。 OpenMP タイミング・ルーチンには次のものがあります。

さらに、OpenMP 実行時ライブラリーは、 1 組の単純ロック・ルーチンとネスト可能ロック・ルーチンをサポートします。変数のロックは、これらのルーチンを介してのみ行ってください。単純ロックでは、それらがすでにロック状態にある場合は、ロックされません。単純ロック変数は単純ロックに関連付けられ、単純ロック・ルーチンにのみ渡すことができます。ネスト可能なロックは、同じスレッドによって複数回ロックすることができます。ネスト可能ロック変数はネスト可能ロックに関連付けられ、ネスト可能ロック・ルーチンにのみ渡すことができます。

以下に挙げたすべてのルーチンにおいて、ロック変数は、その KIND 型付きパラメーターがシンボリック定数 omp_lock_kind または omp_nest_lock_kind で表される整数です。事前定義されたロック変数は、組み込みデータ型ではない omp_lib モジュール内に定義されることに注意してください。

この変数は、コンパイル・モードに従ってサイズ変更されます。この変数は、32 ビット・アプリケーションでは「4」に設定され、64 ビットの非 LDT (Large Data Type) アプリケーションと 64 ビット LDT アプリケーションでは「8」に設定されます。

OpenMP が提供する単純ロック・ルーチンは次のとおりです。

OpenMP が提供するネスト可能ロック・ルーチンは次のとおりです。

注:
ユーザー独自のバージョンの OpenMP ルーチンを定義してインプリメントすることができます。ただし、(-qnoswapomp コンパイラー・オプションを指定しない限り) デフォルトでは、他のインプリメントが存在するかどうかにかかわらず、コンパイラーは OpenMP ルーチンの XL Fortran バージョンに置換します。詳細については、「ユーザーズ・ガイド」を参照してください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]