XL Fortran for AIX V8.1.1

ユーザーズ・ガイド


第 8 章 XL Fortran プログラムの最適化

部分目次

  • XL Fortran の最適化の考え方
  • 最適化レベルの選択
  • |最適化レベル -O2
  • |最適化レベル -O3
  • |-O2 および -O3 を最大限に活用する
  • -O4 および -O5 オプション
  • ターゲット・マシンまたはターゲット・マシン・クラスの最適化
  • ターゲット・マシン・オプションを最大限に活用する
  • 浮動小数点計算の最適化
  • |高位変換 (-qhot)
  • |-qhot を最大限に活用する
  • |ループおよび配列言語の最適化
  • |ループ変換用のコスト・モデル
  • |ループのアンロール
  • |ハードウェア構成の説明
  • |異なる形式の配列の効率
  • |一時配列の使用の削減
  • |配列の埋め込み
  • |プロファイル・ディレクテッド・フィードバック (PDF)
  • |条件付き分岐の最適化
  • |プロシージャー間分析 (-qipa)
  • |-qipa を最大限に活用する
  • サブプログラム呼び出しの最適化
  • インライン化の正しいレベルの見つけ方
  • |共用メモリー並列処理 (-qsmp)
  • |-qsmp を最大限に活用する
  • |その他のプログラム動作オプション
  • |その他のパフォーマンス・オプション
  • 最適化したコードのデバッグ
  • 最適化されたプログラムでの異なる結果
  • |コンパイラー・フレンドリーなプログラミング
  • 本節は、最適化の背景となる情報、XL Fortran の最適化機能の使用法に関する手引き、XL Fortran の最適化手法の詳細から構成されています。

    |単純なコンパイルとは、ソース・コードを実行可能または共用オブジェクトに翻訳または変換することを言います。 |最適化変換とは、実行時にアプリケーションの総合的パフォーマンスを向上させる変換方式です。 |XL Fortran は、IBM ハードウェアに合わせて調整された最適化変換のポートフォリオを提供します。 |このような変換では、以下が可能になります。 |

    |コンパイラーは適応力の高い洗練されたプログラム分析および変換能力を持っているため、 |比較的少ない開発努力で大きなパフォーマンス改善が可能です。 |さらに、コンパイラーは OpenMP のような、ハイパフォーマンス・コードを作成できるプログラミング・モデルの使用を可能にします。

    |最適化は、製品リリースのビルドのような、アプリケーション開発サイクルの後のほうのフェーズを対象としています。 |可能であれば、コードを最適化する前に、最適化なしでコードをテストおよびデバッグしてください。

    |最適化は、コンパイラー・オプションとディレクティブで制御されます。 |ただし、コンパイラー・フレンドリーなプログラミング・イディオムは、オプションやディレクティブのようにパフォーマンスに |有効である場合があります。 |手作業によるコードの最適化 (たとえば手動によるループのアンロールなど) を過剰に行うのは、現在では不要であり、お勧めできません。 |異常な構造体はコンパイラー (および他のプログラマー) を混乱させ、新しいマシンでのアプリケーションの最適化を困難なものにします。 |コンパイラー・フレンドリーなプログラミング』に、いくつかの |イディオムの提案と、良好な最適化が可能なコードを作成するためのプログラミング上のヒントが記載されています。

    |すべての最適化がすべてのアプリケーションにとって有効であるわけではありません。 |デバッグ能力の削減に伴うコンパイル時間の増加と、コンパイラーによって行われる最適化の度合いとの間で、トレードオフを常に |考慮しておく必要があります。


    [ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]