Advanced Topics in Parallel Programming

  • Typ: Proseminar / Seminar (PS/S)
  • Semester: SS 2014
  • Ort: Gebäude 20.21. (SCC-Süd), Raum 314 (3. Stock)
  • Zeit: 14.04.2014
    15:45 - 17:15 wöchentlich



    28.04.2014
    15:45 - 17:15 wöchentlich


    05.05.2014
    15:45 - 17:15 wöchentlich


    12.05.2014
    15:45 - 17:15 wöchentlich


    19.05.2014
    15:45 - 17:15 wöchentlich


    26.05.2014
    15:45 - 17:15 wöchentlich


    02.06.2014
    15:45 - 17:15 wöchentlich


    16.06.2014
    15:45 - 17:15 wöchentlich


    23.06.2014
    15:45 - 17:15 wöchentlich


    30.06.2014
    15:45 - 17:15 wöchentlich


    07.07.2014
    15:45 - 17:15 wöchentlich


    14.07.2014
    15:45 - 17:15 wöchentlich



  • Beginn: 14.4.2014
  • Dozent: Prof. Dr. Achim Streit
    Dr. Gevorg Poghosyan
  • LVNr.: 2400013
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.

Themen im Bereich der parallelen Programmierung mit MPI sind voraussichtlich:

  • Internes Scheduling paralleler Prozessor Gruppen in MPI-Jobs
  • Dynamisches Prozess-Management mit MPI-2 zur Erzeugung von zusätzlichen Tasks
  • Parallele Datei-Manipulation und Zugriff über MPI-I/O
  • Einseitige Kommunikation mit MPI-2

Themen im Bereich der parallelen Programmierung mit grafischen/mathematischen Co-Prozessoren sind voraussichtlich:

  • Nutzung von GPU-Beschleunigern zur Beschleunigung von Fast-Fourier- Transformationen
  • Vergleich der Beschleunigerkarten von NVIDIA Kepler, AMD GCN und Intel Xeon Phi zur Hochdurchsatz-Bildverarbeitung
  • OpenACC - der neue Programmierstandard für heterogene Parallelprogrammierung

Performance-Analyse und Optimierung von Simulationscodes:

  • Performance-Analyse von seriellen Programmen (als Teil paralleler Programme)
  • Performance-Analyse paralleler Programme mit Alinea MAP / Scalasca / Intel Trace Analyzer und Collector
  • Grundlagen der (parallelen) Code-Optimierung
  • Modellgetriebene und Template-basierte Ansätze für HPC

Themen im Bereich der parallelen Programmierung mit OpenMP sind:

  • OpenMP 4.0 - ein neuer Standard zur mehrfädigen Programmierung von CPUs und GPUs
  • Parallelisierung rekursiver Programme mit Hilfe des in OpenMP integrierten Task-Konzepts