3台のパソコンを使用して同じ計算問題を解いているが、1台だけが微妙に結果が異なる。Eタイプ数値の小数点6桁目ぐらい以下で主要な結果の値が異なるのである。
同じ実行モジュール、同じ入力データを用いていることは何度も確認したが、原因が分からなかった。CYGWINで同じ計算をしていた時には、この現象はなかったが、WINDOWS10に変更し、WINDOWS用の実行モジュールを採用してからこの微妙な差が出てきたような気がする。しかし、実行モジュールをパソコン間でコピーしてもこの差は無くならない。ネットを検索したところ、以下の問題が原因であることが推定できた。
それはパソコンのCPUが3台の内、1台がINTELで、2台がAMDであること、また、実行モジュールが64ビットマシン用であることである。
[URL]
64ビットの場合の数値のバイト処理がINTELとAMDでは異なるらしい。
その結果、Eタイプの下の桁に微妙な差が生じるようである。CYGWINの時は実行モジュールのほうが32ビット用だったのでその差が生じなかったということである。
手持ちでもう一台、遅くて古いINTELの64ビットマシンがあるので、そのうち、どういう結果になるのか試してみたい。
当面は、系統的な計算はAMDマシンだけで実行する予定でいる。
セコメントをする