Software-Projektpraktikum

 

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.

Die Liste der aktuellen Lehrveranstaltungen finden Sie unter Teaching – Chair for Computer Science 12.

HPC Cluster Challenge

Heutzutage sind bereits übliche Desktop PCs sowie Laptops mit mehreren Rechenkernen ausgestattet um die Gesamtrechenleistung zu steigern und anstehende Aufgaben in immer kürzerer Zeit fertigstellen zu können. Da jedoch der Bedarf an Rechenleistung gerade in wissenschaftlichen und kommerziellen Bereichen stetig wächst, werden üblicherweise viele einzelne Rechner miteinander verbunden. Dieser Zusammenschluss von Rechnern wird auch als Cluster bezeichnet und ist z.B. bei Betreibern von Hochleistungsrechnern und Cloud-Computing-Diensten zu finden.

In diesem Software-Projektpraktikum bauen, vernetzen und installieren die Studierenden ihren eigenen kleinen Cluster auf Basis von verschiedenen Rechnerarchitekturen. Weiterhin portieren sie Benchmarks auf den entsprechenden Cluster, analysieren Leistungsmetriken und messen den Stromverbrauch. Am Ende präsentieren die Studierenden ihre Ergebnisse.

Ziele sind die Vermittlung von Grundkenntnissen im Bereich Cluster-Bau sowie der Aufbau eines eigenen Clusters mit bereitgestellter Hardware. Außerdem wird ein Verständnis der speziellen Eigenschaften eines Clusters und deren Bewertung im Hinblick auf Stromverbrauch, Energieeffizienz sowie diversen Leistungsmetriken vermittelt.

Die Liste der aktuellen Lehrveranstaltungen finden Sie unter Teaching – Chair for Computer Science 12

Parallele Programmiermodelle für Applikationen im Bereich Hochleistungsrechnen

Durch die stetig steigenden Anforderungen an Rechenleistung im Bereich Hochleistungsrechnen wächst auch der Stromverbrauch von größer werdenden Rechenclustern. Deswegen werden parallele Rechnerarchitekturen untersucht, die ein vielsprechendes Verhältnis von Rechenleistung zu Stromverbrauch besitzen, wie z.B. Grafikkarten (GPUs).

In diesem Software-Projektpraktikum parallelisieren und optimieren die Studierenden einen Konjugierten Gradienten (CG) Algorithmus mit drei unterschiedlichen parallelen Programmiermodellen für CPU- und GPU-Rechnerarchitekturen. Dabei werden low-level und high-level Direktiven-basierte Ansätze verfolgt. Am Ende präsentieren die Studierenden verschiedene Optimierungstechniken für das gegebene Problem.

Ziele sind das Verständnis unterschiedlicher paralleler Rechnerarchitekturen sowie die Kenntnis diese effizient und Performance-orientiert zu programmieren.

Die Liste der aktuellen Lehrveranstaltungen finden Sie unter Teaching – Chair for Computer Science 12