ランタイム効率の向上

ソースコード上のガイドラインを使用することで、ランタイム・パフォーマンスを向上させることができます。ランタイム・パフォーマンスをどの程度向上できるかは、文が実行される回数に関連します。例えば、ループ内で多数回実行される算術式を改善すると、ループ外で 1 回実行される同様の式を改善するよりも、パフォーマンス向上の可能性が高くなります。

小さな整数および小さな論理データ項目の回避

32 ビットよりも小さな整数または論理データを使わないようにしてください。16 ビット (または 8 ビット) データ型へアクセスすると、データアクセスの効率性が低下します。特に IA-64 アーキテクチャー・ベース・システムでは、その傾向は顕著となります。

配列データの格納領域とメモリー・キャッシュ・ミスを最小限にするには、64 ビット・データでなく 32 ビット・データを使用します。ただし、8 バイト整数より広い数値範囲や、倍精度浮動小数点数より広い範囲と精度を必要とする場合を除きます。

実行速度の遅い算術演算子の回避

実行速度の遅い算術演算子を避けるためにコードを修正する前に、最適化によって、多数の低速な算術演算子が高速の算術演算子に変換される可能性があることに注意してください。例えば、コンパイラーの最適化により、式 H=J**2H=J*J に変換されます。

さらに、低速な算術演算子を高速の算術演算子に置き換えることによって、結果の精度が変わったり、またソースコードの保守性 (読み易さ) に影響が生じることがないかどうかを考慮する必要もあります。

低速な算術演算子を高速な算術演算子へ置き換えるのは、重要なコード部分については必要な場合のみ行います。次に、インテル® Fortran 算術演算子を高速のものから順に示します。


  1. 加算 (+)、減算 (-)、浮動小数点乗算 (*)

  2. 整数乗算 (*)

  3. 除算 (/)

  4. べき乗 (**)

EQUIVALENCE 文の使用の回避

EQUIVALENCE 文は使わないようにします。EQUIVALENCE により、次のような状況が発生します。

文関数および内部サブプログラムの使用

インテル® コンパイラーは、コンパイル時に、使用されているサブプログラムの定義にアクセスできる場合、サブプログラムのインライン化を行うことがあります。文関数および内部サブプログラムを使用することで、インライン化されるサブプログラム参照数が最大になります。特に多数のソースファイルを最適化レベル -O3 (Linux) または /O3 (Windows) で、まとめてコンパイルする場合に効果があります。

詳細は、「効率的なコンパイル」を参照してください。

DO ループの効率を考慮したコーディング

可能な限り DO ループ内の算術演算や他の演算は最小限に抑えます。不要な演算をループの外に移動することによって、パフォーマンスが向上します (例えば、ループ中の中間不変値が不要な場合など)。