2 verschiedene rechner - gleiches ergebnis?
-
pumuckl schrieb:
Weitere Möglichkeiten die mir spontan einfallen sind Überläufe von Integern mit verschiedener Genauigkeit, sowie Nebeneffekte (z.B. im Copy-Ctor in C++), die evtl. von einem Compiler wegotimiert werden, vom anderen nicht. Solche Fälle würde ich allerdings nicht mehr als fehlerfrei programmiert betrachten.
In der Frage hieß es aber "Auf zwei Rechnern das gleiche Programm", damit dürfte praktisch eher ein und dasselbe Kompilat gemeint sein

-
hustbaer schrieb:
Bei float/double muss es nicht halten, denn da gibts einige bekannte Fehler in diversen CPUs. Wenn die CPU IEEE konform ist müsste AFAIK auch immer dasselbe rauskommen, aber real wird es eben nicht immer so sein.
solche fehler werden für gewöhnlich im bios oder im betriebssystem gefixt. im linux kernel findet man auf jedenfall hunderte fixes für cpu errata.
-
hustbaer schrieb:
Bei integer Berechnungen sollte es halten, vorausgesetzt das Programm hat keinen Fehler.
Bei float/double muss es nicht halten, denn da gibts einige bekannte Fehler in diversen CPUs. Wenn die CPU IEEE konform ist müsste AFAIK auch immer dasselbe rauskommen, aber real wird es eben nicht immer so sein.
Exakt. f'`8k
Gruß, TGGC (Der neue Game Star)
-
TGGC schrieb:
Exakt. f'`8k
unglaublich erhellend, dankeschön. hast du nichts besseres zu tun? kannst du deine profilneurose nicht irgendwie anders ausleben?
-
Doch, kann ich. f'`8k
Gruß, TGGC (Der neue Game Star)[/quote]
-
Grohool schrieb:
Kann ich davon ausgehen, dass wenn auf 2 verschiedenen PCs auf denen das gleiche Programm die gleiche Rechnung durchführt immer exakt das gleiche Ergebnis rauskommt?
Nein.
Einfaches Beispiel:
Programm gibt freien Festplattenplatz aus.
-> Fast immer ein anderes Ergebnis! q.e.d.
-
fast_alles_wissender schrieb:
Nein.
Einfaches Beispiel:
Programm gibt freien Festplattenplatz aus.
-> Fast immer ein anderes Ergebnis! q.e.d.Das ist es aber nicht mehr die gleiche Rechnung.
-
Der klassische Anfaengerfehler ist doch sowas:
float x = a / b; if (x == 0.5f) { } else if (x == 1.0f) { }
-
Grohool schrieb:
Kann ich davon ausgehen, dass wenn auf 2 verschiedenen PCs auf denen das gleiche Programm die gleiche Rechnung durchführt immer exakt das gleiche Ergebnis rauskommt?
Man kann das zwar erwarten, aber garantiert ist das noch lange nicht.
Alte Pentium CPUs rechnen z.B. falsch.
Und eine Turbo Pascal Bibliothek läuft auf modernen Rechnern nicht mehr.
Da kommt dann nämlich Runtime Error 200 oder so etwass ähnliches.Und Maschinencode, der die Eigenschaften einer 64 Bit CPU nicht berücksichtigt rechnet unter Umständen auch falsch.
-
TGGC schrieb:
Doch, kann ich. f'`8k
Gruß, TGGC (Der neue Game Star)
[/quote]
Mach lieber mal die Bugs aus Anno 14xx raus.
Ihr werft schon wieder so nen unfertigen Mist auf den Markt.
Du hast also mehr als genug zu tun. An die Arbeit!
-
Betatester schrieb:
TGGC schrieb:
Doch, kann ich. f'`8k
Gruß, TGGC (Der neue Game Star)
Mach lieber mal die Bugs aus Anno 14xx raus.
Ihr werft schon wieder so nen unfertigen Mist auf den Markt.
Du hast also mehr als genug zu tun. An die Arbeit![/quote]
Hinweis an TGGC:
Obige Message ist mit einem lauten
"Jawohl Herr!"oder
"Yes Sir!"
zu bestätigen.
-
Betatester schrieb:
Mach lieber mal die Bugs aus Anno 14xx raus.
Ihr werft schon wieder so nen unfertigen Mist auf den Markt.
Du hast also mehr als genug zu tun. An die Arbeit!
Du kannst gerne in der Fachpresse nachlesen, Anno 1701 war quasi bugfrei. Oder du liest mal die Patchnotes, ein Grossteil waren da nur Verbesserungen und Funktionserweiterungen. Wuesste aber nicht, was das ueberhaupt hiermit zu tun hat? f'`8k
Gruß, TGGC (Der neue Game Star)