+----------------------------------IBM 拡張----------------------------------+
OpenMP 仕様は、 並列的な実行環境の制御および照会を可能にする多数のルーチンを提供します。
OpenMP インターフェースを介して実行時環境で作成される
並列スレッドは、Fortran Pthreads ライブラリー・モジュール呼び出しを
使用して作成および制御されるスレッドとは別のものと見なされます。
以下の説明において「プログラムの直列部分」とは、
実行時環境で作成されたいずれか 1 つのスレッドのみによって実行される、
プログラムの部分という意味です。
たとえば、
f_pthread_create を使用して複数のスレッドを作成することができます。しかし、その後に OpenMP 並列ブロックの外から、
または逐次化されネストされた並列領域内から omp_get_num_threads を
呼び出す場合、この関数は、
現在実行中のスレッド数にかかわらず 1 を戻します。
omp_get_dynamic omp_get_max_threads omp_get_nested omp_get_num_procs omp_get_num_threads |
omp_get_thread_num omp_in_parallel omp_set_dynamic omp_set_nested omp_set_num_threads |
OpenMP 実行時ライブラリーには、 ポータブル壁時計タイマーをサポートする 2 つのルーチンが含まれます。
omp_get_wtick |
omp_get_wtime |
さらに、OpenMP 実行時ライブラリーは、 1 組の単純ロック・ルーチンとネスト可能ロック・ルーチンをサポートします。変数のロックは、これらのルーチンを介してのみ行ってください。 単純ロックでは、それらがすでにロック状態にある場合は、ロックされません。 単純ロック変数は、単純ロックに関連しており、 単純ロック・ルーチンにのみ渡すことができます。ネスト可能なロックは、 同じスレッドによって複数回ロックすることができます。 ネスト可能ロック変数は、ネスト可能ロックに関連しており、 ネスト可能ロック・ルーチンにのみ渡すことができます。
以下にリストされたすべてのルーチンについて、ロック変数は、KIND 型付きパラメーターが シンボリック定数 omp_lock_kind または omp_nest_lock_kind で表される整数です。
この変数は、コンパイル・モードに従ってサイズ変更されます。これは、32 ビット・アプリケーションでは「4」に設定され、64 ビット・アプリケーションでは「8」に設定されます。
omp_destroy_lock omp_init_lock omp_set_lock |
omp_test_lock omp_unset_lock |
omp_destroy_nest_lock omp_init_nest_lock omp_set_nest_lock |
omp_test_nest_lock omp_unset_nest_lock |