Projekt Paralleles Rechnen

In dem Projekt sollen aktuelle Themen aus dem Bereich High Performance Computing bearbeitet werden. Dabei wird ein Schwerpunkt auf selbständiges praktisches Arbeiten gelegt. Die Themen werden teilweise in Kooperation mit wissenschaftlichen Einrichtungen wie beispielsweise dem GeoForschungszentrum (GFZ) und dem Potsdamer Institut für Klimafolgenforschung (PIK) bzw. Anwendern aus den naturwissenschaftlichen Instituten der Universität Potsdam gestellt.


Veranstalter

Prof. Dr. Bettina Schnor
Steffen Christgau


Modulnummern

  • Bachelor Informatik:
    3520
  • Bachelor Computational Science:
    555701 Teilleistung zum Modul 6020
  • Master Informatik:
    3521
  • Master Computational Science:
    555111 Teilleistung zum Modul 10010

Ort/Termine

Das Projekt findet nach Vereinbarung (ca. 1x im Monat) donnerstags von 14:00 Uhr bis 18:00 Uhr im Raum 03.04.1.03 statt.

Aktuelles
Abschlussvorträge 30.03.2017, 09:30 Uhr - 11:00 Uhr Universität Potsdam, Raum 03.04.2.14
5. Zwischenstandstermin 17.03.2017, 10:00 Uhr Universität Potsdam, Raum Haus 4, 2.14
4. Zwischenstandstermin 23.02.2017, 14:15 Uhr - ca 15:45 Uhr Universität Potsdam, Raum 03.04.1.03 (oder im 2.OG)
3. Zwischenstandstermin 19.01.2017, 14:15 Uhr - 18:00 Uhr Universität Potsdam, Raum 03.04.1.03
2. Zwischenstandstermin 15.12.2016, 14:15 Uhr - 18:00 Uhr Universität Potsdam, Raum 03.04.1.03
1. Zwischenstandstermin 24.11.2016, 14:00 Uhr - 18:00 Uhr Universität Potsdam, Raum 03.04.1.03
Erste Veranstaltung 27.10.2016, 14:00 Uhr - 18:00 Uhr Universität Potsdam, Raum 03.04.1.03

Materialien


Anforderungen

  • Selbstständige Einarbeitung in die Aufgabenstellung und Absprachen mit den Betreuern
  • Teilnahme an den Zwischenstandstreffen und Berichte zum aktuellen Zwischenstand bzw. individuelle Vorträge
  • Abschlussvortrag
  • Schriftliche Ausarbeitung zwei Wochen nach Abschlussvortrag (doppelseitig ausgedruckt)

Themenliste

