Seite drucken

Masterarbeit

Interoperable Benchmark Framework for Transactional Memory

Der Wechsel zu Multi-Core-Architekturen im End-User-Bereich zwingt die Softwareindustrie zunehmend zur Nebenläufigen Programmierung, die immer noch als besondere Herausforderung auch für versierte Programmierer gilt. Die Erforschung von Hilfsmitteln, Methoden und Konzepten zur Vereinfachung dieser Aufgabe ist daher derzeit sehr verbreitet. Transactional Memory (TM) ist ein Rahmenwerk zur Anwendung von Transaktionen auf Datenstrukturen im flüchtigen Speicher. Transaktionen sind deadlock-frei, ergeben besser skalierbare Programme als traditionell verwendete Sperren (Locks) und sind daher vielversprechend für die Zukunft der nebenläufigen Programmierung. TM existiert in den unterschiedlichsten Ausprägungen; Als Hardware-Erweiterung, als Software-Bibliothek und mit den unterschiedlichsten Mechanismen zur Nebenläufigkeitskontrolle. Ohne einen direkten Vergleich zu anderen in einer Benchmark Suite ist es daher meist schwer Aussagen über eine neue Implementierung zu treffen. Trotz des Versuchs allgemeingültig zu sein, bilden Benchmarks immer nur einen kleinen Teil des möglichen Anwendungsverhaltens ab. Möchte man einen Vergleich unter einem anderen Anwendungsverhalten anstellen muss man (1) einen neuen Benchmark entwickeln und (2) die TM-Implementierungen darin einbinden. In jüngster Vergangenheit wurde von mehreren Forschergruppen der Versuch unternommen diese Lücke durch eine Art interoperable Evaluierungsumgebung zu schließen. Sie basiert auf einem C/C++ Compiler, der Schlüsselwörter zur Markierung von Kritischen Abschnitten versteht, die Teil einer Transaktion sein sollen. Außerdem bietet der Compiler eine Schnittstelle zu TM-spezifischen Compiler-Backends, welche die Kritischen Abschnitte mit geeigneten Aufrufen in die TM-Laufzeitbibliothek versehen. Ein Benchmark, der für diesen Compiler geschrieben ist kann damit automatisch auf die verschiedenen STM-Implementierungen angewendet werden. Nun gibt es bereits ein paar solcher Compiler und entsprechende Backends, die inzwischen auch für verschiedene STM-Implementierungen existieren. Nachteil ist, dass die verwendeten Schnittstellen und die Spracherweiterungen der Compiler nicht gleich sind, sodass Backends und Benchmarks nicht ausgetauscht werden können. Damit hat sich das Problem eigentlich nur auf eine andere Ebene verlagert. Das Ziel dieser Masterarbeit ist daher, Interoperability im Sinne einer interoperablen Benchmark-Umgebung für TM Compiler und Benchmarks zu definieren.

Startdatum 21. Dezember 2011
Enddatum 21. Juni 2012
Dokumente Flyer
Projekte P'MCA
Betreuer Dr. rer. nat. Holger Machens