Zur Webseite der Informatik

Abteilung Programmiersprachen und Übersetzerbau

Seminar Programmierung und Analyse von parallelen Programmen

Beschreibung

Mit der breiten Verfügbarkeit von multi-core Prozessoren drängt sich die Frage auf, wie Parallelität sinnvoll in Programmen genutzt werden kann. In dem Seminar erarbeiten wir einen Überblick über Techniken zur Programmierung sowie zur statischen Analyse von nebenläufigen Programmen anhand einiger ausgewählter Techniken.

Zu Beginn des Semesters beginnen wir mit der Frage, wie Nebenläufigkeit in Programmiersprachen genutzt werden kann. Im besonderen wollen wir herausarbeiten, welche zusätzlichen Quellen für Implementierungsfehler durch Nebenläufigkeit, im Vergleich zur sequentiellen Programmierung, entstehen. Nach dieser Einführung kommen wir zu Programmanalyse-Techniken und -Datenstrukturen mit deren Hilfe solche Fehler in nebenläufigen Programmen automatisiert oder semi-automatisiert erkannt werden können.

Je nach Anzahl und Interessen der Teilnehmer werden Themen aus den folgenden Gebieten angeboten:

  • Parallele Programmierung: Eine Auswahl aus z.B. POSIX-threads (in C), Java, Ada, Google Go, Erlang, OpenMP, MPI
  • Fehlerquellen: Race Conditions, Deadlocks, Livelocks
  • Parallele Entwurfsmuster
  • Hardwarenahe Techniken: Atomare Instruktionen, Vektorinstruktionen
  • Automatisierte Parallelisierung
  • Grundlagen statische Programmanalyse: Monotone Frameworks, Kontrollfluss, Datenfluss, interprozedurale Analyse
  • Statische Analyse zur Erkennung von Data Races: Lockset-basierte Verfahren, Happens-before, May-happen-in-parallel
  • Points-to Analyse: May-points-to, Must-points-to, Problematiken
  • Datenflussrepräsentation für nebenläufige Programme: Threaded interprocedural static single assignment form
  • Deadlock Erkennung

Organisation

Am 18. Februar 2010 findet um 13:00 Uhr eine Vorbesprechung im Raum 1.212 statt, zu der alle Teilnehmer erscheinen müssen. Darin vergeben wir die Themen!
Hinweis:   "Wie halte ich einen guten Seminarvortrag?"
Latex-Vorlage: latex_vorlage

Bei Fragen wenden Sie sich bitte an einen der Betreuer:
Daniel Gerlach, Mikhail Prokharau, Steffen Keul, Aoun Raza

Vorträge

Parallele Programmierung (Java, Ada, Google Go)
  • Termin: 27.04.2010
Parallel Computing mit MPI und OpenMP

 

  • Termin: 11.05.2010
Atomare Anweisungen
  • Termin: 18.05.2010
Concurrent Design Patterns
  • Termin: 01.06.2010
Grundlagen statische Programmanalyse
  • Termin: 08.06.2010
Data Race Detection
  • Termin: 15.06.2010
Points-to Analyse
  • Termin: 22.06.2010
Escape Analyses
  • Termin: 20.07.2010