Computational Sciences Center

Blockkurs "Simulation und Hochleistungsrechnen"

Dozenten: Prof. Dr. Steffen Börm, Dipl.-Inf. Sven Christophersen

Ort und Zeit: Raum 424, Ludewig-Meyn-Straße 4, vom Montag, dem 27.08.2018, bis zum Freitag, dem 07.09.2018

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, 27.08.18:
    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, 28.08.18:
    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, 29.08.18:
    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, 30.08.18:
    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, 31.08.18:
    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, 03.09.18:
    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, 04.09.18:
    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, 05.09.18:
    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, 06.09.18:
    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, 07.09.18:
    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