
High Performance Computing in Python
Zusammenfassung
Der Spezialisierungskurs High Performance Computing in Python (HPC) konzentriert sich auf die Leistungsoptimierung von Python-Code.
Wir untersuchen verschiedene Mƶglichkeiten zur Verbesserung der Leistung Ihres Python-Codes:
- Verwendung von eingebauten Bibliotheksfunktionen in Numpy / Scipy, anstatt sich auf Schleifen zu verlassen
- Einzelkernoptimierung mit Bibliotheken wie Numba
- Parallelisierung mit verschiedenen Parallelisierungsbibliotheken wie Dask
- Auffinden von EngpƤssen: Leistungsprofilierung
- Optimierung von parallelem Code
SchlieĆlich vergleichen wir die Leistungsverbesserungen durch Code-Optimierung mit den Geschwindigkeitsgewinnen durch neuere, leistungsfƤhigere Hardware.
Zielgruppen
Der Kurs richtet sich an Personen, die bereits mit Python vertraut sind und sich entweder bereits mit Leistungsproblemen in ihrem eigenen Code befassen oder planen, einen neuen Code zu entwickeln, bei dem maximale Leistung entscheidend sein wird. Für Anfänger kann dieser Kurs als Erweiterung des Kurses Python für Wissenschaftler oder des Kurses Python für Biologen dienen.
Struktur des Kurses
Der Kurs wird in englischer Sprache abgehalten und besteht derzeit aus 3 Modulen. Jedes Modul enthƤlt
- einen 60-90-minütigen Videovortrag, den sich die Teilnehmer ansehen können, wann es ihnen passt
- Ćbungen, in denen die Teilnehmer das Gelernte anwenden kƶnnen
- ein Live-Zoom-Tutorial zur Beantwortung von Fragen (90-120 Minuten)
Nach dem letzten Modul wenden die Teilnehmer das Kursmaterial auf ihre eigenen Codes an. Die Ergebnisse werden im vierten Tutorium diskutiert.
Insgesamt sollten die Teilnehmer zwischen 13 und 21 Stunden einplanen.
Inhalt
- Optimierung der Einzelkernleistung
- Leistungsprofilierung
- Einführung in die Parallelisierung
- Welche Parallelisierungsbibliothek ist zu verwenden?
- praktische Parallelisierungsbeispiele
- Erstellung von Leistungsprofilen für mehrere Kerne, Auffinden von Engpässen
- Code-Optimierung