インテル® C++ コンパイラー XE 13.1 ユーザー・リファレンス・ガイド

環境変数の設定

コンパイラーがライブラリー、インクルード・ファイル、設定ファイル、特定の設定など、特定のファイルを検索する際のパス (検索先) を指定して、システム環境をカスタマイズできます。

コンパイラーの環境変数

インテル® C++ コンパイラーは Linux* と特に明記されていない限り OS X* で以下の環境変数をサポートしています。

環境変数

説明

CILK_NWORKERS (Linux*)

インテル® Cilk™ Plus プログラムで使用するワーカースレッドの数を指定します。

「ワーカー数の設定」を参照してください。

DYLD_LIBRARY_PATH (OS X*)

共有オブジェクトの場所を指定します。

GCCROOT

gcc バイナリーの場所を指定します。-gcc-name オプションを使用する際に、コンパイラーが gcc バイナリーの場所を特定できない場合にのみ、この変数を設定します。

GXX_INCLUDE

gcc ヘッダーの場所を指定します。-gcc-name=<directory-name>/gcc オプションで指定された必要な値をコンパイラーが見つけられない場合、この変数を設定して、GCC ファイルの場所を指定します。

GXX_ROOT

gcc バイナリーの場所を指定します。-gcc-name=<directory-name>/gcc オプションで指定された必要な値をコンパイラーが見つけられない場合、この変数を設定して、GCC ファイルの場所を指定します。

IA32ROOT (IA-32 アーキテクチャーとインテル® 64 アーキテクチャー)

標準以外のインストール構成の場合に、インクルードおよびライブラリー・ファイルを含むディレクトリーを指します。

ICCCFG

icc を使用してコンパイラーを起動したときにコンパイルをカスタマイズするための設定ファイルを指定します。

ICPCCFG

icpc を使用してコンパイラーを起動したときにコンパイルをカスタマイズするための設定ファイルを指定します。

INTEL_CHKP_REPORT_MODE (Linux*)

ランタイムにポインターチェッカーのレポートモードを変更します。

詳細は、「範囲外エラーの特定とレポート」を参照してください。

INTEL_LICENSE_FILE

インテルのライセンスファイルの場所を指定します。

LD_LIBRARY_PATH (Linux*)

共有オブジェクトの場所を指定します。

PATH

システムがバイナリー実行ファイルを検索するディレクトリーを指定します。

PROF_DIR

プロファイル・ファイル (拡張子が .dyn、.dpi、.spi などのファイル) を保存するディレクトリーを指定します。デフォルトでは、.dyn ファイルは、-prof-gen でコンパイルされたバイナリーにある最初に実行されたインストルメント済みルーチンを含むファイルのソース・ディレクトリーに保存されます。

PROF_DPI

.dpi ファイルの名前です。デフォルトは、pgopti.dpi です。

TMP
TMPDIR
TEMP

一時ファイルの場所を指定します。指定しない場合、コンパイラーは一時ファイルを /tmp に格納します。

インテル® MIC アーキテクチャーの環境変数

MIC_ENV_PREFIX

コプロセッサーに渡される環境変数を制御するために使用します。

デフォルトでは、ホストで設定されているすべての環境変数がコプロセッサーに渡されます。MIC_ENV_PREFIX を指定すると、プリフィックスがこの変数の値と等しい環境変数のみ渡されます。 例えば、setenv MIC_ENV_PREFIX=MIC を指定すると、プリフィックスが MIC の環境変数のみ渡されます。

MIC_LD_LIBRARY_PATH 変数は削除されずにコプロセッサーに渡されるため、MIC_ENV_PREFIX=MIC を使用してコプロセッサー上の LD_LIBRARY_PATH を変更することはできません。

特定のコプロセッサーへの環境変数の引渡し、および 1 つまたはすべてのコプロセッサーへの複数の環境変数の引渡しについては、「CPU の環境変数を設定してコプロセッサーの実行環境を変更する」を参照してください。

MIC_HOST_LOG

ホストからのトレースを出力するファイル名を示す文字列。

デフォルト: なし

例: MIC_HOST_LOG=/home/user/app/host.log

MIC_LD_LIBRARY_PATH

ターゲット共有オブジェクトの場所を指定します。LD_LIBRARY_PATH はホスト・オブジェクトの場所を指定します。

MIC_PROXY_IO

