OpenMP* の環境変数

インテル® コンパイラーは OpenMP 環境変数 (OMP_ プリフィックス) とインテル固有の環境変数の形式での拡張 (KMP_ プリフィックス) をサポートしています。

OpenMP 環境変数

構文の例は、Linux* および Mac OS* X の bash 用です。Windows* の場合は set コマンドを使用してください。

変数名

デフォルト

説明と構文

OMP_NUM_THREADS

オペレーティング・システムで認識されるプロセッサー数

アプリケーションでほかの値が指定されていない場合は、OpenMP 並列領域で使用する最大スレッド数を設定します。

この環境変数は、-openmp-parallel (Linux および Mac OS X) または /Qopenmp/Qparallel (Windows) の両方に適用されます。

構文の例:

export OMP_NUM_THREADS=value

OMP_SCHEDULE

STATIC、チャンクサイズの指定なし

ランタイム・スケジュールの型とチャンクサイズ (オプション) を設定します。

構文の例:

export OMP_SCHEDULE="kind[,chunk_size]"

OMP_DYNAMIC

.FALSE.

0

スレッド数の動的調整を有効 (.TRUE.) または無効 (.FALSE.) にします。

構文の例:

export OMP_DYNAMIC=value

OMP_NESTED

.FALSE.

0

入れ子された並列化を有効 (.TRUE.) または無効 (.FALSE.) にします。

構文の例:

export OMP_NESTED=value

OMP_STACKSIZE

IA-32 アーキテクチャー: 2M
インテル® 64 および IA-64 アーキテクチャー: 4M

スレッドのプライベート・スタックとして使用する各 OpenMP スレッドに割り当てるバイト数を設定します。

推奨するサイズは 16M です。

B (バイト), K (キロバイト)、M (メガバイト)、G (ギガバイト)、T (テラバイト) などオプションのサフィックスを使用して単位を指定します。B、K、M、G、T が指定されずに、値のみが指定されている場合は、サイズは K (キロバイト) であると見なされます。

この変数は、OpenMP プログラムのシーケンシャル部分、あるいは -parallel (Linux および Mac OS X) または /Qparallel (Windows) で作成された並列プログラムを実行するユーザープログラムやスレッドによって生成されるネイティブ・オペレーティング・システムのスレッドには影響ありません。

kmp_{set,get}_stacksize_s() ルーチンは値を設定/取得します。kmp_set_stacksize_s() ルーチンは、最初の並列領域が作成される前にシーケンシャル部分から呼び出される必要があります。これが行われない場合、kmp_set_stacksize_s() を呼び出しても効果がありません。

関連環境変数: KMP_STACKSIZE. KMP_STACKSIZEOMP_STACKSIZE よりも優先されます。

構文の例:

export OMP_STACKSIZE=value

OMP_MAX_ACTIVE_LEVELS

制限なし

OpenMP プログラムで同時に実行されるスレッド数を制限します。

この制限に達し、別のネイティブ・オペレーティング・システムのスレッドが OpenMP API コールや構造を検出すると、プログラムはエラーメッセージを表示して終了します。OpenMP 並列領域の開始時点でこの制限に達した場合は、チーム内のスレッド数が減少したことを示す警告メッセージが 1 度だけ生成されますが、プログラムの実行は続けられます。

この環境変数は、-openmp または -openmp-profile または -parallel (Linux および Mac OS X) と /Qopenmp または /Qopenmp-profile または /Qparallel (Windows) でコンパイルされたプログラムでのみ使用されます。

omp_get_thread_limit() ルーチンは制限値を返します。

関連環境変数: KMP_ALL_THREADSOMP_THREAD_LIMITKMP_ALL_THREADS よりも優先されます。

構文の例:

export OMP_THREAD_LIMIT=value

OMP_THREAD_LIMIT

制限なし

OpenMP プログラムで同時に実行されるスレッド数を制限します。

この制限に達し、別のネイティブ・オペレーティング・システムのスレッドが OpenMP API コールや構造を検出すると、プログラムはエラーメッセージを表示して終了します。OpenMP 並列領域の開始時点でこの制限に達した場合は、チーム内のスレッド数が減少したことを示す警告メッセージが 1 度だけ生成されますが、プログラムの実行は続けられます。

この環境変数は、-openmp または

