目的
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 の戻り値以下の任意の数になります。