Vorlesung Paralleles Rechnen

Waren Anfang des Jahrtausends parallele Systeme noch dem High-Performance-Computing (HPC) vorbehalten, so haben sie mit dem Hardware-Trend hin zu Multicoresytemen mittlerweile auch im Desktop-PC und Serverbereich Einzug gehalten. Um diese Hardwareplattformen optimal auszunutzen sind neue Programmierparadigmen, -sprachen und -werkzeuge notwendig.
Im HPC-Bereich hat die Vernetzung von Arbeitsplatzrechnern mittels leistungsfähiger Kommunikationstechnologien (z. B. Gigabit Ethernet, InfiniBand) zu einer preisgünstigen Plattform für parallele Anwendungen geführt – den sogenannten Clustern. Dabei handelt es sich heutzutage meist um hybride Systeme, d.h. um vernetzte Multicoresysteme. Ein weiterer aktueller Trend ist die Auslagerung rechenintensiver Anwendungen auf die Grafikkarte.
Die Vorlesung stellt die Konzepte der Parallelverarbeitung vor und legt ihren Schwerpunkt auf den Bereich Cluster Computing. Es werden sowohl Programmierparadigmen für Cluster Computing als auch Systemansätze zur Unterstützung paralleler Anwendungen in Clustern wie z.B. das Ressourcenmanagment besprochen.


Veranstalter

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


Modulnummern

Bachelor Informatik: 3010, 3020, 3030, 3040, 3050, 3060, 5010, 5020, 5030, 5040, 5050, 5060
Master Informatik: 3011, 3021, 3031, 5011, 5021, 5031
Master Computational Science: 7010 (Kernmodul Architekturen und Middleware für das wissenschaftliche Rechnen)


Ort/Termine

Am Dienstag, von 10:00 Uhr bis 12:00 Uhr, wird die Vorlesung im Raum 03.04.1.02 gehalten. Am Mittwoch, von 10:00 Uhr bis 12:00 Uhr, wird die Übung im Raum 03.04.1.03 stattfinden.

Aktuelles

18.03.2014, 10:00 Uhr - 12:00 Uhr

Nachklausur im Raum 03.04.1.02

11.03.2014, 09:00 Uhr - 11:00 Uhr

Klausureinsicht im Raum 03.04.2.19

24.02.2014

Klausurergebnisse

10.02.2014, 10:00 Uhr - 12:00 Uhr

Klausur im Raum 03.06.H10

Materialien


  • Übungsblatt 6
    Abgabe bis zum 31.01.2014, 10:00 Uhr.
  • Übungsblatt 5
    Abgabe bis zum 10.01.2014, 10:00 Uhr.
    Die Programmvorlagen zur Monte-Carlo-Simulation finden Sie im Archiv blatt5_monte_carlo.tar.gz
  • Übungsblatt 4
    Abgabe bis zum 13.12.2013, 10:00 Uhr.
    Hinweis: Die korrekte Modulbezeichnung für OpenMPI lautet openmpi/gcc/64/1.4.3.
  • Übungsblatt 3
    Abgabe bis zum 29.11.2013, 10:00 Uhr.
    Hinweis zu Aufgabe 3.2: Der Pseudozufallszahlengenerator enthielt einen Zahlendreher in der Definition von RNG_MOD, sodass die generierten Werte nicht dem zu erwarteten Zufall entsprachen. Der Fehler wurde im bereitgestellten Code korrigiert und zudem die Funktion pr_random_f etwas vereinfacht.
  • Übungsblatt 2
    Abgabe bis zum 15.11.2013, 10:00 Uhr.
    Hinweis zu Aufgabe 2.3: Sie können davon ausgehen, dass ein Router pro Kommunikationsschritt gleichzeitig eine Nachricht an alle Nachbarn verschicken kann. Dies gilt nicht für Aufgabe 2.4.
  • Übungsblatt 1
    Abgabe bis zum 01.11.2013, 10:00 Uhr.
    Das Archiv für die Matrixmultiplikation ist im Bereich "zusätzliches Material" verfügbar. Hinweis zur Aufgabe 1.1: In Ihrem PBS-Script (Job) können (und sollen) Sie über ssh auf alle Knoten, die Ihnen vom RMS zugeteilt worden sind, zugreifen. Sie arbeiten dann nicht am RMS vorbei, da das Script vom RMS auf einem Knoten ausgeführt wird, der Ihnen zugeteilt worden ist, und Sie bei richtiger Lösung der Aufgabe auch nur die Hosts verwenden die Ihnen das RMS zugeteilt hat. Wie man die zugeteilten Knoten ermittelt, wurde in der Übung diskutiert.

Themenliste

  • Parallelrechnerarchitekturen
  • Programmiermodelle für parallele Anwendungen
  • Programmiermodelle für Multicoresysteme: Beispiel POSIX-Threads, OpenMP
  • Programmiermodelle für Cluster Computing: Beispiel MPI
  • Scientific Computing: Beispiel: Fortran 90 und High Performance Fortran
  • Programmiermodelle für Grafikkarten: CUDA, OpenCL, OpenACC
  • Graphenbasierte Modellierung von Parallelen Programmen
  • Leistungsanalyse von parallelen Anwendungen
  • Clustertechnologie: Netzwerke, High-Performance Computing

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.
  • Jakub Kurzak, David A. Bader, Jack Dongarra (Eds): Scientific Computing with Multicore and Accelerators, CRC Press Taylor & Francis Group