PSE: Entwicklung einer Softwarebibliothek zur Verwendung von Transaktionalem Speicher

  • Typ: Praktikum
  • Semester: SS2014
  • Zeit:

    Dienstag, 22.04.2014   Auftaktveranstaltung   14:00 - 15:45 Uhr   Geb. 50.35, HSaF
    Montag, 28.04.2014   Erstes Gruppentreffen   11:30 - 13:00 Uhr   Geb. 50.34, Raum 348
    Montags, 05.05.2014 - 01.09.2014   14:00 - 15:30 Uhr   Geb. 50.34, Raum 348 

  • SWS: 2

Die Forschungsgruppe Automatische Parallelisierung und testbasierte Validierung AParT

Obwohl die Entwicklung paralleler Programme nicht mehr als junge Disziplin bezeichnet werden kann, bezeichnen Programmierer sie nach wie vor als notorisch schwierig: indeterministische Ausführungreihenfolgen, schwer überblickbare implizite Zusammenhänge und eingeschränkte Reproduzierbarkeit erschweren den fehlerfreien Entwurf und das Beheben von Fehlern enorm.

Im Rahmen der Forschungsgruppe AParT arbeiten wir in Kooperation mit Siemens Corporate Technology an Werkzeugen und Methoden, um Entwickler bei diesen Problemen zu unterstützen. Das Ziel dieser Lehrveranstaltung ist es, Ihnen als Studenten nicht nur den Umgang mit größeren Softwareprojekten näher zu bringen, sondern Sie auch zu einem relativ frühen Zeitpunkt ihres Studiums bereits in die aktuelle und industrienahe Forschung zu integrieren.

Aufgabenbeschreibung des Praktikums

Eine der erwähnten Methoden zur Programmierung von Mehrkernrechnern stellt Transaktionaler Speicher (engl. transactional memory, TM) dar: Aus der Theorie der Datenbanksysteme wird das weit verbreitete Konzept der “Transaktion” entlehnt, die eine vereinfachende Alternative zu expliziten Ausschlussmechanismen wie Sperren oder Barrieren bieten soll. Die Transaktion stellt eine Anweisungsabfolge dar, die vollständig atomisch und unbeeinflusst von anderen Transaktionen ausgeführt wird. Das Konzept TM wurde bereits software- und hardwareseitig implementiert.

Ihre Aufgaben sind der Entwurf und die Entwicklung einer komfortablen Softwarebibliothek zur Unterstützung von Transaktionalem Speicher. Dies umfasst folgende Ziele: 

  • Entwurf einer Bibliotheks-API (C++)
  • Entwicklung einiger Datentypen unter Verwendung der TM-Hardwareinstruktionen der neuesten Intel Haswell-Prozessoren.
  • Weiterentwicklung für Systeme ohne TM-Hardwareunterstützung
  • Erfassung und grafische Aufbereitung von Debugging- und Ausführungsdaten