プロファイルに基づく最適化の概要

プロファイルに基づく最適化 (PGO) を行うと、アプリケーションのどの領域が最も頻繁に実行するかがコンパイラに伝えられます。コンパイラはこの領域を知ると、より慎重かつ明確にアプリケーションの最適化を行います。例えば、PGO を使用するとコンパイラは関数のインライン化について的確な判断が下せる場合が多くなり、その結果、プロシージャ間の最適化の効率が向上します。

インストルメント済みプログラム

プロファイルに基づく最適化では、ソースコードおよびコンパイラからの特別なコードからインストルメント済みプログラムを作成します。インストルメント済みコードを実行するたびにインストルメント済みプログラムは動的情報ファイルを生成します。もう一度コンパイルすると、生成した動的情報がマージされて 1 個のサマリファイルができます。このプロファイル情報を使用して、コンパイラはプログラム内で最も頻繁に使用するパスの実行の最適化を図ります。

サイズや速度に注目する他の最適化と異なり、IPO および PGO の結果はばらつきます。その理由は、プログラムが違えばプロファイルも異なり、最適化の見込みがあるかどうかもさまざまだからです。このガイドラインは、IPO および PGO を使用することにより利点が得られるどうかを判断するのに役立ちます。最適化の原理を理解し、ソースコードの独自な特性を知っておく必要があります。

PGO で向上するパフォーマンス

このバージョンの インテル® Fortran コンパイラでは、PGO は、次のように性能向上を行っています。