stderr と stdout のプロキシーを有効 (1) または無効 (0) にし、プロセスでホストとコプロセッサー間の I/O プロキシーサポートを有効にするかどうかを指定します。

デフォルト: 1

例: MIC_PROXY_IO=0

MIC_SEP_MONITOR

オフロード領域で SEP を有効 (1) または無効 (0) にします。

デフォルト: 0

例: MIC_SEP_MONITOR=1

MIC_STACKSIZE

オフロードのメインスレッドのスタックサイズを指定します。この値は、一般的に個々のスレッドのスタックサイズよりもはるかに大きくなります。コプロセッサーまたはホストでネイティブに実行する場合に、ulimit-s (BASH シェル) または limit stacksize (C シェル) に設定する値に対応します。

integerB|K|M|G|T のように設定します。各文字の意味は次のとおりです。

  • B = バイト

  • K = キロバイト

  • M = メガバイト

  • G = ギガバイト

  • T = テラバイト

デフォルト: 12M

例: MIC_STACKSIZE=16M

MIC_USE_2MB_BUFFERS

(サイズ > MIC_USE_2MB_BUFFERS) の場合、2M ページを使用します。ランタイムの長さがこの環境変数の値を超えるポインターベースの変数は、大きなページに割り当てられます。

integerB|K|M|G|T のように設定します。各文字の意味は次のとおりです。

  • B = バイト

  • K = キロバイト

  • M = メガバイト

  • G = ギガバイト

  • T = テラバイト

例: MIC_USE_2MB_BUFFERS=64K

OFFLOAD_DEVICES

変数で指定されたコプロセッサーのみ使用するようにオフロードプロセスを制限します。

コプロセッサーのデバイス番号をカンマ区切りのリストで指定できます。デバイス番号の範囲は、0 ~ number_of_devices_in_the_system-1 です。0 はシステムの最初のコプロセッサーで、number_of_devices_in_the_system-1 はシステムの最後のコプロセッサーです。

オフロードに利用可能なコプロセッサーは、論理的に番号が付けられています。関数 _Offload_number_of_devices() は利用可能なコプロセッサーの数を返します。 オフロードプラグマtarget 指定子で使用するコプロセッサーのインデックスの範囲は 0 ~ number_of_devices_in_the_system-1 です。

デフォルト: オフロードプロセスはすべてのデバイスを使用します。

例: OFFLOAD_DEVICES = 1,2

3 コプロセッサー以上を搭載したシステムでは、アプリケーションはこの設定によりコプロセッサー 1 と 2 のみ使用することができます。コプロセッサー 0 または 1 へのオフロードは、1 つ目と 2 つ目の物理コプロセッサーで実行されます。1 よりも大きなデバイス番号が指定された場合は、すべてのオフロードがコプロセッサー 0 と 1 で行われます。1 つ目または 2 つ目のコプロセッサーでオフロードが実行されている場合、コプロセッサー上で _Offload_number_of_devices() 関数は 0 または 1 を返します。

OFFLOAD_INIT

オフロードランタイムにコプロセッサーを初期化するタイミングのヒントを与えます。

利用可能な値は次のとおりです。

  • on_start: main に入る前に利用可能なすべてのコプロセッサーが初期化されます。

  • on_offload: 各コプロセッサーへの最初のオフロードの直前に初期化されます。そのオフロードを処理するコプロセッサーのみ初期化されます。

  • on_offload_all: アプリケーションの最初のオフロードの直前に利用可能なすべてのコプロセッサーが初期化されます。

デフォルト:on_offload_all

: OFFLOAD_INIT=on_start

OFFLOAD_REPORT

オフロード実行時間 (秒単位) とデータ転送量 (バイト単位) の出力を制御します。この環境変数は、__Offload_report API を使用した場合と同じです。

利用可能な値は次のとおりです。

  • 1: 実行時間に関するレポートを生成します。

  • 2: 1 の情報 + CPU とコプロセッサー間のデータ転送量に関するレポートを生成します。

  • 3: 2 の情報 + デバイスの初期化を含むオフロード処理の詳細と個々の変数の転送に関するレポートを生成します。

デフォルト: なし

例: OFFLOAD_REPORT=1

詳細は、「__Offload_report」を参照してください。

OpenMP* 環境変数 (OMP_) と拡張 (KMP_)

