ガイド付き自動並列化は、並列化を行える可能性のあるシリアルコードの部分を見つけるための診断ツールです。ガイド付き自動並列化ツールを起動すると、インテル® コンパイラーは、自動並列化/ベクトル化を効率的に増やすことができるコード部分への変更をアドバイスします。
このツールを起動するには、コンパイラー・オプション -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] |
自動ベクトル化とデータ変換のアドバイスのレベルを設定します。 自動ベクトル化のアドバイスを得るには、-parallel (Linux*) または /Qparallel (Windows*) オプションを、-guide または /Qguide オプションとともに使用してください。 |
-guide-par(=n) |
/Qguide-par[:n] |
自動並列化のみのアドバイスのレベルを設定します。
|
-guide-vec(=n) |
/Qguide-vec[:n] |
自動ベクトル化のみのアドバイスのレベルを設定します。 |
-guide-data-trans(=n) |
/Qguide-data-trans[:n] |
データ変換のみのアドバイスのレベルを設定します。 |
上記のすべてのオプションで、引数 n は任意にアドバイスのレベルを指定できます。 n には、1-4 の値を指定します。n が指定されない場合のデフォルトは 4 です。n=1 または 2 を指定した場合、標準レベルのアドバイスが提供されます。
n=3 または n=4 を指定すると、詳細なメッセージが得られます。例えば、特定のループの入れ子を最適化する方法についてのメッセージや、ループの入れ子内で例外処理が最適化に与える影響に関するメッセージが出力されます。あるいは、コストモデリングに関する追加情報をコンパイラーに提供する方法についてメッセージが得られることもあります (トリップカウントなどの予想値)。
-guide または /Qguide オプションでアドバイスレベルを指定し、ほかのガイド付き自動並列化オプションに異なるアドバイスレベル (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] |
ガイド付き自動並列化のコンパイルで生成されたすべてのメッセージを追加するファイルを指定します。 |
-guide-file または /Qguide-file、-guide-file-append または /Qguide-file-append オプションでは、file_name にパスを含められます。パスを指定しない場合、ファイルは現在の作業ディレクトリーに作成されます。file_name と同じ名前のファイルがすでに存在する場合は上書きされます。file_name で拡張終子を指定しなかった場合、そのファイルの拡張子は .guide になります。
アプリケーションに hotspot があることが判明しており、その hotspot に対するアドバイスのみを得る場合、-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 パラメーターを解析して、エラーがあれば構文エラーを出力します。
構文
/Qguide-opts:string
string パラメーターを使用する場合は次のガイドラインに従ってください。
次に例を示します。
/Qguide-opts:"foo.cpp,'CLHEP::StaticRandomSta::restore(std::basic_istream<char,std::char_traits<char>>&)'"
/Qguide-opts:"bar.f90,'module_1::routine_name'"
/Qguide-opts:"baz.c,'c_routine_name'"
指定されたルーチン名に対して、最初にガイド付き自動並列化ツールは、提供されたルーチン情報を使用してルーチンを一意に識別しようとします。一意に識別できない場合、指定されたルーチン名を持つすべてのルーチンを選択します。そして、パラメーター情報があればそれを使って、選択肢を絞ります。
© 1996-2011 Intel Corporation. 無断での引用、転載を禁じます。