Trainingskurs "Fortgeschrittene Parallelprogrammierung mit MPI und OpenMP"
(Kurs-Nr. 91/2016 im Trainingsprogramm des Forschungszentrums)
Zielgruppe: | Supercomputernutzer, die ihre parallelen Anwendungen mit MPI oder OpenMP optimieren wollen und bereits Erfahrungen mit MPI und OpenMP haben |
Inhalt: | |
Teilnahmevoraussetzungen: | Kenntnisse in Unix, den Programmiersprachen C, C++ oder Fortran, und Erfahrung mit den Prinzipien von MPI, z.B.point-to-point message passing, datatypes, nonblocking communication, collective communication; Erfahrungen mit OpenMP 3.0 |
Agenda: | Agenda of Advanced MPI Course at JSC |
Sprache: | Der Kurs wird auf Deutsch gehalten. |
Dauer: | 3 Tage |
Termin: | 28.-30. November 2016, 9.00 - 16.30 Uhr |
Ort: | Jülich Supercomputing Centre, Ausbildungsraum 1, Geb. 16.3, Raum 213a |
Teilnehmerzahl: | maximal 28 |
Referent: | Dr. Rolf Rabenseifner, HLRS Stuttgart (für MPI/OpenMP); Dr. Markus Geimer, JSC (für die Tools-Session am 3. Tag) |
Ansprechpartner: | Dr. Florian Janetzko Telefon: +49 2461 61-1446 E-mail: f.janetzko@fz-juelich.de |
Ziel dieses Workshops ist es, Methoden der fortgeschrittenen Parallelprogrammierung kennenzulernen. Der Kurs wendet sich insbesondere an Programmierer mit Erfahrung in C/C++ oder Fortran und schon vorhandenen Kenntnissen in MPI und OpenMP, die beiden gängigsten Programmiermodelle für moderne Höchstleistungsrechner. OpenMP ist eine standardisierte Spracherweiterung zu Fortran und C/C++ zur Entwicklung paralleler Programme auf Systemen mit gemeinsamem Speicher (shared memory), wie z.B. Multicore CPUs oder ccNUMA-Architekturen. Das Message Passing Interface (MPI) ist das wichtigste Werkzeug zur Programmierung von Systemen mit verteiltem Speicher (distributed memory), zu denen die weltweit schnellsten heute verwendeten Supercomputer zählen. Der Kurs beinhaltet neueste Methoden aus MPI-3.0 und 3.1 und OpenMP-4.0, die für eine effiziente Nutzung heutiger Rechnerarchitekturen im Höchstleistungsrechnen entwickelt wurden. Themen bei MPI sind Gruppen und Kommunikatoren, Prozess Topologien, Derived Datatypes, das neue MPI-3.0 Fortran Language Bindiung, One-sided Communication und das neue MPI-3.0 Shared Memory Programmiermodell. Bei OpenMP wird auf die Erweiterungen in OpenMP-4.0 eingegangen, wie z.B. Vektorisierungsdirektiven, Thread Affinity und OpenMP Places. (Die GPU Programmierung mittels neue OpenMP Direktiven ist nicht Teil dieses Kurses.) Der Kurs beinhaltet auch Performance und Best Practice Betrachtungen, z.B. zur hybriden Kombination von MPI + shared Memory Parallelisierung.
Der Kurs endet mit einem Abschnitt über Tools zur parallelen Programmierung.
Übungen (in C und Fortran) helfen, die erlernten Methoden sofort zu testen und sie besser zu verstehen.
Weitere Informationen zum Kurs auf den Webseiten des HLRS.