66-878 Hochleistungsrechnen in der Physik: Grundlagen der Entwicklung paralleler Anwendungen

Veranstaltungsdetails

Lehrende: Niklas Käming; Martin Stieben

Veranstaltungsart: Vorlesung

Anzeige im Stundenplan: PHY-HLR-V

Semesterwochenstunden: 4

Unterrichtssprache: Deutsch

Min. | Max. Teilnehmerzahl: 5 | 40

Kommentare/ Inhalte:
Nahezu alle modernen, physikalischen Forschungsfelder erfordern die Verwendung oder sogar Entwicklung von parallelisierter Software auf Grundlage aktueller Programmierkonzepte und mittels moderner Großrechnersysteme. Diese funktionieren grundlegend anders, als herkömmliche Einzelkernanwendungen.
Das Programmierparadigma Nachrichtenaustausch zwischen Prozessen wird anhand des weit verbreiteten MPI Interface am Beispiel physikalisch-mathematischer Probleme vermittelt, wie sie im wissenschaftlichen Alltag auftreten können. Dabei werden Mehrkern- und Großrechnersysteme des PHYSnet-RZ verwendet und in deren Benutzung eingeführt. Die Methodik ist auf alle modernen Großrechnersysteme übertragbar und ermöglicht den Studierenden einen schnelleren Einstieg in die Forschungsphase im Bachelor- und Masterarbeitsmodul und legt Grundsteine für die Verwendung derartiger Systeme während einer Promotion.?Das Modul ergänzt somit das Kursangebot zur Vermittlung von Programmierkenntnissen auf Basis der Sprache Python, um einen wichtigen, unverzichtbaren Bestandteil für die Simulation komplexer physikalischer Systeme. 
Im ersten Teil der Veranstaltung werden die Studierenden in grundlegende Werkzeuge der modernen Softwareentwicklung auf Großrechnern eingeführt. Die Fragen: Wie logge ich mich auf das System ein? Wie navigiere ich in dem System? Wie erhalte ich Informationen zum System? Wie erstelle ich ein Programm und wie führe ich es aus? werden beantwortet. Außerdem wird kurz in die Programmiersprache Python eingeführt.
Block 2 führt in die Theorie moderner Mehrkernsysteme ein, wie sie an fast allen Arbeitsplätzen der Universität zu finden sind. Dabei werden Hardwareaspekte wie Speicherverteilung und CPU Cache erläutert und die Prozessverwaltung durch moderne Betriebssysteme beleuchtet. Unter Verwendung der Python Bibliothek "numba", werden die Studierenden erste lokal-parallelisierte Anwendungen entwickeln.
Die Vernetzung und Reservierung von Ressourcen auf Großrechnersystemen werden im dritten Teil behandelt. Den Studierenden werden typische Beispiele für Großrechnersysteme vorgestellt und gängige Vernetzungskonzepte erläutert. Die Studierenden werden dabei selbst ein solches System des PHYSnet-RZ kennen lernen und verwenden. 
Zentrale Bestandteil der Veranstaltung ist das Programmierparadigma Nachrichtenaustausch. Die Studierenden erstellen unter Verwendung von MPI eine Anwendung, die im Anschluss auf ihr Skalierungsverhalten auf verschiedenen Systemen untersucht wird. Verschiedene Modelle des Nachrichtenaustausches werden anhand verschiedener MPI Methoden erläutert und durch die Studierenden in einem Projekt analysiert und vertieft. Dabei werden auch Konzepte der Datenspeicherung und Komprimierung, die im Alltag des wissenschaftlichen Arbeitens auftauchen, exemplarisch an dem Format HDF5 erläutert und in das Projekt der Studierenden integriert.
Die Verwendung moderner Beschleunigerhardware wie GPUs wird durch die schnell wachsende Bedeutung von maschinellem Lernen und „Big Data“ in Wissenschaft und Forschung immer wichtiger. Sie ist daher Bestandteil des letzten Abschnitts dieses Moduls. Die Studierenden erlernen anhand von Beispielen die Möglichkeiten der Beschleunigung von umfangreichen Berechnungen durch GPUs und deren Programmierung.

Vorgehen:
Einmal pro Woche werden in einer Vorlesung in die Themen und theoretischen Grundlagen eingeführt. An einem zweiten Termin werden die Hausarbeiten/Übungen besprochen und auf die folgenden Hausarbeiten vorbereitet.

Die Studierenden benötigen zur Teilnahme an den Übungsgruppen im idealfall einen eigenen Computer.

