インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
コンパイラーがライブラリー、インクルード・ファイル、設定ファイル、特定の設定など、ファイルを検索する際のパス (検索先) を指定して、システム環境をカスタマイズできます。
次の表は、コンパイラーに影響するコンパイル時の環境変数の一覧です。
コンパイル時の環境変数 |
説明 |
---|---|
IFORTCFG |
デフォルトの設定ファイルの代わりに、コンパイラーが使用する設定ファイルを指定します。 デフォルトでは、コンパイラー実行ファイルと同じディレクトリーにあるデフォルトの設定ファイル (ifort.cfg) を使用します。 注Windows* システムでは、この環境変数は Visual Studio* から設定できません。 |
INTEL_LICENSE_FILE |
インテルのライセンスファイルの場所を指定します。 注Windows* システムでは、この環境変数は Visual Studio* から設定できません。 |
__INTEL_PRE_FFLAGS __INTEL_POST_FFLAGS |
コマンドラインにコンパイラー・オプションを追加します。 これは、コンパイラー設定ファイル ifort.cfg ですでに提供されている機能の拡張です。 注デフォルトでは、ifort.cfg という名前の設定ファイルが使用されます。このファイルは、コンパイラーの実行ファイルが格納されているディレクトリーにあります。別の場所にあるほかの設定ファイルを使用する場合は、IFORTCFG 環境変数を使用し、その設定ファイルのディレクトリーとファイル名を指定します。 オプションをコマンドラインの先頭に追加する場合は __INTEL_PRE_FFLAGS を、最後に追加する場合は __INTEL_POST_FFLAGS を使用します。コマンドラインは、次のように構成されます。 構文: ifort <PRE フラグ> <設定ファイルからのフラグ> <コンパイラー起動時のフラグ> <POST フラグ> 注/W5 (Windows*) または -w3 (Linux* および macOS*) を指定すると、ドライバーは環境変数によりオプションが変更されることを警告します。 |
INTEL_TARGET_ARCH_IA32 |
この環境変数を設定すると、すべての関連ツール (コンパイラーとインテル固有のリンカーツールを含む) が 32 ビット・コンパイル向けになります。この環境変数を設定しない場合、コンパイラーを起動するたびに、コマンドラインで明示的に /Qm32 (Windows*) または -m32 (Linux* および macOS*) を指定する必要があります。 |
PATH |
システムがバイナリー実行ファイルを検索するディレクトリーを指定します。 注Windows* では、これはダイナミック・リンク・ライブラリー (DLL) の検索にも影響します。 |
TMP TMPDIR TEMP |
一時ファイルの場所を指定します。これらの変数を指定しない場合、これらの変数がいずれも書き込み不可の場合、または見つからない場合、一時ファイルは /tmp (Linux* および macOS*) または現在のディレクトリー (Windows*) に格納されます。 コンパイラーは、TMP、TMPDIR、TEMP の順に変数を検索します。 注Windows* システムでは、これらの環境変数は Visual Studio* から設定できません。 |
LD_LIBRARY_PATH (Linux*) |
共有オブジェクト (.so ファイル) の場所を指定します。 |
DYLD_LIBRARY_PATH (macOS*) |
ダイナミック・ライブラリーのパスを指定します。 |
INCLUDE (Windows*) |
インクルード・ファイル (INCLUDE 文でインクルードされるファイル、#include ファイル、RC INCLUDE ファイル1、および USE 文で参照されるモジュールファイル) のディレクトリー・パスを指定します。 1 ダイアログボックスやその他の Windows* GUI インターフェイスの作成に使用されるリソース・コンパイラーのファイル |
LIB (Windows*) |
コンパイラーとリンカーが使用するすべてのライブラリーのディレクトリーを指定します。 |
インテル® MIC アーキテクチャーの環境変数 | |
GNU* 環境変数と拡張 | |
CPATH (Linux* および macOS*) |
インクルード・ファイルおよびモジュールファイルのパスを指定します。 |
GCCROOT (Linux*) |
gcc バイナリーの場所を指定します。 -gcc-name オプションを使用する際に、コンパイラーが gcc バイナリーの場所を特定できない場合にのみ、この変数を設定します。 |
GXX_INCLUDE (Linux*) |
gcc ヘッダーの場所を指定します。-gcc-name=directory-name/gcc または -gxx-name=directory-name/g++ で指定された必要な値をコンパイラーが見つけられない場合、この変数を設定して、gcc ファイルの場所を指定します。 |
GXX_ROOT (Linux*) |
gcc バイナリーの場所を指定します。-gcc-name=directory-name/gcc または -gxx-name=directory-name/g++ で指定された必要な値をコンパイラーが見つけられない場合、この変数を設定して、gcc ファイルの場所を指定します。 |
LIBRARY_PATH (Linux* および macOS*) |
リンクフェーズで使用するライブラリーのパスを指定します。 |
インテル® Fortran コンパイラーのランタイムシステムは、いくつかの環境変数を認識します。これらの変数は、ランタイム診断のエラー報告をカスタマイズしたり、特定の状況下でプログラムを続行させたり、特定のダイアログボックスを非表示にしたり、Just-in-Time デバッグを実行するために使用できます。
ファイル I/O に関連する環境変数は、ファイルを開くときに解釈されます。ほかの変数は、プログラムの開始時に読み込まれます。
ランタイム環境変数の優先度は次のとおりです。
OPEN キーワード
環境変数
コマンドライン・オプション
ブール型の Fortran ランタイム環境変数は、次の表に示す値を使用して ON (有効) または OFF (無効) に設定できます。以下の規則は、OpenMP* (OMP_) およびその拡張 (KMP_)、PGO、またはインテル® MIC アーキテクチャー環境変数には適用されません。
ランタイム環境変数を ON または OFF に設定 |
例 |
---|---|
非ゼロの数値のみの整数は環境変数を ON に設定します。 |
1 4938493848 |
t または T、y または Y で始まる文字列は環境変数を ON に設定します。 文字列の前に引用符やスペースを含めることはできません。" T" や ' YES' は、スペースと引用符が文字と見なされるため、環境変数は ON になりません。 |
T t TRUE TFALSE Y y yes yeti |
ON に設定するもの以外はすべて環境変数を OFF に設定します。 |
0 -1 +1 <値なし> |
次の表は、実行時に認識されるコンパイラーの環境変数をまとめたものです。
ランタイム環境変数 |
説明 |
---|---|
F_UFMTENDIAN |
この変数は、リトルエンディアンからビッグエンディアンへの変換に使用されるユニット数を指定します。「環境変数 F_UFMTENDIAN を使用する方法」を参照してください。 変数は、最初のユニットを開くときに一度取得され、その後は開くたびに確認されます。 |
FOR_COARRAY_CONFIG_FILE (Windows* および Linux*) |
この変数は、実行時に使用する Co-Array の設定ファイルとパスを指定します。ランタイムに、[Q]coarray-config-file=value 修飾子で指定された値を上書きします。 |
FOR_COARRAY_DEBUG_STARTUP(Windows* および Linux*) |
ブール値。 TRUE に設定すると、Co-Array の並列サポートを開始する MPI ランチャーコマンドを表示するように Fortran ランタイム・ライブラリーに指示します。 |
FOR_COARRAY_MPI_VERBOSE (Windows* および Linux*) |
ブール値。 TRUE に設定すると、MPI がステータスおよびアクティビティー・メッセージを出力するように、'-verbose' 修飾子を Co-Array 実装の MPI サポートに渡すように Fortran ランタイム・ライブラリーに指示します。 |
FOR_COARRAY_NUM_IMAGES (Windows* および Linux*) |
この変数は、Co-Array で作成されるイメージの数を指定します。ランタイムに、[Q]coarray-num-images=value 修飾子で指定された値を上書きします。どちらも指定しない場合は、論理プロセッサー数が使用されます。 |
FOR_DUMP_CORE_FILE |
ブール値。 この変数は、Linux* では小文字で表す必要があります。 TRUE に設定すると、致命的なインテル® Fortran ランタイムエラーが発生した際に、コアダンプを行います。 デフォルト: FALSE decfort_dump_flag は、FOR_DUMP_CORE_FILE の代替形式です。 |
FOR_FASTMEM_NORETRY |
ブール値。 TRUE に設定すると、libmemkind ライブラリーが実行ファイルにリンクされていないか、ノードで HBW が利用できないため、FASTMEM 割り当てに失敗した場合、ランタイムが STAT= または ERRMSG= メッセージ、あるいはプログラムをアボートして適切なエラーメッセージを返すことで失敗をユーザーに通知するように指定します。 この変数は、プログラムの初期化時に一度取得され、FASTMEM メモリー割り当てを行うたびに確認されます。 デフォルト: true |
FOR_FASTMEM_RETRY |
ブール値。 TRUE に設定すると、libmemkind ライブラリーが実行ファイルにリンクされていないか、ノードで HBW が利用できないため、FASTMEM 割り当てに失敗した場合、プラットフォームのデフォルトのメモリー・アロケーターからメモリーを割り当てるように指示します。 この変数は、プログラムの初期化時に一度取得され、FASTMEM メモリー割り当てを行うたびに確認されます。 デフォルト: FALSE |
FOR_FASTMEM_RETRY_WARN |
ブール値。 TRUE に設定すると、libmemkind ライブラリーが実行ファイルにリンクされていないか、ノードで HBW が利用できないため、FASTMEM 割り当てに失敗した場合、stdout に警告を出力し、プラットフォームのデフォルトのメモリー・アロケーターからメモリーを割り当てるように指示します。 この変数は、プログラムの初期化時に一度取得され、FASTMEM メモリー割り当てを行うたびに確認されます。 デフォルト: FALSE |
FOR_FMT_TERMINATOR |
この変数は、特定のレコード区切り文字を持つユニット数を指定できます。「レコード型」を参照してください。 変数は、最初のユニットを開くときに一度取得され、その後は開くたびに確認されます。 |
FORT_FMT_NO_WRAP_MARGIN |
ブール値。 TRUE に設定すると、レコードが 80 文字を超えている場合、Fortran リスト指定出力で列の折り返しを無効にします。 注この環境変数は、列の折り返しを無効にするだけです。右マージンの値を設定できる環境変数はありません。RECL= 指定子を使用して、ユニットを開くときに右マージンを設定できます。 デフォルト: FALSE (列を折り返します) |
FOR_ACCEPT |
ACCEPT 文では明示的な論理ユニット番号は指定されません。その代わりに、ACCEPT 文は暗黙の内部的な論理ユニット番号と FOR_ACCEPT 環境変数を使用します。FOR_ACCEPT が定義されていなければ、ACCEPT f,iolist というコードは標準入力から読み取ります。FOR_ACCEPT が (オプションとしてパスを含むファイル名として) 定義されていれば、指定されたファイルが読み取られます。 |
FOR_DEBUGGER_IS_PRESENT |
ブール値。 TRUE に設定すると、デバッガーでプログラムを実行していることを Fortran ランタイム・ライブラリーに通知し、致命的なエラーや継続可能なエラーが検出された際にデバッグ例外を生成します。 通常、Windows* システムでは、オペレーティング・システムからこの変数を抽出できます。 Linux* および macOS* システムでデバッグ例外を有効にするには、この変数を設定する必要があります。デバッガーでプログラムを実行していない場合にこの変数を TRUE に設定すると、予期しない動作が発生します。 デフォルト: FALSE |
FOR_DEFAULT_PRINT_DEVICE (Windows*) |
この変数は、DISPOSE='PRINT' 指定子 (CLOSE 文) で閉じられたファイルに対して、デフォルトの印刷デバイス PRN (LPT1) 以外の印刷デバイスを指定します。CLOSE 文の DISPOSE='PRINT' 指定子に関連付けられたファイルに対して別の印刷デバイスを指定するには、プログラムを実行する前に FOR_DEFAULT_PRINT_DEVICE を任意の使用可能なスプール印刷デバイスに設定してください。 |
FOR_DIAGNOSTIC_LOG_FILE |
ファイル名を設定すると、指定したファイルに診断出力を書き込みます。 Fortran ランタイムシステムは、そのファイルを開き (アペンド出力)、ファイルにエラー情報 (ASCII テキスト) を書き出そうと試みます。 FOR_DIAGNOSTIC_LOG_FILE の設定は FOR_DISABLE_DIAGNOSTIC_DISPLAY からは独立しているため、画面上での情報の表示を無効にすると同時に、エラー情報をファイルに収集することができます。ファイル名として割り当てたテキスト文字列はそのままの形で使用されるので、完全な名前を指定する必要があります。ファイルを開くことに失敗すると、エラーは報告されず、ランタイムシステムは診断処理を続行します。 「ランタイムエラーの場所を特定する方法」および「トレースバック」も参照してください。 |
FOR_DISABLE_DIAGNOSTIC_DISPLAY |
ブール値。 TRUE に設定すると、すべてのエラー情報を非表示にします。この変数は、プログラムのエラー状態をテストすることだけが目的で、Fortran のランタイムシステムにプログラムの異常終了に関する情報は表示させたくない場合に便利です。 「トレースバック」も参照してください。 |
FOR_FORCE_STACK_TRACE |
ブール値。 TRUE に設定すると、ランタイム診断メッセージに続いてトレースバックを行います。 FOR_DISABLE_STACK_TRACE を同時に設定すると、FOR_FORCE_STACK_TRACE は FOR_DISABLE_STACK_TRACE よりも優先されます。 デフォルト: FALSE |
FOR_DISABLE_STACK_TRACE |
ブール値。 TRUE に設定すると、致命的なエラー・メッセージ・テキストの表示の後に続くコール・スタック・トレース情報が表示されなくなります。 Fortran のランタイム・エラー・メッセージは、FOR_DISABLE_STACK_TRACE が TRUE に設定されているかどうかにかかわらず表示されます。デバッガーでプログラムを実行している場合、Fortran ライブラリーによるスタックトレース情報の自動出力は、ノイズを減らすために無効にされます。スタックトレースを表示するには、デバッガーのスタックトレース機能を使用します。 デフォルト: FALSE 「ランタイムエラーの場所を特定する方法」および「トレースバック」も参照してください。 |
FOR_IGNORE_EXCEPTIONS |
ブール値。 TRUE に設定すると、「Just-in Time」デバッグの許可といったデフォルトのランタイム例外処理が無効になります。ランタイムシステムの例外ハンドラーは、オペレーティング・システムに対して EXCEPTION_CONTINUE_SEARCH を返し、オペレーティング・システムは、この例外を処理する他のハンドラーを探します。 デフォルト: FALSE |
FOR_NOERROR_DIALOGS |
ブール値。 TRUE に設定すると、特定の例外またはエラーの発生時に、ダイアログボックスの表示を無効にします。これは、実行の失敗によりテストストリーム全体が停止することを防ぐために、多数のテストプログラムをバッチモードで実行する場合に便利です。 デフォルト: FALSE |
FOR_PRINT |
PRINT 文でも WRITE 文でも論理ユニット番号の代わりにアスタリスク (*) を指定すると、明示的な論理ユニット番号は使用されません。その代わりに、どちらの文でも暗黙の内部論理ユニット番号と FOR_PRINT 環境変数が使用されます。FOR_PRINT が定義されていなければ、PRINT f,iolist または WRITE (*,f) iolist というコードは、標準出力に書き込みます。FOR_PRINT が (オプションとしてパスを含むファイル名として) 定義されていれば、指定されたファイルが読み取られます。 |
FOR_READ |
READ 文で、ユニット番号の代わりにアスタリスク (*) を指定する場合、明示的な論理ユニット番号は使用されません。その代わりに、暗黙の内部論理ユニット番号と FOR_READ 環境変数が使用されます。FOR_READ が定義されていなければ、READ (*,f) iolist または READ f,iolist というコードは標準入力から読み取ります。FOR_READ が (オプションとしてパスを含むファイル名として) 定義されていれば、指定されたファイルが読み取られます。 |
FOR_TYPE |
TYPE 文では明示的な論理ユニット番号は指定されません。その代わりに、暗黙の内部論理ユニット番号と FOR_TYPE 環境変数が使用されます。FOR_TYPE が 定義されていなければ、TYPE f,iolist というコードは標準出力に書き込みます。FOR_TYPE が (オプションとしてパスを含むファイル名として) 定義されていれば、指定されたファイルが読み取られます。 |
FORT_BLOCKSIZE |
OPEN 文で BLOCKSIZE= が省略されている場合は、デフォルトの BLOCKSIZE 値を使用するように指定します。有効な値は、0 から 2147467264 です。サイズは、次の 512 バイト境界まで丸められます。 この変数は、常にバッファーされない stderr を除く、すべての Fortran I/O ユニットに適用されます。 この変数は、プログラムの初期化時に一度取得され、ユニットを開くたびに確認されます。 |
FORT_BUFFERCOUNT |
OPEN 文で BUFFERCOUNT= が省略されている場合は、デフォルトの BUFFERCOUNT 値を使用するように指定します。有効な値は、0 から 127 です。0 に設定すると、デフォルト値の 1 が使用されます。 この変数は、stdout (ユニット * と 6) および stderr を除く、すべての Fortran I/O ユニットに適用されます。 この変数は、プログラムの初期化時に一度取得され、ユニットを開くたびに確認されます。 |
FORT_BUFFERED |
ブール値。 TRUE に設定すると、stdout (ユニット * と 6) を除いて、すべての Fortran I/O ユニットの入出力には、ランタイム時にバッファー I/O を使用するように指定します。stderr への出力は常にバッファーされません。 デフォルト: FALSE |
FORT_BUFFERING_THRESHOLD=n |
書式なしシーケンシャル READ 操作で動的バッファリングを行うように指定します。
|
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 ファイルに関連付けられます。 |
NLSPATH (Linux* および macOS*) |
インテル® Fortran のランタイム・エラー・メッセージ・カタログのパスを指定します。 |
TBK_ENABLE_VERBOSE_STACK_TRACE |
ブール値。 TRUE に設定すると、エラー発生時に、トレースバック出力は詳細なコールスタック情報を表示します。 通常は、デフォルトの簡単な出力だけで、エラーの発生場所を特定することができます。この簡単な出力は、スタックフレーム 1 つにつき 1 行で、20 個までのスタックフレームが含まれます。各フレームについて、実行ファイルの名前に続き、PC、ルーチン名、行番号、およびソースファイルが表示されます。 詳細出力を選択すると、簡単な出力で表示される情報に加えて、エラーが機械語例外だった場合には例外コンテキスト・レコードが表示され (マシン・レジスター・ダンプ)、個々のフレームについてリターンアドレス、フレームポインター、スタックポインター、およびルーチンに対するパラメーター (存在する場合) が表示されます。この出力はかなり長くなることがあるため (16K バイトに制限されます)、出力を正確に記録したい場合には環境変数 FOR_DIAGNOSTIC_LOG_FILE を使用することを推奨します。多くの場合、詳細出力を使用する必要はありません。 デフォルト: FALSE 「ランタイムエラーの場所を特定する方法」および「トレースバック」も参照してください。 |
TBK_FULL_SRC_FILE_SPEC |
ブール値。 TRUE に設定すると、トレースバック出力はパスを含む完全なファイル名情報を表示します。デフォルトでは、トレースバック出力は、ソース・ファイル・フィールドにファイル名と拡張子しか表示しません。 デフォルト: FALSE 「ランタイムエラーの場所を特定する方法」および「トレースバック」も参照してください。 |
FORT_TMPDIR TMP TMPDIR TEMP |
スクラッチファイルの作成場所に、代わりの作業ディレクトリーを指定します。 |
GNU* 拡張機能 (インテルの OpenMP* 互換ライブラリーにより認識) | |
GOMP_CPU_AFFINITY (Linux*) |
インテル® コンパイラーの OpenMP* 互換ライブラリーで認識される GNU* 拡張です。OS のプロセッサー ID のリストを指定します。 この環境変数は、最初の並列領域の前、または omp_get_max_threads()、omp_get_num_procs()、アフィニティー API 呼び出しを含む特定の API 呼び出しの前に設定する必要があります。この環境変数に関する詳細は、「スレッド・アフィニティー・インターフェイス」を参照してください。 デフォルト: アフィニティーは無効 |
GOMP_STACKSIZE (Linux*) |
インテル® コンパイラーの OpenMP* 互換ライブラリーで認識される GNU* 拡張です。OMP_STACKSIZE と同じです。KMP_STACKSIZE は、OMP_STACKSIZE を上書きする GOMP_STACKSIZE よりも優先されます。 デフォルト: 「OMP_STACKSIZE」の説明を参照してください。 |
OpenMP* 環境変数 (OMP_) と拡張 (KMP_) | |
OMP_CANCELLATION |
指定した種類の最内領域の取り消し要求を行います。TRUE の場合、CANCEL 構文と取り消しポイントが有効になり、取り消しが要求されます。FALSE の場合、取り消しは無効となり、CANCEL 構文と取り消しポイントは無視されます。 注内部バリアコードは、取り消しが行われたかどうかによって動作が異なります。そのため、グローバルフラグを繰り返しチェックし、取り消しが行われたかどうかを確認すべきです。取り消しが行われた場合、スレッドはバリアを実行せずに値 1 を返します (ほかのスレッドをウェイクアップする可能性があります)。そうでない場合、スレッドはバリアを実行し、値 0 を返します。 指定した種類の最内領域の取り消し要求を有効 (TRUE) または無効 (FALSE) にします。 デフォルト: FALSE 例: OMP_CANCELLATION=TRUE |
OMP_DISPLAY_ENV |
OpenMP* バージョン番号と OpenMP* 環境変数に関連する値の stderr への出力を有効 (TRUE) または無効 (FALSE) にします。 設定可能な値は、TRUE、FALSE、または VERBOSE です。 デフォルト: FALSE 例: OMP_DISPLAY_ENV=TRUE |
OMP_DEFAULT_DEVICE |
ターゲット領域で使用するデバイスを設定します。OpenMP* ルーチン omp_set_default_device または parallelディレクティブの device 節でこの変数をオーバーライドできます。 指定されたデバイス番号のデバイスが存在しない場合、コードはホストで実行されます。この環境変数を設定されていない場合、number 0 が使用されます。 |
OMP_DYNAMIC |
スレッド数の動的調整を有効 (TRUE) または無効 (FALSE) にします。 デフォルト: FALSE 例: OMP_DYNAMIC=TRUE |
OMP_MAX_ACTIVE_LEVELS |
プログラムの入れ子構造の並列領域の最大レベル数です。 デフォルト: 1 構文: OMP_MAX_ACTIVE_LEVELS=TRUE |
OMP_NESTED |
入れ子構造の並列化を有効 (TRUE) または無効 (FALSE) にします。 デフォルト: FALSE 例: OMP_NESTED=TRUE |
OMP_NUM_THREADS |
アプリケーションでほかの値が指定されていない場合は、OpenMP* 並列領域で使用する最大スレッド数を設定します。 すべての並列領域に対してスレッド数を指定する場合、1 つの整数値を設定します。入れ子レベルで 1 つの並列領域に対してそれぞれスレッド数を指定する場合、カンマ区切りリストを設定できます。 リストの最初の値は、最外入れ子レベルの並列領域のスレッド数を示し、2 つ目は次の内側の入れ子レベル、というように設定します。どのレベルでも、値を省略することができます。リストの最初の値が省略された場合、最外レベルではスレッドの通常のデフォルト値が使用されます。その他のレベルで値が省略された場合、そのレベルのスレッド数は、前のレベルから継承されます。 この環境変数は、Qopenmp (Windows*) または qopenmp (Linux * および macOS*)、あるいは Qparallel (Windows*) または parallel (Linux* および macOS*) オプションに適用されます。 デフォルト: オペレーティング・システムで現在認識されているプロセッサー数 構文: 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" 以下の抽象名は、実行環境とランタイム環境で認識されます。
システムで利用可能なプレースよりも少ないプレースを要求する場合や、システムで利用可能なリソースよりも多くのリソースを要求する場合、プレースリストに含まれる abstract_name タイプのリソースは実装定義に依存します。抽象名の厳密な定義も実装定義に依存します。実装で、ターゲット・プラットフォーム向けに適切な抽象名を追加することもできます。次のように、抽象名に括弧で囲んだ正の整数を追加してプレースリストの長さを表すことができます: abstract_name(num-places)。 # ABSTRACT NAMES EXAMPLE setenv OMP_PLACES threads setenv OMP_PLACES threads(4) 注数値をターゲット・プラットフォーム上のプロセッサーにマップできない場合の動作は実装定義に依存します。抽象名を使用して OMP_PLACES 環境変数を定義した場合の動作も実装定義に依存します。 |
OMP_PROC_BIND (Windows* および Linux*) |
対応する入れ子構造のレベルの並列領域に使用するスレッド・アフィニティー・ポリシーを設定します。プロセッサー・コンテキストへのスレッドのバインドを有効 (TRUE) または無効 (FALSE) にします。有効にすると、KMP_AFFINITY=scatter を指定するのと同じです。無効にすると、KMP_AFFINITY=none を指定するのと同じです。 設定可能な値: TRUE、FALSE、またはカンマ区切りのリスト (各要素の値は MASTER、CLOSE、SPREAD のいずれか) です。 デフォルト: FALSE FALSE に設定すると、実行環境は OpenMP* スレッドを OpenMP* 間で移動し、スレッド・アフィニティーは無効になり、並列構造の proc_bind は無視されます。false 以外に設定すると、実行環境は OpenMP* スレッドを OpenMP* 間で移動せず、スレッド・アフィニティーは有効になり、初期スレッドは OpenMP* プレースリストの最初の位置にバインドされます。 MASTER に設定すると、すべてのスレッドはマスタースレッドと同じ場所にバインドされます。CLOSE に設定すると、スレッドは (マスタースレッドがバインドされる場所に近い) 連続した場所にバインドされます。SPREAD に設定すると、マスタースレッドのパーティションが分割され、スレッドは 1 つの場所の連続したサブパーティションにバインドされます。 注KMP_AFFINITY は GOMP_CPU_AFFINITY と OMP_PROC_BIND よりも優先されます。GOMP_CPU_AFFINITY は OMP_PROC_BIND よりも優先されます。 |
OMP_SCHEDULE |
ランタイム・スケジュールの型とチャンクサイズ (オプション) を設定します。 デフォルト: STATIC、チャンクサイズの指定なし 構文の例: OMP_SCHEDULE="kind[,chunk_size]" 注一部の環境変数はインテル製マイクロプロセッサーおよび互換マイクロプロセッサーで利用可能ですが、インテル製マイクロプロセッサーにおいてより多くの最適化が行われる場合があります。 |
OMP_STACKSIZE |
スレッドのプライベート・スタックとして使用する各 OpenMP* スレッドに割り当てるバイト数を設定します。推奨するサイズは 16M です。 B (バイト)、K (キロバイト)、M (メガバイト)、G (ギガバイト)、T (テラバイト) などオプションのサフィックスを使用してバイト単位を指定します。値のみを指定すると、バイト単位は K (キロバイト) であると見なされます。 この変数は、ユーザープログラムによって生成されるオペレーティング・システムのネイティブスレッド、OpenMP* プログラムまたは Qparallel (Windows*) または parallel (Linux* および macOS*) オプションを使用して作成された並列プログラムのシーケンシャル部分を実行するスレッドには影響ありません。 kmp_{set,get}_stacksize_s() ルーチンは値を設定/取得します。kmp_set_stacksize_s() ルーチンは、最初の並列領域が作成される前にシーケンシャル部分から呼び出される必要があります。この呼び出しが行われない場合、kmp_set_stacksize_s() を呼び出しても効果がありません。 デフォルト (IA-32 アーキテクチャー): 2M デフォルト (インテル® 64 アーキテクチャー): 4M デフォルト (インテル® MIC アーキテクチャー): 4M (サポートされているすべての OS) 関連環境変数: KMP_STACKSIZE (OMP_STACKSIZE よりも優先されます) 構文: OMP_STACKSIZE=value |
OMP_THREAD_LIMIT |
OpenMP* プログラムで同時に実行されるスレッド数を制限します。 この制限に達し、オペレーティング・システムの別のネイティブスレッドが OpenMP* API コールや構造を検出すると、プログラムはエラーメッセージを表示してアボートします。OpenMP* 並列領域の開始時点でこの制限に達した場合は、チーム内のスレッド数が減少したことを示す警告メッセージが 1 度だけ生成されますが、プログラムの実行は続けられます。 この環境変数は、Qopenmp (Windows*) または qopenmp (Linux * および macOS*)、あるいは Qparallel (Windows*) または parallel (Linux* および macOS*) オプションを指定してコンパイルされたプログラムにのみ使用されます。 omp_get_thread_limit() ルーチンは制限値を返します。 デフォルト: 制限なし 関連環境変数: KMP_ALL_THREADS (OMP_THREAD_LIMIT よりも優先されます) 構文: OMP_THREAD_LIMIT=value |
OMP_WAIT_POLICY |
スレッドは待機中、スピンするか (active)、停止するか (passive) を決定します。 OMP_WAIT_POLICY=ACTIVE は KMP_LIBRARY=turnaround のエイリアスで、OMP_WAIT_POLICY=PASSIVE は KMP_LIBRARY=throughput のエイリアスです。 デフォルト: Passive 構文: OMP_WAIT_POLICY=value |
KMP_AFFINITY (Windows* および Linux*) |
ランタイム・ライブラリーを有効にして、論理処理ユニットにスレッドをバインドします。 この環境変数は、最初の並列領域の前、または omp_get_max_threads()、omp_get_num_procs()、アフィニティー API 呼び出しを含む特定の API 呼び出しの前に設定する必要があります。この環境変数に関する詳細は、「スレッド・アフィニティー・インターフェイス」を参照してください。 デフォルト: noverbose,warnings,respect,granularity=core,none デフォルト (インテル® MIC アーキテクチャー): noverbose,warnings,respect,granularity=fine,scatter,0,0 注一部の環境変数はインテル製マイクロプロセッサーおよび互換マイクロプロセッサーで利用可能ですが、インテル製マイクロプロセッサーにおいてより多くの最適化が行われる場合があります。 |
KMP_ALL_THREADS |
OpenMP* プログラムで同時に実行されるスレッド数を制限します。制限に達し、オペレーティング・システムの別のネイティブスレッドが OpenMP* API 呼び出しや構造に達すると、プログラムはエラーメッセージを表示してアボートすることがあります。OpenMP* 並列領域の開始時点でこの制限に達した場合は、チーム内のスレッド数が減少したことを示す警告メッセージが 1 度だけ生成されますが、プログラムの実行は続けられます。 この環境変数は、Qopenmp (Windows*) または qopenmp (Linux* および macOS*) オプションを指定してコンパイルされたプログラムにのみ使用されます。 デフォルト: 制限なし |
KMP_BLOCKTIME |
並列領域の実行が終了した後、スレッドがスリープ状態になるまでスレッドが待機する時間 (ミリ秒単位) を設定します。 s (秒)、m (分)、h (時間)、d (日) などのサフィックスを使用して単位を指定します。 待機時間に制限を設けない場合は infinite を指定します。 デフォルト: 200 ミリ秒 関連環境変数: KMP_LIBRARY |
KMP_CPUINFO_FILE |
マシントポロジーの記述を含むファイルの代替名を指定します。このファイルは、/proc/cpuinfo と同じ形式でなければなりません。 デフォルト: なし 注一部の環境変数はインテル製マイクロプロセッサーおよび互換マイクロプロセッサーで利用可能ですが、インテル製マイクロプロセッサーにおいてより多くの最適化が行われる場合があります。 |
KMP_DETERMINISTIC_REDUCTION |
OpenMP* 並列領域で reduction 節を実装するため、リダクション操作において特定の処理順序の使用を有効 (TRUE) または無効 (FALSE) にします。これにより、指定されたスレッド数、指定された並列領域、指定されたデータセットとリダクション操作に対して、OpenMP* の reduction 節で実行される浮動小数点リダクション操作の丸め誤差は常に同じとなり、一貫性のある浮動小数点結果が得られます。 デフォルト: FALSE |
KMP_DYNAMIC_MODE |
OMP_DYNAMIC=TRUE の場合に、並列領域に使用されるスレッド数を決定するメソッドを選択します。設定可能な値は次のとおりです (asat | load_balance | thread_limit)。
デフォルト (IA-32 アーキテクチャー): load_balance (サポートされているすべての OS) デフォルト (インテル® 64 アーキテクチャー): load_balance (サポートされているすべての OS) デフォルト (インテル® MIC アーキテクチャー): thread_limit (サポートされているすべての OS) |
KMP_HOT_TEAMS_MAX_LEVEL |
ホットチームの入れ子構造の最大レベルを設定します。 注ホットチームとは、後続の並列領域で素早く再利用できるように最適化されたスレッドチームです。ホットチームでは、次の並列領域を実行できるようにスレッドが保持されます。一方、コールドチームでは、各並列領域の完了後、スレッドは解放され共通のスレッドプールに配置されます。 値が 2 以上の場合、入れ子構造の並列処理を有効にする必要があります。 デフォルト: 1 |
KMP_HOT_TEAMS_MODE |
ホットチームのスレッド数が減らされた場合のランタイムの動作を指定します。 値は以下のいずれかになります。
デフォルト: 0 |
KMP_HW_SUBSET |
明示的にアフィニティー設定やプロセス・アフィニティー・マスクを記述する代わりに、OpenMP* アプリケーションで使用するソケット数、ソケットあたりのコア数、コアあたりのスレッド数を指定します。使用するリソースを設定するオフセット値を指定することもできます。 KMP_TOPOLOGY_METHOD=hwloc の場合、拡張構文を利用できます。検出されたリソースに応じて、NUMA ノードや特定のキャッシュレベルを共有するハードウェア・リソースのグループなどの追加リソースを指定できます。例えば、「タイル」は一部のインテル® Xeon Phi™ プロセッサーで L2 キャッシュを共有するコアのセットです。 基本構文: socketsS[@offset],coresC[@offset],threadsT S、C、T では大文字と小文字は区別されません。
拡張構文 (KMP_TOPOLOGY_METHOD=hwloc の場合): socketsS[@offset],numasN[@offset],tilesL2[@offset],coresC[@offset],threadsT S、N、L2、C では大文字と小文字は区別されません。一部の指示子は一部のマシンでエイリアスです。同じリソースに対して重複するまたは複数のエイリアス指示子を指定することは許可されていません。
注1 つ以上のリソースの種類 (sockets、cores、または threads) を指定しない場合、利用可能なすべてのリソース (sockets、cores、および threads) が使用されます。 注選択したトポロジー検出手法でサポートされない特定の種類のリソースが指定された場合、KMP_HW_SUBSET の設定は無視されます。 注OpenMP* アフィニティーが disabled に設定されている場合、この変数は効果がありません。 デフォルト: 省略すると、デフォルトで利用可能なすべてのハードウェア・リソースを使用します。 例:
|
KMP_INHERIT_FP_CONTROL |
各並列領域の開始時点で、マスタースレッドの浮動小数点の制御設定を OpenMP* ワーカースレッドへコピーすることを有効 (TRUE) または無効 (FALSE) にします。 デフォルト: TRUE |
KMP_LIBRARY |
OpenMP* ランタイム・ライブラリーの実行モードを選択します。この変数の値は、serial、turnaround、または throughput です。 デフォルト: throughput |
KMP_PLACE_THREADS |
これは古い環境変数です。KMP_HW_SUBSET を使用してください。 |
KMP_SETTINGS |
プログラム実行中の OpenMP* ランタイム・ライブラリー環境変数の出力を有効 (TRUE) または無効 (FALSE) にします。ユーザー定義の環境変数設定と OpenMP* ランタイム・ライブラリーにより使用される効率的な変数の値の 2 つの変数リストが出力されます。 デフォルト: FALSE |
KMP_STACKSIZE |
プライベート・スタックとして使用する各 OpenMP* スレッドに割り当てるバイト数を設定します。 推奨するサイズは 16m です。 B (バイト)、K (キロバイト)、M (メガバイト)、G (ギガバイト)、T (テラバイト) などオプションのサフィックスを使用してバイト単位を指定します。値のみを指定すると、バイト単位は K (キロバイト) であると見なされます。 この変数は、ユーザープログラムによって生成されるオペレーティング・システムのネイティブスレッド、あるいは OpenMP* プログラムまたは Qparallel (Windows*) または parallel (Linux* および macOS*) オプションで生成された並列プログラムのシーケンシャル部分を実行するスレッドには影響ありません。 KMP_STACKSIZE は GOMP_STACKSIZE をオーバーライドし、GOMP_STACKSIZE は OMP_STACKSIZE をオーバーライドします。 デフォルト (IA-32 アーキテクチャー): 2m デフォルト (インテル® 64 アーキテクチャー): 4M デフォルト (インテル® MIC アーキテクチャー): 4M (サポートされているすべての OS) |
KMP_TOPOLOGY_METHOD |
OpenMP* が特定のマシン・トポロジー・モデル・メソッドを使用するように強制します。 設定可能な値は以下のとおりです。
|
KMP_VERSION |
プログラム実行中の OpenMP* ランタイム・ライブラリーのバージョン情報の出力を有効 (TRUE) または無効 (FALSE) にします。 デフォルト: FALSE |
KMP_WARNINGS |
プログラム実行中の OpenMP* ランタイム・ライブラリーからの警告の表示を有効 (TRUE) または無効 (FALSE) にします。 デフォルト: TRUE |
インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャー環境変数 |
|
MIC_ENV_PREFIX |
ターゲットに渡される環境変数を制御します。 デフォルトでは、ホストで設定されているすべての環境変数がターゲットに渡されます。MIC_ENV_PREFIX を指定すると、プリフィクスがこの変数の値と等しい環境変数のみ渡されます。例えば、MIC_ENV_PREFIX=ABC を指定すると、プリフィクスが ABC の環境変数のみ渡されます。 注MIC_LD_LIBRARY_PATH 変数は削除されずにターゲットに渡されるため、MIC_ENV_PREFIX=MIC を使用してターゲット上の LD_LIBRARY_PATH を変更することはできません。 ターゲットで LD_LIBRARY_PATH を変更するには、次の操作を行います。
例えば、ホストで次の 2 つの環境変数を設定すると、ターゲットの LD_LIBRARY_PATH が /tmp/mylibs に設定されます。 MIC_ENV_PREFIX=ABC ABC_LD_LIBRARY_PATH=/tmp/mylibs 特定のコプロセッサーへの環境変数の引き渡し、および 1 つまたはすべてのコプロセッサーへの複数の環境変数の引き渡しについては、「CPU の環境変数を設定してコプロセッサーの実行環境を変更する」を参照してください。 |
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 のように設定します。各文字の意味は次のとおりです。
デフォルト: 12M 例: MIC_STACKSIZE=16M |
MIC_USE_2MB_BUFFERS |
(サイズ > MIC_USE_2MB_BUFFERS) の場合、2M ページを使用します。ランタイムの長さがこの環境変数の値を超える ALLOCATABLE または POINTER 属性を持つ変数は、大きなページに割り当てられます。 <整数値>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 指定子で使用するコプロセッサーのインデックスの範囲は、OFFLOAD_DEVICES で指定されます。 デフォルト: オフロードプロセスはすべてのデバイスを使用します。 例: OFFLOAD_DEVICES = 1,2 3 つ以上のコプロセッサーを搭載したシステムでは、アプリケーションはこの設定によりコプロセッサー 1 と 2 のみ使用することができます。コプロセッサー 0 または 1 へのオフロードは、2 つ目と 3 つ目の物理コプロセッサーで実行されます。1 よりも大きなデバイス番号が指定された場合は、すべてのオフロードがコプロセッサー 0 と 1 で行われます。コプロセッサーで実行される関数 OFFLOAD_NUMBER_OF_DEVICES, は、オフロードが OFFLOAD_DEVICES で指定されたコプロセッサー 1 または 2 で実行している場合は 0 または 1 を返します。 この変数を空の値に設定すると (export OFFLOAD_DEVICES= ) 効果がありません。この変数をnone に設定すると (set OFFLOAD_DEVICES=none)、プログラム内のオフロードコードの実行に次のように影響します。
オフロードがオプションの場合は optional 節を、必須の場合は mandatory 節を、次のいずれかで指定します。
|
OFFLOAD_NODES |
ホストシステムからオフロード可能なクラスターのサブセット (サーバーまたはノードのグループ) を定義します。クラスター内でオフロードする場合、オフロード可能なノードを指定するため、この環境変数を設定する必要があります。 環境変数の値は、マシン指定子のカンマ区切りリストです。マシン指定子には、マシン名または IP アドレスを使用できます。オプションで、マシン指定子の後に角括弧で囲んだノードタイプとファブリック・タイプを指定できます。現在、デフォルトのノードタイプは x200、ファブリック・タイプは OFI です。今後ほかのノードタイプとファブリックタイプもサポートされる予定です。 OFFLOAD_NODES で指定されたオフロード可能なマシンには、指定された順にデバイス番号 0、1、2、... が割り当てられます。このデバイス番号は、#pragma offload target(mic:<number>) によるオフロードで利用できます。OFFLOAD_DEVICES 環境変数を使用して、利用可能なクラスターマシンのサブセットへオフロードを制限することもできます。 デフォルト: デフォルト値はありません。クラスター内でオフロードする場合は、必ずこの環境変数を設定する必要があります。 例: export OFFLOAD_NODES="machine1,machine2,10.2.100.50" 例: export OFFLOAD_NODES="machine3[x200,OFI]" 例: 次の構文では、offload プラグマで指定されたターゲットにおいて、machine2 と 10.2.100.50 がプロセッサー 0 と 1 として使用されます。 export OFFLOAD_NODES="machine1,machine2,10.2.100.50" export OFFLOAD_DEVICES=1,2 |
OFFLOAD_INIT |
オフロードランタイムにターゲットを初期化するタイミングのヒントを与えます。 値は以下のいずれかになります。
デフォルト: on_offload_all 例: OFFLOAD_INIT=on_start |
OFFLOAD_REPORT |
オフロード実行時間 (秒単位) とデータ転送量 (バイト単位) の出力を制御します。この環境変数は、__Offload_report API を使用した場合と同じです。 値は以下のいずれかになります。
デフォルト: なし 例: OFFLOAD_REPORT=1 _Offload_report も参照してください。 |
プロファイルに基づく最適化 (PGO_) 環境変数 |
|
INTEL_PROF_DUMP_CUMULATIVE |
インストルメント済みユーザー・アプリケーションの実行中に、インターバル・プロファイル・ダンプ (INTEL_PROF_DUMP_INTERVAL 関数または _PGOPTI_Set_Interval_Prof_Dump 関数により開始) を使用する際、プロファイル情報を含む複数の .dyn ファイルを作成する代わりに、1 つの .dyn ファイルを作成することができます。設定されていない場合は、インストルメント済みユーザー・アプリケーションを実行すると、それぞれのインターバルに対して新しい .dyn ファイルが作成されます。 この環境変数は、終了しないアプリケーションや、異常終了するアプリケーション (通常の終了コードを省略) に対して設定すると便利です。 |
INTEL_PROF_DUMP_INTERVAL |
インストルメント済みのユーザー・アプリケーション内で、インターバル・プロファイルのダンプを開始します。この環境変数は、インストルメント済みのユーザー・アプリケーションでインターバル・プロファイル・ダンプに使用されることがあります。 |
INTEL_PROF_DYN_PREFIX |
別の PGO 実行によってダンプされた .dyn ファイルと区別するため、.dyn ファイル名に追加するプリフィクスを指定します。インストルメント済みアプリケーションを実行すると、<prefix>_<timestamp>_<pid>.dyn という名前の .dyn ファイルが生成されます。<prefix> は指定した識別子です。 注この環境変数で指定する値では、次の文字を使用できません: < > : " / \ | ? *。無効なプリフィクスを指定すると、デフォルトの命名規則が使用されます。 |
PROF_DIR |
プロファイル・ファイル (拡張子が .dyn、.dpi、.spi などのファイル) を保存するディレクトリーを指定します。デフォルトでは、.dyn ファイルは、[Q]prof-gen オプションでコンパイルされたバイナリーにある最初に実行されたインストルメント済みルーチンを含むファイルのソース・ディレクトリーに保存されます。 この変数は、プロファイル処理の 3 つのフェーズすべてに適用されます。
|
PROF_DPI |
.dpi ファイルの名前です。 デフォルト: pgopti.dpi |
PROF_DUMP_INTERVAL |
これは古いオプションです。INTEL_PROF_DUMP_INTERVAL を使用してください。 |
PROF_NO_CLOBBER |
フィードバック・コンパイル・フェーズでの処理を少し変更する変数です。デフォルトでは、フィードバック・コンパイル・フェーズでは、すべての動的情報ファイルから得たデータがマージされます。そして .dyn ファイルが既存の pgopti.dpi ファイルよりも新しい場合は、pgopti.dpi ファイルを上書きします。 この変数を設定すると、コンパイラーは既存の pgopti.dpi ファイルを上書きせずに、警告を発行します。新しい動的情報ファイルを使用するには、既存の pgopti.dpi ファイルを削除する必要があります。 |