Programmoptimierung
Programmoptimierung
Programmoptimierung
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
N-Körper-Problem (2)<br />
Algorithmus:<br />
• Zerlegung der Zeitachse in kleine Schritte.<br />
• Da die wechselseitigen Anziehungskräfte<br />
berechnet werden müssen, hat jeder<br />
Zeitschritt eine Laufzeit von O(N²)<br />
• Eine erste Implementierung hatte mit<br />
N=10.000 eine Laufzeit von ca. einem Jahr<br />
auf der VAX-11/780.<br />
• Dies wurde verbessert auf Faktor 400 !<br />
N-Körper-Problem:<br />
Optimierungen (2)<br />
4. Systemabhängige Feinoptimierung<br />
32-bit Gleitkomma anstatt 64-bit Gleitkomma (größere Genauigkeit<br />
durch Baumstruktur).<br />
durch Baumstruktur). => ~ Faktor 2<br />
5. Systemabhängige Feinoptimierung<br />
98% der Zeit in einer Routine; Assemblercodierung.<br />
=> ~ Faktor 2,5<br />
6. Hardware<br />
Gleitkommabeschleuniger => ~ Faktor 2<br />
---------------<br />
Insgesamt: Faktor 400<br />
N-Körper-Problem:<br />
Optimierungen<br />
1. Algorithmen und Datenstrukturen<br />
O(N²) => O(N log N) => ~ Faktor 12<br />
Körper werden als Blätter in einem Baum repräsentiert; innere<br />
Knoten sind Gruppen von Körpern. Bei der Berechnung der<br />
Krafteinwirkungen auf einen Körper können diese Gruppen<br />
verwendet werden.<br />
2. Algorithmen-Tuning<br />
=> ~ Faktor 2<br />
Verdoppelung des Zeitschrittes, Spezialbehandlung für Körper, die<br />
sich sehr nahe kommen (kann im Baum leicht entdeckt werden).<br />
3. Reorganistation der Datenstruktur<br />
Umkonfigurierung des Baumes nach jedem Schritt verringert die<br />
Anzahl der Berechnungen.<br />
Anzahl der Berechnungen. => ~<br />
Faktor 2<br />
Optimierungsebenen<br />
1. Problemstellung (Vereinfache!)<br />
2. Systemstruktur<br />
3. Algorithmen und Datenstrukturen<br />
4. Feinoptimierung<br />
5. Systemsoftware<br />
6. Hardware