Monday, September 27, 2010

【Fortran】チューニング

並列計算をする前に考えるべきことは、チューニング。
簡単に思いついたものを箇条書きでメモしておく。

  • if文はできる限り使わない。
    • (例)配列を上手く使う。

  • 割り算や累乗をできるだけ避ける。
    • (例)ループ内で無駄な処理が重複しないよう、できる限りループの外へ出す。

  • メモリへの連続アクセスをできるように配列の添字の使用を行う。
    • ただし、キャッシュ・ヒット率とのバランスを考慮する。

  • キャッシュ・ヒット率を高める。
    • (例)ループ・アンローリング。
    • ただし、メモリ連続アクセスとのバランスを考慮する。

  • できる限り組み込み関数を使わない。

  • I/O処理を少なくするため、インライン展開を行う。
    • インライン展開しない場合、コンパイラの最適化が上手く行わず、処理速度が低下することがある。
    • もちろん、コードの見やすさとのバランスを考慮すべき。

No comments:

Post a Comment