Advanced Topics in Parallel Programming

  • Typ: Seminar (S)
  • Semester: SS 2016
  • Ort:

    Gebäude 20.21 (SCC-Süd), Raum 314 

  • Zeit: Montag, 15:45-17:15
  • Beginn: 25.04.2016
  • Dozent: Prof. Dr. Achim Streit
    Elizaveta Dorofeeva
  • LVNr.: 2400023

Bemerkungen

Eine Anmeldung im  ILIAS ist rein unverbindlich aber wünschenswert, damit vorzeitig ausreichende Themen und Themenbetreuer organisiert werden können.

Die eigentlich Anmeldung zum Seminar und die Themenverteilung wird während ersten Termin am 25.04 Mo, 15:45 - 17:15, Gebäude 20.21, Raum 314 stattfinden. Falls mehrere Studenten sich für gleiche Thema interessieren, werden wir per Zufallsgenerator verteilen.

Beschreibung

Eine effiziente Nutzung hochwertiger Supercomputing-Ressourcen (auch Hochleistungsrechner bzw. HPC genannt) für Simulationen von Phänomenen aus der Physik, Chemie, Biologie, mathematischen oder technischen Modellierung, von neuronalen Netzen, Signalverarbeitung, usw. ist nur möglich, wenn die entsprechenden Anwendungen mit modernen und fortschrittlichen Methoden der parallelen Programmierung implementiert werden. Oftmals ist sogar die Fähigkeit der Anwendung zur guten Skalierung (d.h. zur effizienten Nutzung einer großen Menge von CPU-Kernen) oder zur Nutzung von Beschleunigerhardware wie z.B. Grafikkarten/GPUs eine Voraussetzung, um einen Zugang zu und entsprechende Rechenzeit auf großen HPC-Systemen genehmigt zu bekommen.

Die Verbesserung bestehender Algorithmen in den Simulationscodes durch fortschrittliche Parallelisierungstechniken kann zu erheblichen Leistungsverbesserungen führen; Ergebnisse können so schneller generiert werden. Oder es besteht auch die Möglichkeit zur Energieeinsparung, in dem geeignete zeitintensive Rechenroutinen des Simulationsprogramms von CPUs mit einem relativ hohen Energiebedarf auf GPUs mit einem niedrigeren Energiebedarf (pro Rechenoperation) verlagert werden.

Im Seminar werden ausgewählte Themen zu moderne Techniken der parallelen Programmierung vorgestellt und diskutiert. Stichworte sind MPI, OpenMP, CUDA, OpenCL und OpenACC. Es werden auch Werkzeuge zur Analyse der Effizienz, Skalierbarkeit und des Zeitverbrauchs von parallelen Anwendungen adressiert. Themen aus dem Bereich der parallelen Dateisysteme und der Hochgeschwindigkeits-Übertragungstechnologien runden das Themenspektrum ab.

Voraussichtliche Themen...

Parallele Programmierung auf Shared Memory Systemen mit oder ohne Hardware Beschleunigern (grafischen/mathematischen Co-Prozessoren):

  • Parallel Programmierung und Optimierung mit Intel Xeon Phi Co-Prozessoren
  • SIMD Programmierung: Intrinsics oder Framework?
  • Aufgabenbezogene Parallelismus mit Intel Threading Building Blocks (auf Englisch)
  • Parallel Programmierung mit Java Multithreading
  • Vergleich der GPU Beschleunigerkarten zur Hochdurchsatz-Bildverarbeitung
  • Effiziente Matrixmultiplikation auf massiv parallelen Architekturen

Parallele Programmierung für Systeme mit verteiltem Speicher:

  • Parallele Datei-Manipulation und Zugriff über MPI-I/O (auf Englisch)
  • Einseitige Kommunikation mit MPI (auf Englisch)

Hybrid Parallele Programmierung Modellen:

  • Hybrid Modellen auf Systemen mit SMP-knoten (auf Englisch)
  • Programmierung Modellen auf GPU-Clusters (auf Englisch)

Performance-Analyse und Optimierung von Simulationscodes:

  • Performance-Analysen Werkzeuge für Parallel-Anwendungen (auf Englisch)

Parallele Programmierung mittels parallele File Systeme, Netzwerke und Tools:

  • Infinibandnetzwerke für Parallelrechner

Numerische Bibliotheken und API für Parallel Lösung:

  • Parallel Programmierung mit linear Algebra Pakete
Ziel

Studierende erarbeiten, verstehen und analysieren ausgewählte, aktuelle Methoden und Technologien im Themenbereich des Parallelen Rechnen. Studierende lernen ihre Arbeiten gegenüber anderen Studierenden vorzutragen und sich in einer anschließenden Diskussionsrunde mit Fragen zu ihrem Thema auseinander zu setzen.