インテル® Fortran コンパイラー 14.0 ユーザー・リファレンス・ガイド

サポートされている環境変数

コンパイラーのコンパイル時の環境変数

次の表は、インテル® Fortran コンパイラーに影響するコンパイル時の環境変数の一覧です。

コンパイル時の環境変数

説明

IFORTCFG

デフォルトの設定ファイルの代わりに、コンパイラーが使用する設定ファイルを指定します。

デフォルトでは、コンパイラー実行ファイルと同じディレクトリーにあるデフォルトの設定ファイル (ifort.cfg) を使用します。

Windows* システムでは、この環境変数は IDE から設定できません。

INTEL_LICENSE_FILE

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

PATH

コンパイラーの実行ファイルが格納されているディレクトリー・パスを指定します。

TMP

TMPDIR

TEMP

一時ファイルの格納ディレクトリーを指定します。詳細は、「コンパイラーまたはリンカーにより作成される一時ファイル」を参照してください。

Windows* システムでは、この環境変数は IDE から設定できません。

CPATH (Linux* および OS X*)

インクルード・ファイルおよびモジュールファイルのパスを指定します。

GCCROOT (Linux* および OS X*)

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

GXX_INCLUDE (Linux* および OS X*)

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

GXX_ROOT (Linux* および OS X*)

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

LIBRARY_PATH (Linux* および OS X*)

リンクフェーズで使用するライブラリーのパスを指定します。

LD_LIBRARY_PATH (Linux*)

共有ライブラリー・ファイル (.so) のパスを指定します。

DYLD_LIBRARY_PATH (OS X*)

ダイナミック・ライブラリーのパスを指定します。

INCLUDE (Windows*)

