アプリケーションのチューニング
プログラムのパフォーマンスを改善するために多くの労力を費やす前に、 このセクションの手法を使用して、パフォーマンスをどの程度改善できるのかを判断し、 最適化およびチューニングが最も有効であるプログラムの領域を検出してください。
一般的に、最適化プロセスには、以下に示すような幾つかのステップが含まれます。
- チューニングによっては、ステートメントおよび式の順序の変更などによる、 ソース・コードの変更が含まれます。 この手法は、ハンド・チューニング と呼ばれます。
- FORTRAN および C プログラムの場合、 ソース・コードをコンパイル前にチューニングまたはその他の方法で変換する最適化プリプロセッサーが使用可能です。 このようなプリプロセッサーの出力は、 最適化済みの FORTRAN または C ソース・コードです。
- FORTRAN または C++ コンパイラーはソース・コードを中間言語に変換します。
- コード・ジェネレーターは、中間コードをマシン言語に変換します。 コード・ジェネレーターは、選択されたコンパイラー・オプションに従って、 最終的な実行可能コードを最適化して、速度を増加することができます。 最初にハンド・チューニングまたはプリプロセスを行うことによって、 このステップで実行される最適化の量を増加することができます。
速度の増加は、以下の 2 つの要因の影響を受けます。
- プログラムの各部分に適用される最適化の量
- 実行時にプログラムのそれらの部分が使用される頻度
単一のルーチンが作業の大半を実行する場合には、そのルーチンの速度を増加すれば、 プログラムの速度を大幅に増加することができます。一方、そのルーチンがほとんど呼び出されない場合、 および実行に長い時間がかからない場合には、パフォーマンス全体はそれほど改善されません。 パフォーマンスの手法およびデータを評価する場合に、この点に注意して、 実行する作業に関して最も価値のある手法を集中的に使用してください。
これらの手法について詳しくは、「 Optimization and Tuning Guide for XL Fortran, XL C and XL C++」を参照してください。その他のヒントについては、 Efficient Program Design and Implementation も参照してください。