Ich habe mal ein paar Tests mit einer selbst geschriebenen Simulation gemacht. Bisher habe ich das Programm immer mit -O2 übersetzt. Ergänze ich die Option -march=i686, dann braucht es tatsächlich 9 % weniger Zeit. Ändere ich die Optimierung auf -O3, dann spare ich gegenüber dem Original 22 %. Nicht schlecht! Allerdings kommt ein etwas anderes Ergebnis heraus. Da das Programm einige Mathematikfunktionen verwendet, habe ich auch die libc mit -O3 und -march=i686 übersetzt. Das verringert die Zeit um 24 % gegenüber dem ersten Fall und lohnt sich offensichtlich kaum.
Torsten
On Fri, Apr 12, 2002 at 11:30:44AM +0200, Torsten Werner wrote:
Ich habe mal ein paar Tests mit einer selbst geschriebenen Simulation gemacht. Bisher habe ich das Programm immer mit -O2 übersetzt. Ergänze ich die Option -march=i686, dann braucht es tatsächlich 9 % weniger Zeit. Ändere ich die Optimierung auf -O3, dann spare ich gegenüber dem Original 22 %. Nicht schlecht! Allerdings kommt ein etwas anderes Ergebnis heraus.
Ich hoffe du arbeitest mit floats. Mit integers darf das nicht passieren.
Da das Programm einige Mathematikfunktionen verwendet, habe ich auch die libc mit -O3 und -march=i686 übersetzt. Das verringert die Zeit um 24 % gegenüber dem ersten Fall und lohnt sich offensichtlich kaum.
Danke für den Hinweis
thomas
Am Freitag, dem 12. April 2002 um 18:05:00, schrieb Thomas Guettler:
On Fri, Apr 12, 2002 at 11:30:44AM +0200, Torsten Werner wrote:
Ändere ich die Optimierung auf -O3, dann spare ich gegenüber dem Original 22 %. Nicht schlecht! Allerdings kommt ein etwas anderes Ergebnis heraus.
Ich hoffe du arbeitest mit floats.
Nein, mit doubles. ;-) Ich habe eine Vermutung für die Änderung: an mehreren Stellen findet sich etwa folgendes Codeschnipsel:
if (drand48() < someExpression) doSomething();
Wenn das Ergebnis von someExpression sich einmal minimal so verändert, das sich der Vergleich anders ausfällt, kommt die Ausführungsreihenfolge durcheinander. Da es sich um stochastische Entscheidungen handelt, ist das aber nicht schlimm. Das qualitative Ergebnis ist das gleiche.
Torsten
lug-dd@mailman.schlittermann.de