(in Bearbeitung)


  1. Multicore Programming with OpenMP and MPI / Erweiterung des Zellularautomaten
    Bereich: MPI, Multicore-Programmierung
    Der aus der Vorlesung Paralleles Rechnen bekannte Zellularautomat soll um eine 2-dimensionale Zerlegungen erweitert werden. Weiterhin werden Muticorearchitekturen immer wichtiger. Daher kommen Fragen auf wie: Wie verhalten sich reine MPI Anwendungen auf einem Cluster von Multicoremaschinen im Gegensatz zu hybriden Ansätzen die MPI und OpenMP nutzen? Diese Frage soll beantwortet werden, indem der aus der Vorlesung bekannte Zellularautomat mit MPI, OpenMP und einer Hybriden Variante implementiert und anschließend, die verschiedenen Varianten verglichen werden. Plattform: ZEIK-Computeserver mit Quad-12 Core Magny Cours (48 Cores) sowie Cluster des PIK.
  2. Synchronisierung für passiv einseitige MPI-Kommunikation auf dem Intel Single-Chip Cloud Computer
    geeignet für Master-Studenten, die an der Veranstaltung PR2 (Architekturen und Middleware) teilgenommen haben.
    Passiv einseitige Kommunikation (passive one-sided communication) erlaubt eine Programmierung auf lose gekoppelten Systemen, die der Shared-Memory-Programmierung ähnelt (aber nicht identisch ist). Der Intel Single-Chip Cloud Computer (SCC) ist ein solches System. Die MPI-Prozesse müssen sich jedoch mittls Locks synchronisieren, um miteinander kommunizieren zu können. Im Rahmen der Aufgabe soll ein existierendes Verfahren zur Prozesssynchronisation für passive Kommunikation in der MPI-Implementierung des SCCs umgesetzt und bewertet werden. Der Umgang mit dem SCC und die Entwicklung der MPI-Bibliothek werden beim Einstieg in das Thema vermittelt.
    Betreuer: Steffen Christgau
    Literatur:
  3. Graph500-Benchmark
    geeignet für Master-Studenten, die an der Veranstaltung PR2 (Architekturen und Middleware) teilgenommen haben.
    Der Graph500-Benchmark stellt eine alternative Bewertungsmethode für Hochleistungsrechner dar. Der Fokus liegt hierbei auf datenintensiven Operationen, z.B. der Suche in oder der Analyse von Graphen. Im Rahmen der Aufgabe soll ein Verständnis für die Bestandteile/Algorithmen des Graph500-Benchmarks und deren Parallelisierungskonzept (insbesondere die OpenMP/MPI-basierten Versionen) erworben werden. Außerdem soll eine Bewertung des Zuse-Clusters mit Hilfe des Benchmarks vorgenommen werden.
    Betreuer: Steffen Christgau
    Literatur:
  4. Inkrementelle Parallelisierung von MOM5: Parallelisierung der "Tracer-Advection" mit OpenACC
    Das Ozeanmodell MOM5 ist eine der rechenintensivsten Komponenten des Erdsystem-Models POEM. MOM beansprucht ca. 65–70 % der Gesamtrechenzeit von POEM. Eine Nutzung von massiv-parallelen Grafikkarten ist speziell für diese Modellkomponente von Interesse. Eine für Grafikkarten effiziente Implementierung mittels CUDA oder OpenCL kommt wegen des verbundenen Softwareentwicklungsaufwands für diese komplexen Programmbestandteile nicht in Frage. Hingegen bieten das Programmiermodel von OpenACC die Möglichkeit der inkrementellen Parallelisierung.
    Betreuer: Steffen Christgau, Dr. Stefan Petri (PIK)
  5. Automatisierter Ablauf der Jetstream-Analyse auf Vorhersagedaten
    Der Jetstream ist ein System von starken Winden in der oberen Troposphäre, welches grossen Einfluss auf das Wetter an der Erdoberfläche hat. Neuere Forschungsergebnisse zeigen, dass bestimmte Konstellation des Jetstreams in engem Zusammenhang mit Extremwetterereignissen stehen. Daher werden am PIK verschiedene Verfahren und Werkzeuge zur Analyse des Jetstreams entwickelt. Diese werden bisher auf Beobachtungsdaten und auf Simulationsergebnisse angewendet. Ziel dieser Arbeit ist die Anwendung dieser Werkzeuge auf Vorhersagedaten des Wetterdienstes der USA. Dazu soll der Arbeitsablauf aus Datenbeschaffung, Aufbereitung, Analyse, und Darstellung der Ergebnisse automatisiert werden. Das umfasst auch die Behandlung von Fehlern beim Datendownload und bei der Verarbeitung, das Verwalten der Daten mitsamt Loeschen veralteter Dateien, und die Aufbereitung zu einer Web-Darstellung.
    Betreuer: Steffen Christgau, Dr. Stefan Petri (PIK)
  6. Parallelisierung einer Analyse innerer Spannungen in technischen Werkstoffen
    Am Helmholtz-Zentrum Berlin für Materialien und Energie werden Eigenschaften technischer Werkstoffe, wie z.B. Eigenspannungen des Materials, durch Analysemodelle nachgewiesen. Hierfür wird MATLAB verwendet. Trotz teilweiser Parallelisierung wird für die vorhandenen Millionen von Datenpunkten erheblich viel Rechenzeit verwendet.
    Die Aufgabe besteht darin, den verwendeten Algorithmus zur Optimierung der Fehlerquadrate und die darin enthaltene Unterroutine zur Berechnung der finiten Differenzen auf die Möglichkeit der Parallelisierung (PCAM) zu untersuchen. Zudem soll eine Referenzimplementierung der Unterroutine durch Hinzunahme von bereits vorhandener Bibliotheken wie z.B. Intel MKL für CPUs oder cuBLAS für GPUs erstellt werden.
    Die Ergebnisse sollen nach erfolgreichem Abschluss im Rahmen des EXIST-Projektes in die Entwicklung des PerfAccT Compilers zur automatischen Parallelisierung von MATLAB Code einfließen.
    Betreuer: Steffen Christgau, Tobias Jaeuthe (EXIST-Projekt PerfAccT)
    Literatur:
  7. Domain Decomposition für automatische Parallelisierung mit MPI
    Im Rahmen des Exist-Projektes PerfAccT wird ein Compiler zur automatischen Parallelisierung von MATLAB Code entwickelt. Für Berechnungen auf verteilten Systemen mit MPI können die Kommunikationspartner zum Teil erst zur Laufzeit ermittelt werden. Die Wahl der richtigen Zerlegung (ein-, zwei- oder mehrdimensional) ist ein entscheidender Faktor für eine optimale Performance.
    Die Aufgabe besteht darin, die verschiedenen Zerlegungsansätze zu untersuchen, zu implementieren und mit Hilfe von Messungen zu evaluieren. Für die theoretische Betrachtung sollen die Vor- und Nachteile der einzelnen Verfahren hinsichtlich der Anzahl Kommunikationspartner bzw. Nachrichten, Nachrichtengrößen und Anzahl der Laufzeitprüfungen für die dynamische Ermittlung der Kommunikationspartner abgewogen werden. Daneben sollen die verschiedenen Ansätze auf Grundlage vorgegebener Datenstrukturen implementiert und auf dem Zuse-Cluster gemessen werden. Dabei sollten auch die unterschiedlichen Sende- und Empfangsarten von MPI mit betrachtet werden. Dadurch soll die grundsätzliche Frage geklärt werden ob zusätzliche dynamische Prüfungen der Kommunikationspartner mehrdimensionaler Zerlegungen so schwer ins Gewicht fallen wie vielleicht angenommen. Die Ergebnisse sollen nach erfolgreichem Abschluss in die Entwicklung des PerfAccT Compilers einfließen.
    Betreuer: Steffen Christgau, Tobias Jaeuthe (EXIST-Projekt PerfAccT)
    Literatur:

  8. Literatur

    Parallel Programming
    Michael J. Quinn
    Mcgraw-Hill Higher Education, 2004


    Parallele Programmierung mit MPI
    Peter Sanders, Thomas Worsch
    Logos Verlag, 1997


    Designing and Building Parallel Programs
    Ian Foster
    Addison Wesley, 1995


    Scalable Parallel Computing: Technology, Architecture, Programming
    Hwang/Xu
    WCB/McGraw-Hill, 1998


    Scientific Computing with Multicore and Accelerators
    Jakub Kurzak, David A. Bader, Jack Dongarra
    CRC Press, 2010