-openmp-profile または -parallel (Linux および Mac OS X) と /Qopenmp または /Qopenmp-profile または /Qparallel (Windows) でコンパイルされたプログラムでのみ使用されます。

omp_get_thread_limit() ルーチンは制限値を返します。

関連環境変数: KMP_ALL_THREADS。この値は、OMP_THREAD_LIMIT よりも優先されます。

構文の例:

export OMP_THREAD_LIMIT=value

インテル固有の環境変数

変数名

デフォルト

説明

KMP_ALL_THREADS

制限なし

OpenMP プログラムで同時に実行されるスレッド数を制限します。

この制限に達し、別のネイティブ・オペレーティング・システムのスレッドが OpenMP API コールや構造を検出すると、プログラムはエラーメッセージを表示して終了します。OpenMP 並列領域の開始時点でこの制限に達した場合は、チーム内のスレッド数が減少したことを示す警告メッセージが 1 度だけ生成されますが、プログラムの実行は続けられます。

この環境変数は、-openmp または -openmp-profile (Linux および Mac OS X) と /Qopenmp または /Qopenmp-profile (Windows) でコンパイルされたプログラムでのみ使用されます。

KMP_BLOCKTIME

200 ミリ秒

並列領域の実行が終了した後、スレッドがスリープ状態になるまでスレッドが待機する時間 (ミリ秒単位) を設定します。

s (秒)、m (分)、h (時間)、d (日) などのサフィックスを使用して単位を指定します。

待機時間に制限を設けない場合は infinite を指定します。

実行モードKMP_LIBRARY 環境変数も参照してください。

KMP_LIBRARY

throughput

OpenMP ランタイム・ライブラリーの実行モードを選択します。変数値のオプションは、throughputturnaroundserial です。

KMP_SETTINGS

0

プログラム実行中の OpenMP ランタイム・ライブラリー環境変数の出力を有効 (1) または無効 (0) にします。ユーザー定義の環境変数設定と OpenMP ランタイム・ライブラリーにより使用される効率的な変数の値の 2 つの変数リストが出力されます。

KMP_STACKSIZE

IA-32 アーキテクチャー: 2m

インテル® 64 および IA-64 アーキテクチャー: 4m

スレッドのプライベート・スタックとして使用する各 OpenMP スレッドに割り当てるバイト数を設定します。

推奨するサイズは 16m です。

b (バイト), k (キロバイト)、m (メガバイト)、g (ギガバイト)、t (テラバイト) などオプションのサフィックスを使用して単位を指定します。

この変数は、OpenMP プログラムのシーケンシャル部分、あるいは -parallel (Linux および Mac OS X) または /Qparallel (Windows) で作成された並列プログラムを実行するユーザープログラムやスレッドによって生成されるネイティブ・オペレーティング・システムのスレッドには影響ありません。

KMP_MONITOR_STACKSIZE

max (32k、システムの最小スレッド・スタック・サイズ)

スレッドの監視に割り当てるバイト数を設定します。これは、プログラムの実行中の記帳に使用されます。

b (バイト), k (キロバイト)、m (メガバイト)、g (ギガバイト)、t (テラバイト) などオプションのサフィックスを使用して単位を指定します。

KMP_VERSION

.FALSE.

0

プログラム実行中の OpenMP ランタイム・ライブラリーのバージョン情報の出力を有効 (.TRUE.) または無効 (.FALSE.) にします。

KMP_AFFINITY

noverbose,
respect,
granularity=core

ランタイム・ライブラリーを有効にして、プロセシング・ユニットにスレッドをバインドします。

デフォルトについての情報およびこの環境変数が並列環境に与える影響についての詳細は、「スレッド・アフィニティー・インターフェイス」を参照してください。

KMP_CPUINFO_FILE

none

マシントポロジーの記述を含むファイルの代替名を指定します。このファイルは、/proc/cpuinfo と同じ形式でなければなりません。

GNU 環境変数の拡張

以下の環境変数は GNU 拡張です。これらの環境変数はインテル® OpenMP 互換ライブラリーで認識されます。

変数名

デフォルト

説明

GOMP_STACKSIZE

OMP_STACKSIZE の説明を参照してください。

OMP_STACKSIZE は GOMP_STACKSIZE よりも優先されます。KMP_STACKSIZE は OMP_STACKSIZE と GOMP_STACKSIZE よりも優先されます。

GOMP_CPU_AFFINITY

TBD