Laufzeitvorhersage und Cachesimulationen

Projektbeteiligte

Projektleiter

Prof. Dr. Thomas Rauber

Projektmitarbeiter

Dr. Carsten Scholtes

Dipl.-Inform. Marco Höbbel

Projektbeschreibung

Dieses Projekt befasst sich mit der Laufzeitabschätzung von Programmfragmenten. Das Ziel ist eine automatisierte Laufzeitabschätzung, wie sie vorteilhaft in parallelisierenden Compilern eingesetzt werden könnte, um alternative Programmfragmente zu bewerten. Insbesondere wird auch eine automatisierte Bewertung irregulärer Applikationen angestrebt. Ein Schwerpunkt bildet dabei die Untersuchung des Speicherverhaltens. Dazu wird eine wahrscheinlichkeitsbasierte Methode zur systematischen Abschätzung der Anzahl der zu erwartenden Fehlzugriffe entwickelt. Zur Verifikation der auf theoretischem Weg erhaltenen Abschätzungen werden Messungen herangezogen. Bestehende Messsysteme für Fehlzugriffe (WARTS, dinero, PCL) weisen Schwächen, insbesondere bei der Nachvollziehbarkeit der Herkunft der Fehlzugriffe, auf. Es fehlt vor allem die Assoziation zwischen symbolischen Programmvariablen und den über sie erfolgenden Speicherzugriffen. Deshalb werden Traces mit weiterführenden Protokollierungen, wie zum Beispiel der Propagation symbolischer Variablennamen, erzeugt, die dann die besagte Assoziation ermöglichen. Zum Einen werden dafür die vom Compiler in das Binary eingeflochtenen Debugginginformationen ausgewertet. Zum Anderen können, speziell für Untersuchungszwecke am eigenen Quellcode, die zusätzlich benötigten Informationen durch Substitution elementarer Datentypen wie DOUBLE, FLOAT, INT und Arrays durch protokollierende Datenstrukturen gewonnen werden. Als Alternative zur Durchführung zeitintensiver Trace-Läufe, soll außerdem eine Hardwarelösung entwickelt werden, die aufsetzend auf ein Multi-Core-DSP System sowohl den Trace-Lauf als auch die gesamte mehrstufige Simulation der Cachehierarchie in einem Bruchteil der Zeit ermöglicht. Solche Simulationsläufe ganzer Speicherhierarchien versprechen eine bessere Abschätzung der Programmlaufzeit und eignen sich überdies zur Ableitung möglicher Optimierungen des untersuchten Codes.

Universität Bayreuth -