Universität Karlsruhe
Dr.-Ing. Götz Lindenmaier
Adresse
Email goetz at ipd dot info dot uni-karlsruhe dot de
Web http://www.info.uni-karlsruhe.de/~goetz/

Sprechzeiten: keine

Arbeitsgebiete

Ich interessiere mich für Übersetzer und Programmiersprachen. In meiner Promotionsarbeit adressiere ich Cacheprobleme von Zeigeranwendungen.

Algorithmen in Zeigeranwendungen sind weitaus schwerer analytisch zu erfassen als Algorithmen in numerischen Anwendungen. Diese sind häufig von geschachtelten Zählschleifen dominiert. Iterationen in Zeigeranwendungen sind oftmals durch Rekursionen oder mit Iteratoren implementiert und somit nicht direkt an einem Sprachkonstrukt zu erkennen. Zum Beispiel sind die Voraussetzungen für das korrekte Vertauschen geschachtelter Schleifen zur Cacheoptimierung von Reihungen mit statischen Analysen leichter zu erkennen, als Voraussetzungen um eine Tiefensuche durch eine Breitensuche zu ersetzen.

Bei der Anordnung von Datenstrukturen verhält es sich umgekehrt. Numerische Algorithmen arbeiten in der Regel auf Reihungen, die große Speicherbereiche belegen. Die Anordnung der Daten innerhalb der Reihungen lässt sich nur in beschränktem Maße verändern. Zeigeranwendungen operieren hingegen auf vielen, relativ kleinen Verbunden. Deren relative Anordnung ist nicht vorgegeben. Wird ein Speicherbereiniger verwendet, kann sich die Anordnung während der Lebenszeit eines Verbunds ändern.

Aufgrund der schlechten analytischen Fassbarkeit von Zeigeranwendungen sind viele bekannte Optimierungen für Datenstrukturen nur teilweise automatisiert. Eine Optimierung durch den Programmierer oder separate Werkzeuge zur Cacheoptimierung automatisieren die Cacheoptimierung in unseren Augen nicht ausreichend. Optimierungen, die speziellen Einsatz des Programmierers benötigen, müssen durch extreme Cacheprobleme begründet sein. Vollständig automatisierte Optimierungen dagegen benötigen keine Interaktion des Programmierers. Sie sind leichter anzuwenden und können damit häufiger praktische Cacheprobleme vermeiden.

Daher untersuche ich Analysen die Cacheprobleme statisch zur Übersetzungszeit vorherzusagen. Weiter betrachte ich, wie bekannte Optimierungsverfahren auf Programme, deren Datenstrukturen mit Vererbung implementiert sind, angewandt werden können, oder wie diese durch neue Verfahren ergänzt werden können.

In meiner Diplomarbeit habe ich eine Lokalitätsanalyse auf Basis von Laufzeitprofilierung entwickelt, und verwendete die gewonnenen Daten zu ladelatenzzeit sensitivem Befehlsanordnen.

Seit Sommer 2005 arbeite ich bei der SAP bei JIT Compiler Technologies. Unsere Gruppe optimiert und portiert die Java Virtual Machinen der SAP.

Projekte

Abgeschlossen
ACODA
AJACS
CATE
CRS
Firm
Jack
JOSES
Sather-K

Beteiligung an Software

Jack -- Java Compiler Karlsruhe
Ein Übersetzer, basierend auf Firm, der Java in Binärcode übersetzt.
libFirm
Eine C Implementierung der Zwischensprache Firm.

Betreute Studien- und Diplomarbeiten

Diplomarbeit
Erweiterung eines Metaprogrammiersystems um einen iterativ aktualisierbaren Zwischensprachaufbau (abgeschlossen)
OptiCache -- Schleifenübergreifende Cacheoptimierung (abgeschlossen)
 
Studienarbeit
Ausnahmebehandlung in einem optimierenden Javaübersetzer (abgeschlossen)
ELI Ein Integriertes Werkzeug zur Entwicklung von Übersetzern und Einsatz im Übersetzerbaupraktikum (abgeschlossen)
Entwurf und Implementierung der CORBA Schnittstelle Snow (abgeschlossen)
Explizite Interprozedurale Abhängigkeitsgraphen (abgeschlossen)
Haldenanalyse unter Berücksichtigung von Ausnahmen und Ausnahmebehandlung (abgeschlossen)

Bearbeitete Studien- und Diplomarbeiten

Diplomarbeit
Analyse von Profilinformation für cachesensitive Befehlsanordnung (abgeschlossen)
 
Studienarbeit
Erfassung eines computerinternen Modells von Altprodukten und Ermittlung der wirtsch. Fraktionierung (abgeschlossen)

Veröffentlichungen

2005
Lindenmaier, Beck, Boesler, Geiß, Firm, an Intermediate Language for Compiler Research
Lindenmaier, Structure Splitting and Inheritance
 
2002
Lindenmaier, libFIRM -- A Library for Compiler Optimization Research Implementing FIRM
 
2001
Lindenmaier, Geiß, Global Configuration of Cache Optimizations
 
2000
Lindenmaier, Load Scheduling with Profile Information
 
1999
Lindenmaier, Analyse von Profilinformationen für cachesensitives Befehlsanordnen
Trapp, Lindenmaier, Boesler, Documentation of the Intermediate Representation FIRM
 
1997
Lindenmaier, Erfassung eines computerinternen Modells von Altprodukten und Ermittlung der wirtschaftlichsten Fraktionierungstiefe
Login
Links