Parallelprogrammierung von Many-Core Architekturen mit OpenMP
Many-Core Prozessoren sind spezielle Mehrkernprozessoren die für einen besonders hohen Grad an Parallelität ausgelegt sind. Ihre potentiell hohe Rechenleistung - ermöglicht durch die große Anzahl der Rechenkerne - machen sie attraktiv für den Einsatz im Hochleistungsrechnen. Als Voraussetzung zum Abruf des Leistungspotentials werden parallele Programme mit guter Skalierbarkeit benötigt.
In diesem Software-Projektpraktikum arbeiten die Studierenden auf aktuellen Many-Core Systemen. Dazu parallelisieren sie kleine Programme mit dem Industriestandard OpenMP und entwickeln Optimierungsstrategien hinsichtlich ihrer Laufzeit. Am Ende präsentieren die Studierenden ihre Ergebnisse.
Ziele sind das Erlernen der Programmierung aktueller Many-Core Architekturen mit OpenMP. Außerdem wird ein Verständnis der speziellen Eigenschaften dieser Architekturen vermittelt indem mit Performanceanalysewerkzeugen und Hilfsmitteln wie der Performancemodellierung das Ausführungsverhalten von parallelen Programmen auf diesen Architekturen untersucht und bewertet wird.
Termine und Vorbereitung
Das Softwarepraktikum findet semesterbegleitend statt. Die Termine finden montags von 10:30 - 12:00 Uhr im Seminarraum 1 des IT Centers (Kopernikusstr. 6) statt. Die Teilnahme an den Terminen ist Pflicht. Prüfen sie vor der Anmeldung, ob Sie die Termine wahrnehmen können, da die Terminserie feststeht und nicht mehr geändert werden kann.
Um das benötigte parallele Programmiermodell OpenMP kennen zu lernen, müssen (!) die Teilnehmer ca. zwei Tage am Workshop PPCES teilnehmen, der in 2020 vom 16. - 20.03. stattfinden wird. Dabei wird OpenMP am 16. + 17. März unterrichtet. Der Workshop wird auf Englisch gehalten. Es finden dann entsprechend weniger Termine während des Semesters statt um die investierte Zeit für den Workshop aufzurechnen. Bitte melden Sie sich auf der Webseite des PPCES Workshops selbstständig für die entsprechenden Tage an (sobald die Anmeldung freigeschaltet ist) und vermerken Sie im Kommentarfeld, dass Sie an dem Software-Praktikum teilnehmen. Wir werden Sie aber auch noch einmal darauf aufmerksam machen. Falls ihnen aus guten Gründen die Teilnahme an der Veranstaltung nicht möglichist, teilen sie uns dies bitte rechtzeitig mit. Wir können ihnen dann (zum Teil vertonte) Materialien aus den Vorjahren zur Verfügung stellen.
Wir empfehlen die Programmierarbeiten an Ihrem eigenen Laptop zu machen, den Sie zu den Praktikumsterminen mitbringen. Alternativ stellen wir für die Praktikumstermine Laptops zur Verfügung, mit denen Sie sich remote auf die HPC-Systeme verbinden können.
Voraussetzungen
Programmierkenntnisse in C/C++ oder Java. Linux-Kenntnisse sind von Vorteil, aber nicht zwingend nötig. Die zur Verfügung gestellte Hardware wird unter Linux laufen. Es sind keine speziellen Vorkenntnisse in der Parallelprogrammierung nötig, da die benötigten Programmiermodelle und ‑konzepte im Rahmen des Praktikums vermittelt werden.