インクルード・ファイル (INCLUDE 文でインクルードされるファイル、#include ファイル、RC INCLUDE ファイル、および USE 文で参照されるモジュールファイル) のディレクトリー・パスを指定します。

LIB (Windows*)

リンカーがリンクする .LIB (ライブラリー) ファイルのディレクトリー・パスを指定します。 LIB 環境変数が指定されていない場合、リンカーは現在のディレクトリーにある .LIB ファイルを検索します。

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

MIC_LIBRARY_PATH

ターゲット・スタティック・ライブラリーの場所を指定します。LIBRARY_PATH はホスト・スタティック・ライブラリーの場所を指定します。

コンパイラーのランタイム環境変数

インテル® Fortran コンパイラーのランタイムシステムは、いくつかの環境変数を認識します。これらの変数は、ランタイム診断のエラー報告をカスタマイズしたり、特定の状況下でプログラムを続行させたり、特定のダイアログボックスを非表示にしたり、Just-in-Time デバッグを実行するために使用できます。

次の表は、実行時に認識されるインテル® Fortran コンパイラーの環境変数をまとめたものです。

ランタイム環境変数 説明

decfort_dump_flag

この変数を Y または y に設定すると、致命的なインテル® Fortran ランタイムエラーが発生した際に、コアダンプを行います。

F_UFMTENDIAN

この変数は、リトル・エンディアンからビッグ・エンディアンへの変換に使用されるユニット数を指定します。詳細は、「環境変数 F_UFMTENDIAN を使用する方法」を参照してください。

FOR_COARRAY_CONFIG_FILE (Windows* および Linux*)

この変数は、実行時に使用する Co-Array の設定ファイルとパスを指定します。ランタイムに、[Q]coarray-config-file=value 修飾子で指定された値を上書きします。

FOR_COARRAY_NUM_IMAGES (Windows* および Linux*)

この変数は、Co-Array で作成されるイメージの数を指定します。ランタイムに、[Q]coarray-num-images=value 修飾子で指定された値を上書きします。

FOR_FMT_TERMINATOR

この変数は、特定のレコード区切り文字を持つユニット数を指定できます。「レコード型」を参照してください。

FORT_FMT_NO_WRAP_MARGIN

レコードが 80 文字を超えている場合、Fortran リスト指定出力で列の折り返しを無効にします。

列の折り返しを無効にするだけで、右マージンの値を設定することはできません。

デフォルト: NO (列を折り返します)

FOR_ACCEPT

ACCEPT 文では明示的な論理ユニット番号は指定されません。 その代わりに、ACCEPT 文は暗黙の内部的な論理ユニット番号と FOR_ACCEPT 環境変数を使用します。 FOR_ACCEPT定義されていなければACCEPT f,iolist というコードは CONIN$ (標準入力) から読み取ります。 FOR_ACCEPT が (オプションとしてパスを含むファイル名として) 定義されていれば、指定されたファイルが読み取られます。

FOR_DEBUGGER_IS_PRESENT

この変数は、デバッガーでプログラムを実行していることを、Fortran ランタイム・ライブラリーに通知します。True に設定すると、致命的なエラーや連続エラーが検出された際にデバッグ例外を生成します。

通常、Windows* システムでは、オペレーティング・システムからこの変数を抽出できます。

Linux* および OS X* システムでデバッグ例外を有効にするには、この変数を設定する必要があります。デバッガーでプログラムを実行していない場合にこの変数を True に設定すると、予期しない動作が発生します。

FOR_DEFAULT_PRINT_DEVICE (Windows* のみ)

この変数は、DISPOSE='PRINT' 指定子 (CLOSE 文) で閉じられたファイルに対して、デフォルトの印刷デバイス PRN (LPT1) 以外の印刷デバイスを指定します。 CLOSE 文の DISPOSE='PRINT' 指定子に関連付けられたファイルに対して別の印刷デバイスを指定するには、プログラムを実行する前に FOR_DEFAULT_PRINT_DEVICE を任意の使用可能な DOS 印刷デバイスに設定してください。

FOR_DIAGNOSTIC_LOG_FILE

この変数にファイル名が設定されている場合、指定されたファイルに診断出力を書き込みます。

Fortran ランタイムシステムは、そのファイルを開き (アペンド出力)、ファイルにエラー情報 (ASCII テキスト) を書き出そうと試みます。

FOR_DIAGNOSTIC_LOG_FILE の設定は FOR_DISABLE_DIAGNOSTIC_DISPLAY からは独立しているため、画面上での情報の表示を無効にすると同時に、エラー情報をファイルに収集することができます。 ファイル名として割り当てたテキスト文字列はそのままの形で使用されるので、完全な名前を指定する必要があります。ファイルを開くことに失敗すると、エラーは報告されず、ランタイムシステムは診断処理を続行します。

「ランタイムエラーの場所を特定する方法」および「トレースバック情報の使用についての概要」も参照してください。

FOR_DISABLE_DIAGNOSTIC_DISPLAY

この変数は、すべてのエラー情報を非表示にします。この変数は、プログラムのエラー状態をテストすることだけが目的で、Fortran のランタイムシステムにプログラムの異常終了に関する情報は表示させたくない場合に便利です。

「トレースバック情報の使用についての概要」も参照してください。

FOR_FORCE_STACK_TRACE

定義されていれば、ランタイム診断メッセージに続いてトレースバックを行います。

FOR_DISABLE_STACK_TRACE が同時に設定されている場合、FOR_FORCE_STACK_TRACEFOR_DISABLE_STACK_TRACE よりも優先されます。

FOR_DISABLE_STACK_TRACE

致命的なエラー・メッセージ・テキストの表示の後に続くコール・スタック・トレース情報が表示されなくなります。

Fortran のランタイム・エラー・メッセージは、FOR_DISABLE_STACK_TRACE が True に設定されているかどうかにかかわらず表示されます。 デバッガーでプログラムを実行している場合、Fortran ライブラリーによるスタックトレース情報の自動出力は、ノイズを減らすために無効にされます。スタックトレースを表示するには、デバッガーのスタックトレース機能を使用します。

「ランタイムエラーの場所を特定する方法」および「トレースバック情報の使用についての概要」も参照してください。

FOR_IGNORE_EXCEPTIONS

True に設定されていると、「Just-in Time」デバッグの許可といったデフォルトのランタイム例外処理が無効になります。ランタイムシステムの例外ハンドラーは、オペレーティング・システムに対して EXCEPTION_CONTINUE_SEARCH を返し、オペレーティング・システムは、この例外を処理する他のハンドラーを探します。

FOR_NOERROR_DIALOGS

True に設定されていると、特定の例外またはエラーの発生時に、ダイアログボックスの表示を無効にします。これは、実行の失敗によりテストストリーム全体が停止することを防ぐために、多数のテストプログラムをバッチモードで実行する場合に便利です。

FOR_PRINT

PRINT 文でも WRITE 文でも論理ユニット番号の代わりにアスタリスク (*) を指定すると、明示的な論理ユニット番号は使用されません。 その代わりに、どちらの文でも暗黙の内部論理ユニット番号と FOR_PRINT 環境変数が使用されます。 FOR_PRINT定義されていなければPRINT f,iolist または WRITE (*,f) iolist というコードは、CONOUT$ (標準出力) に書き込みます。 FOR_PRINT が (オプションとしてパスを含むファイル名として) 定義されていれば、指定されたファイルが読み取られます。

FOR_READ

READ 文で、ユニット番号の代わりにアスタリスク (*) を指定する場合、明示的な論理ユニット番号は使用されません。 その代わりに、暗黙の内部論理ユニット番号と FOR_READ 環境変数が使用されます。 FOR_READ定義されていなければREAD (*,f) iolist または READ f,iolist というコードは CONIN$ (標準入力) から読み取ります。 FOR_READ が (オプションとしてパスを含むファイル名として) 定義されていれば、指定されたファイルが読み取られます。

FOR_TYPE

TYPE 文では明示的な論理ユニット番号は指定されません。 その代わりに、暗黙の内部論理ユニット番号と FOR_TYPE 環境変数が使用されます。 FOR_TYPE定義されていなければTYPE f,iolist というコードは CONOUT$ (標準出力) に書き込みます。 FOR_TYPE が (オプションとしてパスを含むファイル名として) 定義されていれば、指定されたファイルが読み取られます。

FORT_BLOCKSIZE

OPEN 文で BLOCKSIZE= が省略されている場合は、デフォルトの BLOCKSIZE 値を使用するように指定します。 有効な値は、0 から 2147467264 です。サイズは、次の 512 バイト境界まで丸められます。

FORT_BUFFERCOUNT

OPEN 文で BUFFERCOUNT= が省略されている場合は、デフォルトの BUFFERCOUNT 値を使用するように指定します。 有効な値は、0 から 127 です。0 が指定された場合、デフォルト値の 1 が使用されます。

FORT_BUFFERED

端末への出力を除いて、すべての Fortran I/O ユニットの出力には、ランタイム時にバッファー I/O を使用するように指定します。これは、assume コンパイラー・オプションの buffered_io キーワードをサポートするランタイムメカニズムを提供します。

FORT_CONVERTn

特定のユニット番号 (n) に関連付けられた書式なしファイルのデータ書式を指定することができます。データ書式を指定する方法の詳細は、「データ書式の指定方法」を参照してください。

FORT_CONVERT.ext および FORT_CONVERT_ext

特定のファイル拡張子サフィックス (ext) を持つ書式なしファイルに対して、データ書式を指定することができます。データ書式を指定する方法の詳細は、「データ書式の指定方法」を参照してください。

FORT_FMT_RECL

書式付きファイルのデフォルトのレコード長 (通常は 132 バイト) を指定します。

FORT_UFMT_RECL

書式なしファイルのデフォルトのレコード長 (通常は 2040 バイト) を指定します。

FORTn

OPEN 文でファイル名が指定されていないか暗黙の OPEN が使用され、fpscomp コンパイラー・オプションが filesfromcmd キーワードで指定されていない場合、特定のユニット番号 n に使用するファイル名を指定します。 ユニット番号 0、5、および 6 に事前に接続されているファイルは、デフォルトではシステムの標準 I/O ファイルに関連付けられています。

INTEL_PRE_FFLAGS

INTEL_POST_FFLAGS

インテル® Fortran コンパイラーのコマンドライン・オプションをコマンドラインの最後に追加します。

これは、コンパイラー設定ファイル ifort.cfg ですでに提供されている機能の拡張です。

デフォルトでは、ifort.cfg という名前の設定ファイルが使用されます。このファイルは、コンパイラーの実行ファイルが格納されているディレクトリーにあります。別の場所にあるほかの設定ファイルを使用する場合は、IFORTCFG 環境変数を使用し、その設定ファイルのディレクトリーとファイル名を指定します。

コマンドライン・オプションは、__INTEL_PRE_CFLAGS 環境変数を使用して先頭に、または __INTEL_POST_CFLAGS 環境変数を使用して最後に挿入することができます。 コマンドラインは次のようにビルドされます。

構文: ifort <PRE flags> <flags from configuration file> <flags from the compiler invocation> <POST flags>

/W5 (Windows*) または -w3 (Linux* および OS X*) オプションが指定されている場合、コンパイラー・ドライバーは環境変数によりオプションが変更されていることを (リマークで) 警告します。

NLSPATH (Linux* および OS X* のみ)

インテル® Fortran のランタイム・エラー・メッセージ・カタログのパスを指定します。

TBK_ENABLE_VERBOSE_STACK_TRACE

エラー発生時に、詳細なコールスタック情報を表示します。

通常は、デフォルトの簡単な出力だけで、エラーの発生場所を特定することができます。この簡単な出力は、スタックフレーム 1 つにつき 1 行で、20 個までのスタックフレームが含まれます。各フレームについて、実行ファイルの名前に続き、PC、ルーチン名、行番号、およびソースファイルが表示されます。

詳細出力を選択すると、簡単な出力で表示される情報に加えて、エラーが機械語例外だった場合には例外コンテキスト・レコードが表示され (マシン・レジスター・ダンプ)、個々のフレームについてリターンアドレス、フレームポインター、スタックポインター、およびルーチンに対するパラメーター (存在する場合) が表示されます。この出力はかなり長くなることがあるため (ただし 16K バイトに制限されます)、出力を正確に記録したい場合には環境変数 FOR_DIAGNOSTIC_LOG_FILE を使用することを推奨します。 多くの場合、詳細出力を使用する必要はありません。

FOR_ENABLE_VERBOSE_STACK_TRACE 変数もまた、Compaq* Visual Fortran との互換性のために認識されます。

「トレースバック情報の使用についての概要」も参照してください。

TBK_FULL_SRC_FILE_SPEC

デフォルトでは、トレースバック出力は、ソース・ファイル・フィールドにファイル名と拡張子しか表示しません。パスを含む完全なファイル名情報を表示するには、環境変数 TBK_FULL_SRC_FILE_SPEC を TRUE に設定します。

FOR_FULL_SRC_FILE_SPEC 変数もまた、Compaq* Visual Fortran との互換性のために認識されます。

「トレースバック情報の使用についての概要」も参照してください。

FORT_TMPDIR

TMP

TMPDIR

TEMP

スクラッチファイルの作成場所に、代わりの作業ディレクトリーを指定します。

GNU* 拡張機能 (インテルの OpenMP* 互換ライブラリーにより認識)

GOMP_STACKSIZE (Linux* および OS X* のみ)

インテル® コンパイラーの OpenMP* 互換ライブラリーで認識される GNU* 拡張です。OMP_STACKSIZE と同じです。KMP_STACKSIZE は、OMP_STACKSIZE を上書きする GOMP_STACKSIZE よりも優先されます。

デフォルト: OMP_STACKSIZE の説明を参照してください。

GOMP_CPU_AFFINITY (Linux* および OS X* のみ)

インテル® コンパイラーの OpenMP* 互換ライブラリーで認識される GNU* 拡張です。OS のプロセッサー ID のリストを指定します。

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

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

OMP_DYNAMIC

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

デフォルト: .FALSE.

構文: export OMP_DYNAMIC=value

OMP_MAX_ACTIVE_LEVELS

プログラムの入れ子構造の並列領域の最大レベル数です。

デフォルト: 1

構文: export OMP_MAX_ACTIVE_LEVEL=value

OMP_NESTED

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

デフォルト: .FALSE.

構文: export OMP_NESTED=value

OMP_NUM_THREADS

アプリケーションでほかの値が指定されていない場合は、OpenMP* 並列領域で使用する最大スレッド数を設定します。すべての並列領域に対してスレッド数を指定する場合、1 つの整数値を設定します。あるいは、入れ子レベルで 1 つの並列領域に対してそれぞれスレッド数を指定する場合、カンマ区切りリストを設定できます。

リストの最初の値は、最外入れ子レベルの並列領域のスレッド数を示し、2 つ目は次の内側の入れ子レベル、というように設定します。どのレベルでも、値を省略することができます。リストの最初の値が省略された場合、最外レベルではスレッドの通常のデフォルト値が使用されます。その他のレベルで値が省略された場合、そのレベルのスレッド数は、前のレベルから継承されます。

この環境変数は、[Q]openmp オプションまたは [Q]parallel オプションの両方に適用されます。

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

構文: export OMP_NUM_THREADS=value[,value]*

OMP_PLACES

一連の位置を示す抽象名または負でない数値で示されるプレースリストによって指定された、明示的に順序付けされたプレースリストです。除外演算子 “!” を使用して、演算子の直後の番号または位置を除外することもできます。

明示的なリストの場合、番号の意味と負でない数値のリストの番号付けは実装定義に依存します。 一般に、番号は実行環境における最小実行単位 (通常はハードウェア・スレッド) を表します。

次のような番号のリストを表すには、<lower-bound> : <length> : <stride> 形式で範囲を指定することができます。

“<lower-bound>, 
<lower-bound> + <stride>, 
..., 
<lower-bound> +(<length>-1)*<stride>.”
<stride> を省略すると、ユニットストライドが仮定されます。 範囲には、1 つの場所の番号を指定することも、一連の場所の番号を指定することもできます。
# EXPLICIT LIST EXAMPLE
setenv OMP_PLACES "{0,1,2,3},{4,5,6,7},{8,9,10,11},{12,13,14,15}"
setenv OMP_PLACES "{0:4},{4:4},{8:4},{12:4}"
setenv OMP_PLACES "{0:4}:4:4"

以下の抽象名は、実行環境とランタイム環境で認識されます。

  • threads: それぞれの場所は、ターゲットマシン上の 1 つのハードウェア・スレッドに対応します。
  • cores: それぞれの場所は、ターゲットマシン上の 1 つのコア (1 つ以上のハードウェア・スレッドを持つ) に対応します。
  • sockets: それぞれの場所は、ターゲットマシン上の 1 つのソケット (1 つ以上のコアで構成される) に対応します。

システムで利用可能なプレースよりも少ないプレースを要求する場合や、システムで利用可能なリソースよりも多くのリソースを要求する場合、プレースリストに含まれる abstract_name タイプのリソースは実装定義に依存します。 抽象名の厳密な定義も実装定義に依存します。実装で、ターゲット・プラットフォーム向けに適切な抽象名を追加することもできます。次のように、抽象名に括弧で囲んだ正の整数を追加して場所のリストの長さを表すことができます: abstract_name(num-places)

# ABSTRACT NAMES EXAMPLE
setenv OMP_PLACES threads
setenv OMP_PLACES threads(4)

OMP_PLACES 環境変数: 数値をターゲット・プラットフォーム上のプロセッサーにマップできない場合の動作は実装定義に依存します。抽象名を使用して OMP_PLACES 環境変数を定義した場合の動作も実装定義に依存します。

OMP_PROC_BIND

対応する入れ子構造のレベルの並列領域に使用するスレッド・アフィニティー・ポリシーを設定します。プロセッサー・コンテキストへのスレッドのバインドを有効 (true) または無効 (false) にします。有効にすると、KMP_AFFINITY=scatter を指定するのと同じです。 無効にすると、KMP_AFFINITY=none を指定するのと同じです。

設定可能な値は、truefalse、またはカンマ区切りのリスト (各要素の値は masterclosespread のいずれか) です。

デフォルト: false

false に設定すると、実行環境は OpenMP* スレッドを OpenMP* 間で移動し、スレッド・アフィニティーは無効になり、並列構造の proc_bind は無視されます。false 以外に設定すると、実行環境は OpenMP* スレッドを OpenMP* 間で移動せず、スレッド・アフィニティーは有効になり、初期スレッドは OpenMP* 期スレッドは OpenMP* リストの最初の位置にバインドされます。

master に設定すると、すべてのスレッドはマスタースレッドと同じ場所にバインドされます。close に設定すると、スレッドは (マスタースレッドがバインドされる場所に近い) 連続した場所にバインドされます。spread に設定すると、マスタースレッドのパーティションが分割され、スレッドは 1 つの場所の連続したサブパーティションにバインドされます。

KMP_AFFINITYGOMP_CPU_AFFINITYOMP_PROC_BIND よりも優先されます。 GOMP_CPU_AFFINITYOMP_PROC_BIND よりも優先されます。

OMP_SCHEDULE

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

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

構文: export OMP_SCHEDULE="kind[,chunk_size]"

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

OMP_STACKSIZE

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

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

この変数は、ユーザープログラムによって生成されるオペレーティング・システムのネイティブスレッド、OpenMP* プログラムまたは [Q]parallel オプションを使用して作成された並列プログラムのシーケンシャル部分を実行するスレッドには影響ありません。

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

デフォルト (IA-32 アーキテクチャー): 2M

デフォルト (インテル® 64 アーキテクチャー): 4M

構文: export OMP_STACKSIZE=value

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

OMP_THREAD_LIMIT

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

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

この環境変数は、[Q]openmp オプションまたは [Q]parallel オプションでコンパイルされたプログラムでのみ使用されます。

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

デフォルト: 制限なし

構文: export OMP_THREAD_LIMIT=value

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

OMP_WAIT_POLICY

スレッドは待機中、スピンするか (active)、停止するか (passive) を決定します。OMP_WAIT_POLICY=ACTIVEKMP_LIBRARY=turnaround のエイリアスで、OMP_WAIT_POLICY=PASSIVEKMP_LIBRARY=throughtput のエイリアスです。

デフォルト: Passive

構文: export OMP_WAIT_POLICY=value

KMP_AFFINITY

ランタイム・ライブラリーを有効にして、論理処理ユニットにスレッドをバインドします。

デフォルト: なし

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

KMP_ALL_THREADS

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

デフォルト: 制限なし

KMP_BLOCKTIME

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

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

デフォルト: 200 ミリ秒

KMP_CPUINFO_FILE

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

デフォルト: なし

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

KMP_DETERMINISTIC_REDUCTION

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)

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

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

