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