High Performance Computing#

In diesem Skript geht es um die hoch performante Ausführung von Berechnungen. Damit verstehen wir hauptsächlich die parallele Ausführung von Programmen im Gegensatz zur sequentiellen Programmen. Das klingt erst mal sehr generisch und lässt sich vielleicht besser durch eine Reihe von Abgrenzungen verstehen:

Worum geht es nicht (nur)

Worum geht es

Beispiel / Zitat

Supercomputer

Parallele Berechnung - mittlerweile und auf absehbare Zeit der signifikanteste Leistungstreiber auch bei Endnutzergeräten

128-Kern GPU im 99-Euro-SoC Jetson Nano, iPad in 2021 mit 8 CPU-Kernen, 8 GPU-Kernen (1024 ALUs, 24,576 Threads) und 16-Kern “Neural Engine”

Extreme Aufgaben (z.B. Simulation des globalen Klimas, des Urknalls, …)

Aufgaben, die von Parallelisierung profitieren oder aufgrund von Hardwarevorgaben, Energieeffizienz und Zeitbeschränkungen nur parallel gelöst werden können

“It takes a big man to admit his data is small” - Hadley Wickham

Maximale Ausreizung der Performance für bestimmte Probleme

Verständnis von parallelen Programmiermodellen - eine automatische Parallelisierung von sequentiellen Code ist bisher nicht vergleichbar

Nutzung der sum()-Methode in numpy statt manuelle Programmierung eines for-each-loop über ein Array

Verarbeitung einzelner Transaktionen - auch wenn es extrem viele sind

Die gesamthafte Lösung eines zusammenhängenden Problems

Es geht nicht um die Bestellungsverarbeitung für einen globalen Online-Händler aber es könnte um die Analyse aller Bestellungen gehen

Nutzung von verfügbarer Hardware

Verschiedene Technologiekonzepte

Von Interesse sind eher die Möglichkeiten eines 8 QuBit Quantencomputers als die Performance, die beim Umstieg von 1.000 auf 10.000 GPUs zu erwarten ist

Note

Dieses Skript dient als Begleitmaterial zur Vorlesung High Performance Computing (HPC) an der HFT Stuttgart. Das Skript ist noch in der Entstehung und ist als Ergänzung zum weiteren Vorlesungsmaterial zu verstehen. Feedback und weitere Anregungen sind stets willkommen.

Weiterführende Quellen: Empfehlungen und Grundlagen#

Die folgenden empfehlenswerten Quellen wurden für die Erstellung dieses Skripts verwendet:

Weitere Quellen insbesondere für einzelne Beispiele sind im Skript vermerkt.