コンパイラーの最適化

多くの Fortran コンパイラーは、実行速度を高めたり、生成されたコードに必要なメモリー量を減らすために、コード生成の最適化を実行します。最適化されたプログラムと最適化されていないプログラムの動作は、言語標準の仕様の範囲内では同じですが、言語標準の仕様の範囲外では異なる場合があります。コンパイラーの最適化は、特に浮動小数点数の結果に影響を与えます。

インテル® Fortran コンパイラーは、実行速度と、浮動小数点の一貫性を高める最適化を実行することができます。

浮動小数点の一貫性とは、IEEE バイナリー浮動小数点標準との一貫性がある結果を取得することを意味します。詳細は、-fltconsistency オプション (Linux および Mac OS X) または /fltconsistency オプション (Windows) を参照してください。

コードが適切に設計されていないと、実行速度を最大限に高める最適化を実行したときに、数値結果に問題が発生する可能性があります。/nofltconsistency オプションまたは /nofltconsistency オプションは、可能な限り、格納された変数よりも高い精度を持つ浮動小数点レジスターを使用します。この結果、格納された変数の精度と一貫性のない結果が生成される傾向があります。/fltconsistency オプションまたは /fltconsistency オプションは、文の評価結果を標準データ型の精度に丸めることで、生成されるコードの一貫性を改善することができますが、実行時間は遅くなります。

「アプリケーションの最適化」も参照してください。