KMP_INHERIT_FP_CONTROL

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

デフォルト: 1

KMP_LIBRARY

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

デフォルト: throughput

KMP_MONITOR_STACKSIZE

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

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

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

KMP_PLACE_THREADS

この環境変数は、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーにのみ適用されます。

明示的にアフィニティー設定やプロセス・アフィニティー・マスクを記述する代わりに、OpenMP* アプリケーションで使用するコア数を指定します。オプションで、オフセット値とコアあたりのスレッド数を指定することもできます。

value = (  int [ "C" | "T" ] [ delim ] | delim ) 
[ int [ "T" ] [ delim ] ] 
[ int [ "O" ] ];


delim = "," | "x";

"C" はコア、"T" はスレッド、"O" はオフセットを示します。

コアまたはスレッドのいずれかを指定します。

デフォルト: 省略された場合、デフォルト値は利用可能なコア数 (スレッド数) です。

例:

  • 5C,3T,1O: 5 コアを使用します。オフセットは 1、コアあたりのスレッド数は 3 です。

  • 5,3,1: 上記と同じです。

  • 24: 最初の 24 コアを使用します。コアあたりのスレッド数は利用可能なすべてのスレッドです。

  • 2T: すべてのコアを使用します。コアあたりのスレッド数は 2 です。

  • ,2: 上記と同じです。

  • 3x2: 3 コアを使用します。コアあたりのスレッド数は 2 です。

  • 4C12O: 4 コアを使用します。オフセットは 12、コアあたりのスレッド数は利用可能なすべてのスレッドです。