KMP_AFFINITY

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

デフォルト: なし

この環境変数はインテル製マイクロプロセッサーおよび互換マイクロプロセッサーで利用可能ですが、インテル製マイクロプロセッサーにおいてより多くの最適化が行われる場合があります。

KMP_ALL_THREADS

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

この環境変数は、-openmp でコンパイルされたプログラムでのみ使用されます。

デフォルト: 制限なし

KMP_BLOCKTIME

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

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

デフォルト: 200 ミリ秒

KMP_CPUINFO_FILE

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

この環境変数はインテル製マイクロプロセッサーおよび互換マイクロプロセッサーで利用可能ですが、インテル製マイクロプロセッサーにおいてより多くの最適化が行われる場合があります。

デフォルト: なし

KMP_DETERMINISTIC_REDUCTIONS

OpenMP* 並列領域で reduction 節を実装するため、リダクション操作において特定の処理順序の使用を有効 (1) または無効 (0) にします。これにより、指定されたスレッド数、指定された並列領域、指定されたデータセットとリダクション操作に対して、OpenMP* の reduction 節で実行される浮動小数点リダクション操作の丸め誤差は常に同じとなり、一貫性のある浮動小数点結果が得られます。

デフォルト: 0

KMP_DYNAMIC_MODE

OMP_DYNAMIC=true の場合に、並列領域に使用されるスレッド数を決定するメソッドを選択します。 設定可能な値: (asat | load_balance | thread_limit)

  • asat: 並列開始時にスレッド数を推定します。

  • load_balance: システムで利用可能な実行ユニットより多いスレッドを使用しないようにします。

  • thread_limit: システムの合計実行ユニットより多いスレッドを使用しないようにします。

IA-32 アーキテクチャーのデフォルト: load_balance (サポートされているすべての OS)

インテル® MIC アーキテクチャーのデフォルト: thread_limit (サポートされているすべての OS)

KMP_INHERIT_FP_CONTROL

各並列領域の開始時点で、マスタースレッドの浮動小数点の制御設定を OpenMP* ワーカースレッドへコピーすることを有効 (1) または無効 (0) にします。

デフォルト: 1

KMP_LIBRARY

OpenMP* ランタイム・ライブラリーの実行モードを選択します。この変数の値は、serialturnaround、または throughput (デフォルト) です。

KMP_MONITOR_STACKSIZE

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

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

デフォルト: max (32k、システムの最小スレッド・スタック・サイズ)

KMP_SETTINGS

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

デフォルト: 0。

KMP_STACKSIZE

プライベート・スタックとして使用する各 OpenMP* スレッドに割り当てるバイト数を設定します。推奨するサイズは 16m です。オプションの b、k、m、g または t サフィックスを使用して、確保するバイト数をバイト、キロバイト、メガバイト、ギガバイトまたはテラバイトで指定してください。この変数は、OpenMP* プログラムのシーケンシャル部分、あるいは -parallel オプション (Linux* および OS X*) または /Qparallel (Windows*) で作成された並列プログラムを実行するユーザープログラムやスレッドによって生成されるオペレーティング・システムのネイティブスレッドには影響ありません。 デフォルト: IA-32 アーキテクチャー: 2m、インテル® 64 アーキテクチャー: 4m

KMP_VERSION

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

デフォルト: 無効

OMP_DYNAMIC

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

デフォルト:

0

構文の例:

export OMP_DYNAMIC=value

OMP_MAX_ACTIVE_LEVELS

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

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

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

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

デフォルト: 制限なし

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

構文の例:

export OMP_MAX_ACTIVE_LEVELS=value

OMP_NESTED

入れ子構造の並列化を有効 (1) または無効 (0) にします。

デフォルト:

0

構文の例:

export OMP_NESTED=value

OMP_NUM_THREADS

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

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

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

構文の例:

export OMP_NUM_THREADS=value

OMP_PROC_BIND

プロセッサー・コンテキストへのスレッドのバインドを有効 (true) または無効 (false) にします。有効にすると、KMP_AFFINITY=scatter を指定するのと同じです。 無効にすると、KMP_AFFINITY=none を指定するのと同じです。 OMP_PROC_BINDKMP_AFFINITY の両方が指定された場合は、KMP_AFFINITY の設定が優先されます。 また、GOMP_CPU_AFFINITYOMP_PROC_BIND よりも優先されます。

