前回のCONFLEX iNSIDEは...
前回,「並列計算をシミュレートする」ことで計算精度低下を避けることができる場合があることをお知らせしましたが、具体的にどうすればよいのかというお問い合わせがありました。なので、ベクトルの内積計算の例をお示ししましょう。以下を試してみてください(FORTRAN90で書かれていますので,C調な方は適切に書き換えてくださいね)。
このプログラムの上は内積計算をナイーブに実行し、下は内積を(並列計算のように)部分和をとって計算します。これにより、並列計算する(部分和を取る)ことで、情報落ちと丸め誤差の取り込みを少なくできる事がわかります。もちろん、誤差の集積の仕方は計算機によって違ってきます。ああ数値計算は奥が深い・・・。
CONFLEX iNSIDEは計算化学を応援しています。
CONFLEX iNSIDEは計算化学を応援しています。
0 件のコメント:
コメントを投稿