linux-l: OT: Ungenauigkeiten

Siegfried Pohl spohl at bert.in-berlin.de
So Aug 6 13:39:13 CEST 2000


*Jens-Uwe Morawski <morawski at gmx.net> wrote:
> 
> Hallo, (hauptsächlich an die Informatiker  hier)
> 
> in meiner Diplomarbeit programmiere ich unter Fortran.
> An der Uni arbeite ich an einer Sun Ultra mit Solaris 7
> und entsprechenden Compilern.
> Auf meinem privaten Rechner (PII) läuft Linux gcc 2.95.2
> und GNU Fortran 0.5.25.
> Das Programm an dem ich arbeite ist ein Simulationsprogramm
> welches iterativ (Newton-Raphson-Verfahren) ein System
> partieller Differentialgleichungen löst. Das Programm ist
> komplett in Standartfortran (F77) geschrieben, es werden
> also auch unter Solaris keine speziellen Math-Libraries
> verwendet.
> 
> Nun muß ich feststellen, daß die Ergebnisse zwischen den beiden
> Architekturen stark schwanken, bzw. unter Linux manchmal garnicht
> zur Konvergenz gebracht werden können. Ich suche nun einen Grund
> für das Verhalten und vielleicht Tips, wie ich die Probleme
> umgehen kann. Ich weiß leider zu wenig von den verschiedenen
> Architekturen, außer daß Sun 64 bittig arbeitet und Linux 32 Bit.
> Aber alle Variablen auf DOUBLE zu setzen brachte auch nix?


Mir kommen spontan drei Ideen:

- Little- und Big Endian
- installiere doch in der Uni mal den GNU Compiler, da verschiedene
  Compiler verschiedene Algorithmen implementieren, um dasselbe Resultat
  zu erreichen
- Setze doch mal die Gleitkommagenauigkeit _unter_ den hoechstmoeglichen
  Wert, also verwende mal floats auf beiden Maschinen, das muesste doch
  eigentlich dazu fuehren, dass die Rundungsfehler auf beiden Maschinen
  dieselben sind (das Problem ist aber trotzdem, dass _intern_ mit
  long double gerechnet wird...)

Mit freundlichen Gruessen, Siggi

-- 
| Siegfried Pohl <spohl at bert.IN-Berlin.DE> | HTTP://ME.IN-Berlin.DE/~bert
| Tel: +49-30-33506700  Fax: +49-30-33506701
| -> I do realize VMS had some cool features [...] But I never 
| -> used file versions myself, preferring (in true Unix fashion) 
| -> to shoot myself in the foot every now and then. (C) P. Samuelson



Mehr Informationen über die Mailingliste linux-l