Die Veranstaltung wird in deutscher Sprache durchgeführt und setzt entsprechende Sprachkenntnisse voraus.

Literatur:
Georg Hager Gerhard Wellein, Introduction to High Performance Computing for Scientists and Engineers, CRC Press 2011

Zusätzliche Hinweise zu Prüfungen:
Die Prüfungsleistung besteht aus den wöchentlichen Projekte/Hausarbeiten.

Termine
Datum Von Bis Raum Lehrende
1 Di, 5. Apr. 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
2 Fr, 8. Apr. 2022 10:30 12:00 SemRm 1083 Niklas Käming; Martin Stieben
3 Di, 12. Apr. 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
4 Di, 19. Apr. 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
5 Fr, 22. Apr. 2022 10:30 12:00 SemRm 1083 Niklas Käming; Martin Stieben
6 Di, 26. Apr. 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
7 Fr, 29. Apr. 2022 10:30 12:00 SemRm 1083 Niklas Käming; Martin Stieben
8 Di, 3. Mai 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
9 Fr, 6. Mai 2022 10:30 12:00 SemRm 1083 Niklas Käming; Martin Stieben
10 Di, 10. Mai 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
11 Fr, 13. Mai 2022 10:30 12:00 SemRm 1083 Niklas Käming; Martin Stieben
12 Di, 17. Mai 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
13 Fr, 20. Mai 2022 10:30 12:00 SemRm 1083 Niklas Käming; Martin Stieben
14 Di, 31. Mai 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
15 Fr, 3. Jun. 2022 10:30 12:00 SemRm 1083 Niklas Käming; Martin Stieben
16 Di, 7. Jun. 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
17 Fr, 10. Jun. 2022 10:30 12:00 SemRm 1083 Niklas Käming; Martin Stieben
18 Di, 14. Jun. 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
19 Fr, 17. Jun. 2022 10:30 12:00 SemRm 1083 Niklas Käming; Martin Stieben
20 Di, 21. Jun. 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
21 Fr, 24. Jun. 2022 10:30 12:00 SemRm 1083 Niklas Käming; Martin Stieben
22 Di, 28. Jun. 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
23 Fr, 1. Jul. 2022 10:30 12:00 SemRm 1083 Niklas Käming; Martin Stieben
24 Di, 5. Jul. 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
25 Fr, 8. Jul. 2022 10:30 12:00 SemRm 1083 Niklas Käming; Martin Stieben
26 Di, 12. Jul. 2022 16:00 17:30 SemRm 1083 Niklas Käming; Martin Stieben
27 Fr, 15. Jul. 2022 10:30 12:00 SemRm 1083 Niklas Käming; Martin Stieben
Prüfungen im Rahmen von Modulen
Modul (Startsemester)/ Kurs Leistungs­kombination Prüfung Datum Lehrende Bestehens­pflicht
PHY-HLR Hochleistungsrechnen in der Physik: Grundlagen der Entwicklung paralleler Anwendungen (SoSe 22) / PHY-HLR-V  Hochleistungsrechnen in der Physik: Grundlagen der Entwicklung paralleler Anwendungen Hausarbeit 1  Hausarbeit ohne Termin Niklas Käming; Martin Stieben Ja
PHY-HLR Hochleistungsrechnen in der Physik: Grundlagen der Entwicklung paralleler Anwendungen (WiSe 20/21) / PHY-HLR-V  Hochleistungsrechnen in der Physik: Grundlagen der Entwicklung paralleler Anwendungen Hausarbeit 3  Hausarbeit ohne Termin Niklas Käming; Martin Stieben Ja
PHY-HLR Hochleistungsrechnen in der Physik: Grundlagen der Entwicklung paralleler Anwendungen (WiSe 21/22) / PHY-HLR-V  Hochleistungsrechnen in der Physik: Grundlagen der Entwicklung paralleler Anwendungen Hausarbeit 2  Hausarbeit ohne Termin Niklas Käming; Martin Stieben Ja
PHY-HLR Hochleistungsrechnen in der Physik: Grundlagen der Entwicklung paralleler Anwendungen (SoSe 21) / PHY-HLR-V  Hochleistungsrechnen in der Physik: Grundlagen der Entwicklung paralleler Anwendungen Hausarbeit 3  Hausarbeit ohne Termin Niklas Käming; Martin Stieben Ja
Übersicht der Kurstermine
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
Lehrende
Martin Stieben
Niklas Käming