インテル® コンパイラーのガイド付き自動並列化機能は、シリアルコードのアプリケーション・パフォーマンスを向上させるためのアドバイスを提供します。
この機能を使用するのに、プロシージャー間の解析やプロファイルに基づくフィードバックのような高度な最適化手法を使用する必要はありません。通常使うコンパイラー・オプションに加えて、-guide (Linux*) または /Qguide (Windows*) オプションを使用するだけで、このガイド付き自動並列化機能を有効にできます。ただし、-O2 (Linux*) または /O2 (Windows*) 以上の最適化オプションも指定する必要があります。ガイド付き自動並列化実行時は、オブジェクト・ファイルや実行ファイルは生成されません。
デバッグモード (Windows*: /Zi、Linux*: -g) では、/O2 または -O2 (またはより高い最適化レベル) がコマンドラインで明示的に指定されない限り、最適化レベルのデフォルトは /Od (Windows*) または -Od (Linux*) です。そのため、デバッグモードでは /O2 または -O2 を指定しなければ、/Qguide または -guide オプションは何のメリットもない操作 (no-op) となります。
-diag-disable または /Qdiag-disable オプションを、-guide あるいは /Qguide オプションとともに使用して、コンパイラーに特定の診断を出力しないよう指示できます。例えば、/Qguide, /Qdiag-disable:30534 オプションを使用すると、30534 診断を出力しないよう指示します。-diag-disable または /Qdiag-disable はコンパイラーの警告に対するのと同じように動作します。
自動並列化実行で推奨されたアドバイスに従う場合は、推奨されたコードを変更するか、推奨されたコンパイラー・オプションを使用して、プログラムを再コンパイルします。この場合、-guide または /Qguide オプションは使用しないでください。プログラムのパフォーマンスは向上するでしょう。
コンパイラーによるこのアドバイスは特有のものですが、オプションです。取り入れても、取り入れなくてもかまいません。通常、アドバイスは次の 3 つのカテゴリーに分けられます。
これらの新しいオプションはファイル全体に適用されます。問題のループだけでなく、ファイル全体で新しいオプションによりアサートされたプロパティーが適切であることを確認するのは、プログラマーの責任です。
ガイド付き自動並列化オプションを -parallel (Linux*) または /Qparallel (Windows*) とともに使用すると、さらなる並列化が推奨されることがあります。また、ベクトル化のような最適化を有効にするアドバイスが出力されることもあります。
自動並列化を有効にせずに (つまり、-parallel または /Qparallel オプションを使用しないで) ガイド付き自動並列化オプションを使用すると、ベクトル化のような最適化を有効にするためのアドバイスだけしか出力されません。これは、シングルスレッド・コードのパフォーマンスを向上したいときや、コンパイラーの自動並列化に依存しない明示的にスレッド化したアプリケーションのパフォーマンスを向上したいときに推奨します。
© 1996-2011 Intel Corporation. 無断での引用、転載を禁じます。