High Performance Computing

Session 1

Einfache Beispiele in C zu Vektoren

Session 2

Einfache Beispiele in C zu Matrizen

Session 3

Benchmarks und GNUPlot

Session 4

Einfache Cache-Optimierungen

Session 5

Cache-Optimierungen durch fused vector operations.

Session 6

Einfache Cache-Optimierung des Matrix-Matrix Produktes.

Session 7

Erste Schritte mit C++

Session 8

  • Namensräume

  • Cache-optimiertes Matrix-Produkt

Session 9

  • Generische Klassen

  • Template-Funktionen

  • Statischer Polymorphismus

  • Verschiedene Ausprägungen einer polymorphen Funktion

Session 10

Lösungsvorschlag von Session 8 verallgemeinern:

  • Beliebige Typen für Matrixelemente

  • Verwendung von Matrix-Klassen

  • Verwendung von optimierten Micro-Kernel

Session 11

  • Funktionsobjekte

  • Lambda-Ausdrücke

Session 12

Einbinden optimierter Micro-Kernel

Session 13

Erste Schritte mit Threads in C++

Session 14

Design von Matrix-Klassen

Session 15

Mutex- und Bedingungsvariablen

Session 16

Thread-Pools (1. Teil)

Session 17

LU-Zerlegung:

  • ungeblockt: hpc::ulmlapack::getf2

  • geblockt: hpc::ulmlapack::getrf

Session 18

Thread-Pools (2. Teil) und OpenMP

Session 19

Vektor-Views und eine High-Level Implementierung der LU-Zerlegung

Session 20

Erste Schritte mit MPI

Session 21

Übertragung von Vektoren und Matrizen mit MPI

Session 22

Verteilen und Zusammenführen von Matrizen

Session 23

Verteilte Matrizen

Session 24

Erste Schritte mit CUDA

Session 25

Matrix-Produkt mit Cuda