Programming hybrid parallel systems
General Remarks
Modern HPC systems are amost exclusively hybrid, i.e., more than one parallelization paradigm is supported by the architecture. The simplest case is a cluster of shared-memory nodes. However, the proceeeors in those nodes could be of the multi-core type, there may be ccNUMA access characteristics, the nodes may be equipped with accelerator hardware, the network could have a hybrid structure, etc. This project aims at fathoming programming and optimization options for parallel programs on hybrid systems.
Parallel programming on hybrid hardware: Models and applications
Master's thesis at the
Georg Simon Ohm University of Applied Sciences Nuremberg.
Author: Holger Stengel
Supervisor: Georg Hager (HPC Services).
Abstract:
Diese Arbeit hat zum Ziel, vorherrschende Programmiermodelle auf Parallelrechnern mit hybrider Architektur zu bewerten. Der Schwerpunkt liegt dabei auf der Kombination von MPI mit OpenMP und deren Anwendung auf Clustern von Shared-Memory-Knoten.
Im theoretischen Teil werden zunächst anhand eines parallelen Jacobi-Lösers die prinzipiellen Unterschiede in der Parallelisierung mittels MPI, OpenMP und MPI+OpenMP erläutert. Dabei wird der entscheidende Vorteil hybrider Programmierung deutlich, der im möglichen Überlapp zwischen Kommunikation und Rechnung liegt.
Die im Hinblick auf hybrides Programmieren in vielen Publikationen vorherrschende Sichtweise ist, dass OpenMP vorrangig dazu dient, den Einzelprozess zu beschleunigen bzw. weitere Paralleliserungsebenen zugänglich zu machen. Diese eingeengte Sichtweise wird dem in MPI+OpenMP liegenden Potenzial nicht gerecht. Deswegen sollen in dieser Arbeit drei verschiedene Ansätze verglichen werden:
- "Masteronly"-Stil ohne Überlappung von Kommunikation und Rechnung; kommuniziert wird nur im seriellen Teil
- Überlapp von Kommunikation und Rechnung, wobei ein Thread kommuniziert; auf die anderen wird die Rechenarbeit manuell aufgeteilt, da durch das Abspalten eines Threads i.W. die komplette Worksharing-Funktionalität von OpenMP verloren geht
- Überlapp von Kommunikation und Rechnung unter Anwendung des neuen OpenMP "Task" Konstrukts. Damit lassen sich die Einschränkungen des zweiten Zuganges sehr elegant umgehen.
Anhand von Benchmarks wird die Performance der verschiedenen Zugänge verglichen, wobei auch auf eine effiziente Implementierung der reinen MPI-Versionen Wert gelegt wird. Als anwendungsnaher Testfall dient ein dreidimensionaler Jacobi-Löser.
Downloads:
Thesis (in English; only title page and abstract is in German).
Contact
Project manager:
Prof. Dr. Gerhard Wellein
Erlangen Regional Computing Center
HPC Services
Martensstr. 1
91058 Erlangen
+49 (0)9131 85 28136
gerhard.wellein@rrze.fau.de



