Vorlesung Paralleles Rechnen

Die Vernetzung von Arbeitsplatzrechnern hat zu einer preisgünstigen Plattform für parallele Anwendungen geführt – den sogenannten Clustern. Mit der Entwicklung von leistungsfähigen Kommunikationstechnologien (z. B. Gigabit Ethernet, Myrinet, Quadrics, InfiniBand) sind Cluster auch für den Bereich High Performance Computing und E-Commerce interessant geworden und stehen dort aufgrund ihres Preis/Leistungsverhältnis in direkter Konkurrenz zu traditionellen Parallelrechnern. Die Vorlesung stellt die Konzepte der Parallelverarbeitung vor und legt ihren Schwerpunkt auf den Bereich Cluster Computing. Es werden Systemansätze zur Unterstützung paralleler Anwendungen in Clustern besprochen, z.B. Ressourcenmanagment, Lastverteilung und Fehlertoleranz.


U.a. werden folgende Fragestellungen behandelt:

  • Wer oder was ist ein Beowulf?
  • Wieso ist Gamma um mehr als ein Epsilon besser als IP?
  • Welche Parallelisierungskonzepte gibt es?
  • Gibt es bessere Schedulingverfahren als First Come First Served für parallele Anwendungen?
  • Wie vermeide ich den Ping-Pong-Effekt bei der Lastbalancierung?
  • Wie erreicht man superlinearen Speedup?

Veranstalter

Prof. Dr. Bettina Schnor, Institut für Informatik


Ort/Termine

Am Donnerstag, von 14:00 Uhr bis 16:00 Uhr, wird die Vorlesung im Raum 03.04.1.02 gehalten. Am Donnerstag, von 16:00 Uhr bis 18:00 Uhr, wird die Übung im Raum 03.04.1.03 stattfinden.

Aktuelles

29.03.2011, 09:30 Uhr - 11:30 Uhr

Nachklausur im Raum 03.06.H02

17.03.2011, 12:00 Uhr - 13:00 Uhr

Klausureinsicht im Raum 03.04.2.19

24.02.2011, 12:30 Uhr - 14:30 Uhr

Klausur im Raum 03.01.H09

13.01.2011, 14:00 Uhr

Gastvortrag von David Böhme: Performance Analysis of Parallel Programs

Materialien


Themenliste

  1. Einführung: Motivation und Terminologie
  2. Hardware:
    • Parallelrechnerarchitekturen
    • Clustertechnologie
  3. Konzepte paralleler Anwendungen
    • Ebenen der Parallelität
    • Programmiermodelle für parallele Anwendungen
    • Graphenbasierte Modellierung von parallelen Programmen
  4. Das nachrichtenbasierte Programmiermodell
    • Beispiel: Message Passing System (MPI)
  5. Das datenparallele Programmiermodell
    • Beispiel: Fortran 90, High Performance Fortran
  6. Das Programmiermodell des gemeinsamen Speichers
    • Beispiel: OpenMP, UPC
  7. Leistungsanalyse
    • Leistungsmaße wie z.B. Speedup, Effizienz
    • Benchmarks
    • Top 500
  8. Scheduling und Mapping paralleler Anwendungen
    • Space-Sharing-Strategien
    • Time-Sharing-Strategien/Gang-Scheduling
  9. Metacomputing/Grid Computing
    • Beispielsysteme: Globus, Legion, Nimrod
  10. Fehlertoleranz
    • Cluster-Monitoring
    • Checkpointing und Checkpointing-Protokolle
    • Migrationssysteme: Condor, PBeam, CoCheck
  11. Parallele Ein-/Ausgabe

Anforderungen

Es müssen studienbegleitend mindestens 50% der Hausaufgabenpunkte erreicht werden, um zur abschließenden Prüfung zugelassen zu werden. Die abschließende Prüfung muss mit mindestens mit 4.0 bestanden werden.


Literatur

  • Michael J. Quinn: Parallel Programming, Mcgraw-Hill Higher Education, 2004.
  • Peter Sanders, Thomas Worsch: Parallele Programmierung mit MPI, Logos Verlag, 1997.
  • Ian Foster: Designing and Building Parallel Programs, Addison Wesley, 1995.
  • Hwang/Xu: Scalable Parallel Computing: Technology, Architecture, Programming, Boston, WCB/McGraw-Hill, 1998.