omp_get_num_threads()

目的

omp_get_num_threads 関数は、 その呼び出し元の並列領域を現在実行しているチーム内のスレッド数を戻します。 この関数は、 それを囲む最も近い PARALLEL ディレクティブにバインドします。

チーム内のスレッド数は、 omp_set_num_threads サブルーチン および OMP_NUM_THREADS 環境変数によって制御されます。 スレッド数を明示的に設定しない場合、実行時環境は、 マシン上のオンライン・プロセッサー数をデフォルトとして使用します。

プログラムの直列部分から、 または逐次化されネストされた並列領域から omp_get_num_threads を 呼び出すと、関数は 1 を戻します。

クラス

関数

引き数の型と属性

なし

結果の値と属性

デフォルトの整数

結果の値

関数の呼び出し元の並列領域を現在実行しているチーム内のスレッド数。

      USE omp_lib
      INTEGER N1, N2
 
      N1 = omp_get_num_threads()
      PRINT *, N1
!$OMP PARALLEL PRIVATE(N2)
      N2 = omp_get_num_threads()
      PRINT *, N2
!$OMP END PARALLEL

コードの直列セクションでは omp_get_num_threads 呼び出し によって 1 が戻されるため、N1 には値 1 が割り当てられます。 N2 には並列領域を実行しているチーム内のスレッド数が割り当てられ、 2 番目の PRINT ステートメントの出力は、 omp_get_max_threads の戻り値以下の任意の数になります。 IBM Copyright 2003