KMP_SETTINGS

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

デフォルト: 0

KMP_STACKSIZE

プライベート・スタックとして使用する各 OpenMP* スレッドに割り当てるバイト数を設定します。推奨するサイズは 16m です。オプションの bkmg または t サフィックスを使用して、確保するバイト数をバイト、キロバイト、メガバイト、ギガバイトまたはテラバイトで指定してください。 この変数は、ユーザープログラムによって生成されるオペレーティング・システムのネイティブスレッド、OpenMP* プログラムまたは [Q]parallel オプションを使用して作成された並列プログラムのシーケンシャル部分を実行するスレッドには影響ありません。

デフォルト (IA-32 アーキテクチャー): 2m

デフォルト (インテル® 64 アーキテクチャー): 4M

KMP_VERSION

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

デフォルト: 0

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 ファイルを削除する必要があります。

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

MIC_ENV_PREFIX

ターゲットに渡される環境変数を制御するために使用します。

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

MIC_LD_LIBRARY_PATH 変数は削除されずにターゲットに渡されるため、ABC_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 シェル) に設定する値に対応します。

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

  • B = バイト

  • K = キロバイト

  • M = メガバイト

  • G = ギガバイト

  • T = テラバイト

デフォルト: 12M

例: MIC_STACKSIZE=16M

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

関連情報


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