XL Fortran for AIX V8.1.1
ユーザーズ・ガイド
|コンパイラー・フレンドリーなプログラミング・イディオムは、オプションやディレクティブのようにパフォーマンスに
|有効である場合があります。
|以下にいくつかの提案を示します。
|
- |一般
- |
- |可能であれば、xlf90 または xlf95 のようなコマンド呼び出しを使用して、
|標準の準拠性を保証し、コード移植性を拡張してください。
|これが不可能な場合は、-qnosave オプションを使用して、すべてのローカル変数を自動化してください。
|これにより、さらに最適化の機会がもたらされます。
- |モジュールを使用して、関連するサブルーチンおよび関数をグループ化してください。
- |カスタム・インプリメンテーションまたは汎用ライブラリーではなく、高度に調整された MASS および
|ESSL ライブラリーを使用することを検討してください。
|
- |手作業によるチューニング
- |
- |手作業によるコードの最適化を過度に行ってはいけません。
|異常な構造体はコンパイラー (および他のプログラマー) を混乱させ、新しいマシンでのアプリケーションの最適化を
|困難なものにします。
- |インライン化による小さな関数の手作業によるチューニングを限定的に行ってください。
- |プログラムを数多くの小さな関数に過度に分割するのは避けてください。
|小さな関数を使用しなければならない場合は、-qipa を使用することを検討してください。
|
- |変数
- |
- |グローバル変数およびポインターの不要な使用は避けてください。
|これらをループ内で使用するときは、ループの前にローカル変数にロードし、ループの後で保管し戻してください。
- |INTENT ステートメントを使用して、パラメーターの使用を記述してください。
|
- |ストレージの節約
- |
- |スカラーには、レジスター・サイズの整数 (|INTEGER(4) または INTEGER(8) データ型) を
|使用してください。
- |計算に適した、最小の浮動小数点精度を使用してください。
|非常に高い精度が要求されるときにのみ、|REAL(16) または
|COMPLEX(32) データ型を使用してください。
- |新しいコードを作成するときは、グローバル・ストレージの共通ブロックではなくモジュール変数を使用してください。
- |CONTAINS ステートメントは、スレッド・ローカル・ストレージを共用するときにのみ使用してください。
|
- |ポインター
- |
- |すべての言語別名割り当て規則に従ってください。
|-qalias=nostd の使用は避けるようにしてください。
- |ALLOCATABLE 配列と POINTER 変数は、動的割り振りを必要とする状況に限って使用するように
|してください。
|
- |配列
- |
- |ループ指標変数および境界には、可能であれば常にローカル変数を使用してください。
- |配列指標式は、可能な限りシンプルにしてください。
|指標付けが間接であることを必要とする場合は、PERMUTATION ディレクティブの使用を検討してください。
- |配列割り当てまたは WHERE ステートメントの使用時には、-qlist または -qreport で
|生成されたコードには特に注意してください。
|パフォーマンスが不適当なものである場合は、-qhot の使用を検討するか、または配列言語をループ形式で書き直してください。
|
|
- |関連情報:
-
|
|
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]