Computational Sciences Center

Blockkurs "Simulation und Hochleistungsrechnen"

Dozenten: Prof. Dr. Steffen Börm, Christina Börst M.Ed.

Ort und Zeit: Seminarraum 306/307, Westring 383, vom Montag, dem 16.09.2019, bis zum Freitag, dem 27.09.2019

Anmeldung: Bitte per Mail an Herrn Börm

Vorkenntnisse: Höhere Mathematik (z.B. Ableitungen und Integrale, Polynome, Matrizen und Vektoren); Programmieren in C

Skript: (Noch unvollständige) Vorlesungsnotizen stehen als PDF-Datei zur Verfügung.

Die erste Woche des Blockkurses ist grundlegenden numerischen Verfahren gewidmet, die für Simulationen von zentraler Bedeutung sind.

  • Montag, 16.09.2019:
    09:00 - 09:15 Begrüßung
    09:15 - 10:30 Vorlesung: Einschrittverfahren für gewöhnliche Differentialgleichungen
    10:30 - 12:00 Programmierübung: Simulation eines Federpendels, Simulation einen Mehrkörpersystems
    13:00 - 14:30 Vorlesung: Implizite Einschrittverfahren, Crank-Nicolson- und Leapfrog-Verfahren
    14:30 - 16:00 Programmierübung: Energieerhaltende Simulationen
  • Dienstag, 17.09.2019:
    09:00 - 10:30 Vorlesung: Verfahren höherer Ordnung
    10:30 - 12:00 Programmierübung: Quadratur und Romberg-Quadratur am Beispiel normalverteilter Zufallsgrößen
    13:00 - 14:30 Vorlesung: Runge-Kutta-Verfahren und Mehrschrittverfahren für gewöhnliche Differentialgleichungen
    14:30 - 16:00 Programmierübung: Simulation eines Mehrkörpersystems, Simulation eines Räuber-Beute-Systems
  • Mittwoch, 18.09.2019:
    09:00 - 10:30 Vorlesung: Finite-Differenzen-Verfahren für partielle Differentialgleichungen
    10:30 - 12:00 Programmierübung: Numerische Behandlung der Potentialgleichung
    13:00 - 14:30 Vorlesung: LR-Zerlegung und BLAS
    14:30 - 16:00 Programmierübung: Lösen der 2D-Potentialgleichung mit Bandmatrizen und BLAS
  • Donnerstag, 19.09.2019:
    09:00 - 10:30 Vorlesung: Linienmethode für die Wärmeleitungsgleichung und die Wellengleichung
    10:30 - 12:00 Programmierübung: Simulation der Wellengleichung mit Linienmethode und Runge-Kutta- und Crank-Nicolson-Verfahren
    13:00 - 14:30 Vorlesung: Iterationsverfahren
    14:30 - 16:00 Programmierübung: Nichtlineare Regression, weitere nichtlineare Aufgabenstellungen
  • Freitag, 20.09.2019:
    09:00 - 10:30 Vorlesung: Krylow-Verfahren für große lineare Gleichungssysteme
    10:30 - 12:00 Programmierübung: 2D-Wellengleichung mit Crank-Nicolson-Verfahren und CG-Löser
    13:00 - 14:30 Vorlesung: Verfahren für nicht-lokale Wechselwirkungen
    14:30 - 16:00 Programmierübung: 2D-Wellengleichung mit Crank-Nicolson-Verfahren und Mehrgitterlöser

In der zweiten Woche des Blockkurses befassen wir uns mit der Frage, wie diese Verfahren auf modernen Computern möglichst effizient realisiert werden können.

  • Montag, 23.09.2019:
    09:00 - 10:30 Vorlesung: Parallelisierung mit geteiltem Speicher (OpenMP, Threads, Teams, Worksharing)
    10:30 - 12:00 Programmierübung: Parallele Operationen für 2D-Gitterfunktionen
    13:00 - 14:30 Vorlesung: Task-basierte Parallelisierung
    14:30 - 16:00 Programmierübung: Task-parallele LR-Zerlegung
  • Dienstag, 24.09.2019:
    09:00 - 10:30 Vorlesung: Vektorisierung (Grundlagen, automatische Vektorisierung)
    10:30 - 12:00 Programmierübung: Vektorisierte Quadratur, vektorisierte lineare Algebra
    13:00 - 14:30 Vorlesung: Explizite Vektorisierung (AVX, Intrinsics)
    14:30 - 16:00 Programmierübung: Simulation eines Vielkörpersystems mit Gravitation
  • Mittwoch, 25.09.2019:
    09:00 - 10:30 Vorlesung: Rechnen auf Grafikkarten (CUDA)
    10:30 - 12:00 Programmierübung: Simulation eines Vielkörpersystems auf einer Grafikkarte
    13:00 - 14:30 Vorlesung: Streams, Threadblöcke und geteilter Speicher
    14:30 - 16:00 Programmierübung: Quadratur auf einer Grafikkarte, Reduktionsoperationen
  • Donnerstag, 26.09.2019:
    09:00 - 10:30 Vorlesung: Verteiltes Rechnen (MPI)
    10:30 - 12:00 Programmierübung: Operationen auf verteilten 2D-Gitterfunktionen
    13:00 - 14:30 Vorlesung: Kollektive Kommunikation
    14:30 - 16:00 Programmierübung: Gebietszerlegungsverfahren in 2D
  • Freitag, 27.09.2019:
    09:00 - 10:30 Vorlesung: Computersysteme des Kieler Rechenzentrums
    10:30 - 12:00 Programmierübung: Praktisches Arbeiten auf den Systemen des Rechenzentrums
    13:00 - 14:30 Abschließende Diskussion