パソコンにより計算結果が異なる原因 ― 2022年08月17日 05:15
3台のパソコンを使用して同じ計算問題を解いているが、1台だけが微妙に結果が異なる。Eタイプ数値の小数点6桁目ぐらい以下で主要な結果の値が異なるのである。
同じ実行モジュール、同じ入力データを用いていることは何度も確認したが、原因が分からなかった。CYGWINで同じ計算をしていた時には、この現象はなかったが、WINDOWS10に変更し、WINDOWS用の実行モジュールを採用してからこの微妙な差が出てきたような気がする。しかし、実行モジュールをパソコン間でコピーしてもこの差は無くならない。ネットを検索したところ、以下の問題が原因であることが推定できた。
それはパソコンのCPUが3台の内、1台がINTELで、2台がAMDであること、また、実行モジュールが64ビットマシン用であることである。
https://qiita.com/Tokeiya/items/ada7bc3bd02d911ce74c
64ビットの場合の数値のバイト処理がINTELとAMDでは異なるらしい。
その結果、Eタイプの下の桁に微妙な差が生じるようである。CYGWINの時は実行モジュールのほうが32ビット用だったのでその差が生じなかったということである。
手持ちでもう一台、遅くて古いINTELの64ビットマシンがあるので、そのうち、どういう結果になるのか試してみたい。
当面は、系統的な計算はAMDマシンだけで実行する予定でいる。
同じ実行モジュール、同じ入力データを用いていることは何度も確認したが、原因が分からなかった。CYGWINで同じ計算をしていた時には、この現象はなかったが、WINDOWS10に変更し、WINDOWS用の実行モジュールを採用してからこの微妙な差が出てきたような気がする。しかし、実行モジュールをパソコン間でコピーしてもこの差は無くならない。ネットを検索したところ、以下の問題が原因であることが推定できた。
それはパソコンのCPUが3台の内、1台がINTELで、2台がAMDであること、また、実行モジュールが64ビットマシン用であることである。
https://qiita.com/Tokeiya/items/ada7bc3bd02d911ce74c
64ビットの場合の数値のバイト処理がINTELとAMDでは異なるらしい。
その結果、Eタイプの下の桁に微妙な差が生じるようである。CYGWINの時は実行モジュールのほうが32ビット用だったのでその差が生じなかったということである。
手持ちでもう一台、遅くて古いINTELの64ビットマシンがあるので、そのうち、どういう結果になるのか試してみたい。
当面は、系統的な計算はAMDマシンだけで実行する予定でいる。
コメント
トラックバック
このエントリのトラックバックURL: http://yokoyamashindo.asablo.jp/blog/2022/08/17/9518308/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。