インテル® Fortran コンパイラー XE 13.1 ユーザー・リファレンス・ガイド
インテル® コンパイラーのガイド付き自動並列化機能は、シリアルコードのアプリケーション・パフォーマンスを向上させるためのアドバイスを提供します。コンパイラーの自動ベクトル化および並列化機能を利用し、データ操作の効率を向上させるための変更を提案します。実行パフォーマンスを向上するためにスレッド化されたコードを実装する必要はありません。また、コードがスレッド化または並列化されている必要もありません。
このツールを起動するには、コンパイラー・オプション -guide[=n] (Linux*) または /Qguide[:n] (Windows*) を使用します。 このオプションを使用すると、コンパイラーはメッセージを出力し、アプリケーションのパフォーマンスを最適化する方法を推奨します。また、-guide-vec、-guide-par、-guide-data-trans (Linux*)、または /Qguide-vec、/Qguide-par、/Qguide-data-trans (Windows*) などの特定のコンパイラー・オプションを使用して、アプリケーションのベクトル化、並列化、データ変換についての各アドバイスを得ることもできます。
ガイド付き自動並列化オプションが使用されると、コンパイラーは診断アドバイスのみを出力します。オブジェクト・ファイルや実行ファイルはこのモードでは作成されません。オプションの説明については、次の表を参照してください。
Linux* |
Windows* |
説明 |
---|---|---|
-guide(=n) |
/Qguide[:n] |
自動ベクトル化とデータ変換解析のアドバイスのレベル (n) を設定します。
自動ベクトル化のアドバイスを得るには、-parallel (Linux*) または /Qparallel (Windows*) オプションを、-guide または /Qguide オプションとともに使用してください。 |
-guide-par(=n) |
/Qguide-par[:n] |
自動並列化解析のみのアドバイスのレベル (n) を設定します。
注このアドバイスを得るには、-parallel (Linux*) または /Qparallel (Windows*) オプションを、-guide-par または /Qguide-par オプションとともに使用してください。 |
-guide-vec(=n) |
/Qguide-vec[:n] |
自動ベクトル化解析のみのアドバイスのレベル (n) を設定します。 |
-guide-data-trans(=n) |
/Qguide-data-trans[:n] |
データ変換解析のみのアドバイスのレベル (n) を設定します。 |
上記のすべてのオプションで、オプション引数 n はアドバイスのレベルを指定します。 n には、1-4 の値を指定します。 n が指定されない場合のデフォルトは 4 です。 n=1 または 2 を指定した場合、標準レベルのアドバイスが提供されます。
n=3 または n=4 を指定すると、詳細なメッセージが得られます。 例えば、特定のループの入れ子構造を最適化する方法についてのメッセージや、ループの入れ子構造内で例外処理が最適化に与える影響に関するメッセージが出力されます。あるいは、コストモデリングに関する追加情報をコンパイラーに提供する方法についてメッセージが得られることもあります (反復回数などの予想値)。
-guide または /Qguide オプションでアドバイスのレベル (n) を指定し、個々のガイドオプションで異なるアドバイスのレベル (n の値) を設定すると、各ガイドオプションの値が -guide または /Qguide オプションに指定された設定よりも優先されます。
-guide または /Qguide オプションでアドバイスのレベルを指定せず、個々のガイドオプションでアドバイスのレベルを指定した場合、個々のガイドオプションで渡されたアドバイスのレベルのうち最も高い値で -guide または /Qguide オプションが有効になります。
ガイド付き自動並列化ツールは、シリアルコードのすべて、またはコードの各部分を解析し、アドバイスメッセージを生成します。デフォルトでは、生成されたこのメッセージは stderr に出力されます。
ファイルに保存するには、次の表に示すオプションを使用してください。
この表のオプションは、-guide または /Qguide、-guide-par または /Qguide-par、-guide-vec または /Qguide-vec、あるいは -guide-data-trans または /Qguide-data-trans オプションとともに使用する必要があります。 そうでない場合、オプションは無視されます。
Linux* |
Windows* |
説明 |
---|---|---|
-guide-file[=file_name] |
/Qguide-file[:file_name] |
ガイド付き自動並列化のコンパイルで生成されたすべてのメッセージを指定したファイルに保存します。 |
-guide-file-append[=file_name] |
/Qguide-file-append[:file_name] |
ガイド付き自動並列化の実行中に生成されたすべてのメッセージを追加するファイルを指定します。 |
上記のオプションでは、file_name 引数にパスを含めることもできます。 パスを指定しない場合、ファイルは現在の作業ディレクトリーに作成されます。file_name と同じ名前のファイルがすでに存在する場合、-guide-file または /Qguide-file オプションを使用するとファイルは上書きされます。 file_name に拡張子を含めない場合は、拡張子 .guide が追加されます。
Linux* |
Windows* |
説明 |
---|---|---|
-guide-opts[=string] |
/Qguide-opts[:string] |
string で識別される指定したコード要素を解析します。 |
-guide-profile(=filename|dir)
|
/Qguide-profile[:filename|dir]
|
-guide または /Qguide オプションと一緒に使用すると、ループ・プロファイラーのデータファイル (1 つまたは複数) を指定できます。
|
-guide-opts (Linux*) または /Qguide-opts (Windows*) オプションを、-guide、-guide-vec、-guide-par、-guide-data-trans (Linux*) または /Qguide、/Qguide-vec、 /Qguide-par、/Qguide-data-trans (Windows*) オプションのようなガイド付き自動並列化オプションとともに使用してください。 string パラメーターを使用して、特定の領域 (hotspot) の情報を提供します。 string パラメーターには、次の変数を複数指定できます: filename、routine、range。 コンパイラーは string パラメーターを解析して、エラーがあれば構文エラーを出力します。
構文
-guide-opts=string
string パラメーターを使用する場合は次のガイドラインに従ってください。
有効なファイル名、ルーチン名、行番号のみを使用してください。ガイド付き自動並列化ツールは無効な値を無視し、無視した内容を示した診断メッセージを発行します。
ルーチン名は一重引用符で囲みます。オリジナルのソース名 (復号化された名前) をルーチン名として指定します。ルーチン名だけでは、ルーチンを一意に識別できないことがあります。その場合には、追加のパラメーター情報を指定する必要があります。
次に例を示します。
-guide-opts="foo.cpp,'CLHEP::StaticRandomSta::restore(std::basic_istream<char,std::char_traits<char>>&)'"
-guide-opts="bar.f90,'module_1::routine_name'"
-guide-opts="baz.c,'c_routine_name'"
指定されたルーチン名に対して、最初にガイド付き自動並列化ツールは、提供されたルーチン情報を使用してルーチンを一意に識別しようとします。一意に識別できない場合、指定されたルーチン名を持つすべてのルーチンを選択します。そして、パラメーター情報があればそれを使って、選択肢を絞ります。
インライン展開を使用する場合、呼び出し先行番号を使用します。生成されたメッセージでもその呼び出し先行番号が使用されます。
構文
-guide-profile=filename | dir [ , [ filename | dir ] ... ]