1

Fortran で書かれた CFD コードを使用しています。その一部は OpenMP で並列化されています。Windows マシンと Linux マシンで OpenMP をオフにして同じコンパイラ オプション (-O3) を使用しても、異なる結果が得られます。最適化 (-O0) をオフにして (-fp-model ソース) をコンパイラ オプションに追加しようとした後、2 つの反復ステップの後に NaN しか表示されません。結果が異なる他の理由はありますか?それらが同じであることをどのように保証できますか)

ありがとう、セバスチャン

PS: どちらのマシンも同じ Intel Fortran Compiler 2013 を使用しており、64 ビットで、Intel Xeon CPU を搭載しています。

4

1 に答える 1

1

アルゴリズムと解像度によっては、バグのない CFD コードでも、並列処理を有効にすることで大幅に異なる結果が得られる可能性があります。

HPMark が示唆するように、プラットフォームを変更すると、わずかな違いが予想されます。大きな違いは、コンパイラまたはシステム固有のコードがあり、移植作業が必要であることを示しています。最適化レベルを下げたときに重大な問題が発生するのは、メモリのバグである可能性があります。

このような混乱した状況に陥ったときは、一度に 1 つのことだけを変更するように注意してください。

于 2013-03-23T04:11:22.473 に答える