Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Programmergebnise verschieden auf zwei Rechnern (https://www.delphipraxis.net/188505-programmergebnise-verschieden-auf-zwei-rechnern.html)

Physikerin 10. Mär 2016 10:48

Programmergebnise verschieden auf zwei Rechnern
 
Hallo zusammen,

ich stehe vor einem Problem und bekomme es so nicht gelöst, ein ähnliches hier Thema hilft mir nicht weiter.
Das Programm liefert auf zwei Rechnern unterschiedliche Ergebnisse (unabhängig davon, ob es aus der Exe gestartet wurde oder aus dem Compiler.
Programmiert wurde mit CodeGear™ Delphi® 2007 für Win32®:

Mein Rechner: 64Bit, i5
Der andere Rechner 64Bit i7

Mein Programm macht mehrere riesige Rechnungen und zeichnet dann Wertepaare in ein TChart:
- zerlegt habe ich schon
- alle Variablen wurden initialisiert
- die Methode wurde in Fortran entwickelt und dann in Delphi übertragen.

Alle Funktionen geben bei mir extended zurück. Das sollte ja innerhalb von 64Bit-Rechnern kein Problem darstellen oder?

Bei meinem Rechner jedenfalls ist die Funktion, die in das TChart gezeichnet wird ohne Sprünge etc,
bei dem anderen Rechner tritt ein ziemlich heftiges Gezackel auf. Dh die Werte der Funktion werden falsch berechnet.

Woran kann das liegen?
Ich habe auch bei allen ganzen Zahlen zB 2.0 anstatt von 2 genommen!

Vielen Dank für Eure Hilfe!

Dawn87 10. Mär 2016 10:51

AW: Programmergebnise verschieden auf zwei Rechnern
 
gelöscht

EWeiss 10. Mär 2016 10:53

AW: Programmergebnise verschieden auf zwei Rechnern
 
Zitat:

Zitat von Dawn87 (Beitrag 1332547)
Variable nicht initialisiert

Zitat:

- alle Variablen wurden initialisiert
gruss

Neutral General 10. Mär 2016 11:00

AW: Programmergebnise verschieden auf zwei Rechnern
 
Und wenn du mal testweise auf Double umstellst und schaust ob die Ergebnisse dann gleich sind?
Erstellst du aus auf dem 64-Bit Rechner einer 64-Bit exe, oder eine 32 Bit exe?
Bei 64-Bit Delphi gibt es Extended nämlich nicht mehr, bzw. Extended = Double.

bra 10. Mär 2016 11:03

AW: Programmergebnise verschieden auf zwei Rechnern
 
Wie groß werden denn die Zahlen? Tritt hier vielleicht ein Überlauf auf?

http://docwiki.embarcadero.com/Libra...ystem.Extended
Hier steht, dass Extended sehr vom System abhängt. Vielleicht mal mit Double versuchen, sofern der Zahlenbereich ausreicht?

Und hier:
http://docwiki.embarcadero.com/RADSt...e_Applications


Falls es das nicht ist, gab es nicht bei einigen neueren CPUs (Skylake) Probleme bei großen Berechnungen?

Physikerin 10. Mär 2016 11:08

AW: Programmergebnise verschieden auf zwei Rechnern
 
Huhu,

vielen Dank schonmal...

@NeutralGeneral: Wie würde man denn herausfinden welche .exe man erstellt? Dann erstelle ich wahrscheinlich eine 32Bit-Exe, weil wenn ich auf double umstelle, bekomme ich auch die Sprünge in der Funktion, daher hatte ich extended genommen.
Dann wird es wahrscheinlich an dem Überlauf liegen oO

Im Result kommen nachher Werte bis etwa 10000 heraus.

Kann man um den Überlauf zu umgehen einfach die betroffenen Werte reduzieren (zB geteilt durch 10000) und nachher wieder draufrechnen?

p80286 10. Mär 2016 11:10

AW: Programmergebnise verschieden auf zwei Rechnern
 
Zitat:

Zitat von Physikerin (Beitrag 1332546)
Das Programm liefert auf zwei Rechnern unterschiedliche Ergebnisse (unabhängig davon, ob es aus der Exe gestartet wurde oder aus dem Compiler.

Das klingt wie einer von den Standardfehlern "Initialisierung durch Zufall". Ggf. solltest Du einmal penibelst prüfen ob die Einstellungen von Delphi auf beiden Rechnern wirklich gleich sind.

Gruß
K-H

bra 10. Mär 2016 11:19

AW: Programmergebnise verschieden auf zwei Rechnern
 
Du kannst auch in den Projektoptionen unter Compiler mal die Range-Checks und Overflow-Checks aktivieren, dann sollte ja zur Laufzeit ein Fehler kommen, sofern es daran liegt.

Physikerin 10. Mär 2016 11:21

AW: Programmergebnise verschieden auf zwei Rechnern
 
@p80286 :

Auf dem i7 ist garkein Delphi installiert ^^

gammatester 10. Mär 2016 11:36

AW: Programmergebnise verschieden auf zwei Rechnern
 
Delphi 2007 (also Delphi Version 12.0) erstellt keine 64-Bit EXEs, also kann das auch nicht das Problem sein.

Ein-und-dasselbe Programm kann allerdings auf verschiedene Rechnern unterschiedliche Ergebnisse liefern, dies habe ich schon oft für verschiedene Processoren gesehen (allerdings eigentlich immer Intel vs AMD, nicht für zwei Intel), hier wird wahrscheinlich der interne Code für Standardfunktionen wie sin, exp usw. leicht unterschiedlich sein. Intel garantiert mW nicht, daß diese Funktionen korrekt gerundet sind.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz