Fallstudien

In diesem Abschnitt werden die vorgestellten Tools und Methoden an zwei Beispielprogrammen ausprobiert. Zwar sind beide Programme kürzer als die meisten Anwendungen, lösen aber doch jeweils ein bestimmtes Problem, incl. vollständiger Ein- und Ausgabe. Sie sind insofern typisch, als der größte Teil des Codes für die Optimierung völlig irrelevant ist. Bei beiden Programmen wurde von Anfang an auf die Einhaltung von Standards (FORTRAN-77 bzw. ANSI-C), auf konzeptionell saubere Programmierung und gründliche Tests Wert gelegt. Inwieweit dies realisiert werden konnte, bleibt dem Leser zur Beurteilung und zum Test überlassen. Die Sourcen aller Versionen sowie benötigte Make- und Datenfiles befinden sich unter $/$tuhh$/$info$/$tu_beispiele$/$convex_kurs in den Verzeichnissen poisson bzw. nkoerper.

Die Beschreibung der einzelnen Optimierungs-Schritte verläuft in folgender Weise: Für jede Programm-Version wird zunächst der Unterschied zur vorherigen beschrieben. Danach folgen Ergebnisse der Laufzeitmessung mit dem time-Kommando (Summe aus User- und System-Anteil), meistens für verschiedene Optimierungsstufen, sowie ggf. weitere wichtige Daten, etwa Profiler-Ergebnisse oder relevante Teile aus dem Optimierungsbericht. Schließlich werden diese Daten analysiert und Bemerkungen zum weiteren Vorgehen gemacht.

Die Darstellung orientiert sich am tatsächlichen Vorgehen bei der Optimierung, wobei auch einige der Fehlversuche eingeschlossen wurden. Natürlich sind viele andere Reihenfolgen oder auch Vorgehensweisen denkbar; auch wird kein Anspruch darauf erhoben, alle Möglichkeiten ausgeschöpft zu haben. Vielmehr soll ein Einblick in die Vorgehensweise bei der Programm-Optimierung vermittelt werden.



Unterabschnitte

previous    contents     next

Peter Junglas 18.10.1993