Inhalt
Dieses Modul vermittelt den Studierenden den Zusammenhang zwischen wissenschaftlichen Berechnungsaufgaben und effizienten Strategien zur Optimierung solcher Aufgaben im Hinblick auf moderne Hardwareeigenschaften. Dazu werden zum einen Hardwareeigenschaften und deren Potential zur Leistungsoptimierung betrachtet, zum anderen werden wissenschaftliche Anwendungen in den Fokus genommen und als Projekt an Untergruppen vergeben, die im Hinblick auf die genannten Eigenschaften optimiert werden sollen. Die Anwendungen sowie die Hardwareeigenschaften werden zunächst in einer Seminarphase besprochen, anschließend bekommen Untergruppen eine konkrete Anwendung zugewiesen und müssen die zuvor gewonnenen Erkenntnisse anwenden, um die Performance der Anwendung zu optimieren.
Die betrachteten Hardwareeigenschaften und wissenschaftlichen Anwendungen ändern sich im Laufe der Zeit und können je nach Hintergrund und Interesse der Studierenden angepasst werden. Im Folgenden ist eine Sammlung wichtiger Themen aufgeführt:
Hardware-Eigenschaften:
- Cache Prefetching : Der massive Latenzunterschied zwischen Cache-Hits und -Misses macht das richtige Prefetching von Inhalten zu einem entscheidenden Faktor für die Leistung. Software kann die Kontrolle über das Cache-Prefetching auf direkte oder indirekte Weise übernehmen.
- Speicherlokalität: System-Caches werden in Blöcken verwaltet, die mehrere Datenwörter abdecken. Die Reihenfolge der Speicherzugriffe kann besonders cachefreundlich sein, wenn zeitlich nahe beieinander liegende Zugriffe auf Speicherinhalte in einer reduzierten Anzahl von Blöcken abzielen. Dies kann durch das Layout des Anwendungsspeichers gesteuert werden.
- SIMD-Ausführung: In Form von Vektorisierungseinheiten, General Purpose GPUs oder speziellen Beschleunigern bieten Systeme einen gewissen Grad an Vektorverarbeitung, wodurch ein hoher Grad an Parallelisierung erreicht werden kann.
- Verzweigungs-Ausführung: Verzweigungen im Kontrollfluss eines Programms können eine Pipeline-bezogene Verzweigungsstrafe einführen. Die unsachgemäße Vorhersage von Verzweigungsergebnissen kann diesen Effekt noch verschlimmern. Durch die Sicherstellung der Datenunabhängigkeit und eine verbesserte Verzweigungsvorhersage kann die Software die verursachte Strafe optimieren.
- Datentypisierung: Verschiedene Datentypen verbrauchen unterschiedliche Ressourcen. Dies gilt sowohl für Datentypen mit unterschiedlicher Bitbreite als auch für Gleitkomma- und Festkommadatentypen. Durch die Verwendung des optimalen Datentyps in einer Anwendung kann die Software den spezifischen Ressourcenverbrauch steuern.
Wissenschaftliche Anwendungen:
- Baumbasierte Datenstrukturen: Vor allem in Datenbanksystemen werden baumbasierte Strukturen für die Indizierung und Speicherung verwendet. Obwohl Bäume potenziell einen großen Speicherbedarf haben, benötigen sie während der Ausführung nur einen Bruchteil ihres Speichers. Dies ermöglicht eine gezielte Optimierung der Ausführung.
- Matrix-Vektor-Multiplikation oder Matrix-Matrix-Multiplikation: Diese Operationen arbeiten mit großen Datenmengen, die eine lokale Abhängigkeit aufweisen. Dies ermöglicht die Realisierung eines Algorithmus für diese Operationen, um die Reihenfolge der Speicherzugriffe nahezu beliebig zu steuern und so zu optimieren.
- Datenbank-Operatoren: Filterung, Akkumulation oder andere typische Datenbankoperatoren beziehen sich in der Regel auf große Mengen paralleler Daten, was sie zu einem vorteilhaften Kandidaten für die Nutzung paralleler Berechnungen macht.
- Entscheidungsbäume/Random Forests: Als eine spezielle Art von Algorithmen des maschinellen Lernens können Entscheidungsbäume hardwarenah implementiert werden, wobei die Verzweigungsinfrastruktur der CPUs genutzt wird. Dies ermöglicht eine Optimierung der Verzweigungen.
- Quantisierung von neuronalen Netzen: In neuronalen Netzen ist die Qualität der Vorhersage variabel und ermöglicht Kompromisse zwischen Leistung und Vorhersagequalität. Die Quantisierung kann neuronale Netze dazu zwingen, kleinere und effizientere Datentypen zu verwenden, was zu einem möglichen Verlust der Zielgenauigkeit führt.