デフォルト: false

この環境変数は、OS X* オペレーティング・システムではサポートされていません。

OMP_SCHEDULE

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

デフォルト: STATIC、チャンクサイズの指定なし

構文の例:

export OMP_SCHEDULE="kind[,chunk_size]"

この環境変数はインテル製マイクロプロセッサーおよび互換マイクロプロセッサーで利用可能ですが、インテル製マイクロプロセッサーにおいてより多くの最適化が行われる場合があります。

OMP_STACKSIZE

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

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

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

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

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

IA-32 アーキテクチャーのデフォルト: 2M
インテル® 64 のデフォルト: 4M

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

構文の例:

export OMP_STACKSIZE=value

OMP_THREAD_LIMIT

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

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

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

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

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

デフォルト: 制限なし

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

構文の例:

export OMP_THREAD_LIMIT=value

OMP_WAIT_POLICY

待機中にスレッドをスピンするか (active)、スリープするか (passive) を決定します。

デフォルト: Passive

構文の例:

export OMP_WAIT_POLICY=value

GNU* 環境変数と拡張

CPATH

C/C++ コンパイル用のインクルード・ディレクトリーのパスを指定します。

C_INCLUDE_PATH

C コンパイル用のインクルード・ディレクトリーのパスを指定します。

CPLUS_INCLUDE_PATH

C++ コンパイル用のインクルード・ディレクトリーのパスを指定します。

DEPENDENCIES_OUTPUT

コンパイラーで処理されるシステム以外のヘッダーファイルに基づいて make の依存性を出力する方法を指定します。システム・ヘッダー・ファイルは依存性出力で無視されます。

GCC_EXEC_PREFIX

リンカー (ld) とアセンブラー (as) の代替名を指定します。

GOMP_CPU_AFFINITY

OS のプロセッサー ID のリストを指定します。

デフォルト: アフィニティーは無効

GOMP_STACKSIZE

この環境変数はインテル® コンパイラーの OpenMP* 互換ライブラリーで認識される GNU* 拡張です。

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

LIBRARY_PATH

PATH のようにコロンで区切られたディレクトリーのリストです。

SUNPRO_DEPENDENCIES

この変数は、システム・ヘッダー・ファイルが無視されないことを除いて、DEPENDENCIES_OUTPUT と同じです。

PGO の環境変数

INTEL_PROF_DUMP_CUMULATIVE

インストルメント済みユーザー・アプリケーションの実行中に、インターバル・プロファイル・ダンプ (INTEL_PROF_DUMP_INTERVAL 関数または _PGOPTI_Set_Interval_Prof_Dump 関数により開始) を使用する際、プロファイル情報を含む複数の .dyn ファイルを作成する代わりに、1 つの .dyn ファイルを作成することができます。 この環境変数が設定されていない場合は、インストルメント済みユーザー・アプリケーションを実行すると、それぞれのインターバルに対して新しい .dyn ファイルが作成されます。この環境変数は、終了しないアプリケーションや、異常終了するアプリケーション (通常の終了コードを省略) に対して設定すると便利です。

INTEL_PROF_DUMP_INTERVAL

インストルメント済みのユーザー・アプリケーション内で、インターバル・プロファイルのダンプを開始します。この環境変数は、インストルメント済みのユーザー・アプリケーションでインターバル・プロファイル・ダンプに使用されることがあります。

PROF_DIR

動的情報ファイルの作成先ディレクトリーを指定する変数です。この変数は、プロファイル処理の 3 つのフェーズすべてに適用されます。

PROF_DUMP_INTERVAL

これは古いオプションです。INTEL_PROF_DUMP_INTERVAL を使用してください。

PROF_NO_CLOBBER

フィードバック・コンパイル・フェーズでの処理を少し変更する変数です。デフォルトでは、フィードバック・コンパイル・フェーズでは、すべての動的情報ファイルから得たデータがマージされます。そして .dyn ファイルが既存の pgopti.dpi ファイルよりも新しい場合は、pgopti.dpi ファイルを上書きします。

この変数を設定すると、コンパイラーは既存の pgopti.dpi ファイルを上書きせずに、 警告を発行します。新しい動的情報ファイルを使用するには、既存の pgopti.dpi ファイルを削除する必要があります。


このヘルプトピックについてのフィードバックを送信