[Q]
FORTRAN コンパイラの信頼性に関して何か情報はありませんか。
[A]
以下のような報告があります。
僕自信は詳しいことが分かりませんので、
引用するだけにとどめておきます。
# より詳しい情報をお持ちの方の御連絡をお待ちしてます。m(_ _)m
----- ここから
いま、いろんなマシン、いろんなOS(基本的にはUNIX)で数値計算
(固有値問題というか、超越方程式を解いているというか)
をしていますが、
あるパラメータではマシンによって答えが違うケース(2種類の答えが出る)があり
ました。
当初は浮動小数点の内部表現の違いで発散でもしたのかと思っていましたが、
2種類の答えとも全くでたらめではなく
グラフにすると非常にまともそうな答えとなっています。
よく調べると
一方の横軸のデータをを半分にすると
もう一方のデータにぴったり一致します。
cpuとOS, compilerがどの組み合わせでグループ分けされるかというと
Cray CS6400
Ultra SPARC 65MHz + Solaris 2.5? + SUN FORTRAN77
(f77 -O2 )
HP9000
PA-RISC 80MHz + NeXTSTEP3.3J + (f77 script + f2c + gcc for NeXTSTEP)
(f77 -O5 )
PA-RISC 80MHz + HP-UX10.?? + (HP FORTRAN)
(f77 -O)
Pentium or Pentium II + NeXTSTEP3.3J + (Absoft FORTRAN77 ver.3.3.1 + gcc
for NeXTSTEP
(f77 -s -O )
Dec Alpha 533 + Linux + (fort77 script + f2c + gcc)
(f77 -O5 )
以上の組み合わせが正しい答えを出す組み合わせです。
この中に
Pentium or Pentium II + NeXTSTEP3.3J + Absoft FORTRAN77 ver.3.3.1
が入っていることに注意して下さい。
そして怪しい答えを出す組み合わせは
Pentium or Pentium II + Linux MLD II + (fort77 script + f2c + gcc)
(f77 -O5 )
でした。
しかし、怪しい答えがでるのは
ごく一部のパラメータの値で
他のパラメータでは最終桁まで同じ答えを返します。
したがって、
あるパラメータで答えが正しかったからといって
安心はできません。
また、逆に使い物にならないというわけでもありません。
この原因はよくわかりません、
もしかしたら、例のPentiumのバグのせいかもしれません。
------ ここまで
戻る