Computational Sciences Center

Block course "Simulation and High-Performance Computing"

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

Place and time: Seminar room 306/307, Westring 383, Monday, 16th of September, to Friday, 27th of September, 2019

Application: Please send an e-mail to Steffen Börm

Required: Higher mathematics (e.g., differentiation and integration, polynomials, matrices and vectors); C programming

Lecture notes (currently incomplete) are available in a PDF file.

The first week is dedicated to fundamental numerical methods.

  • Monday, 16th of September, 2019:
    09:00 - 09:15 Opening
    09:15 - 10:30 Lecture: Timestepping for ordinary differential equations
    10:30 - 12:00 Programming exercise: Simulation of a spring-mass system; simulation of a multi-body system
    13:00 - 14:30 Lecture: Timestepping methods for special applications
    14:30 - 16:00 Programming exercise: energy-conserving timestepping
  • Tuesday, 17th of September, 2019:
    09:00 - 10:30 Lecture: Higher-order methods
    10:30 - 12:00 Programming exercise: Quadrature and Romberg quadrature applied to the normal distribution
    13:00 - 14:30 Lecture: Runge-Kutta methods and multi-step methods for ordinary differential equations
    14:30 - 16:00 Programming exercise: Simulation of a multi-body system, simulation of a predator-prey system
  • Wednesday, 18th of September, 2019:
    09:00 - 10:30 Lecture: Finite difference methods for partial differential equations
    10:30 - 12:00 Programming exercise: Numerical treatment of the potential equation
    13:00 - 14:30 Lecture: LR decomposition and BLAS
    14:30 - 16:00 Programming exercise: Solving the two-dimensional potential equation with band matrices and BLAS
  • Thursday, 19th of September, 2019:
    09:00 - 10:30 Lecture: Method of lines for the heat equation and the wave equation
    10:30 - 12:00 Programming exercise: Simulation of the wave equation with the method of lines and Runge-Kutta or Crank-Nicolson timestepping
    13:00 - 14:30 Lecture: Iterations
    14:30 - 16:00 Programming exercise: Nonlinear regression, more example of nonlinear equations
  • Friday, 20th of September, 2019:
    09:00 - 10:30 Lecture: Krylov methods for linear systems of equations
    10:30 - 12:00 Programming exercise: Two-dimensional wave equation with Crank-Nicolson and a CG solver
    13:00 - 14:30 Lecture: Non-local force fields
    14:30 - 16:00 Programming exercise: Two-dimensional wave equation with a multigrid solver

In the second week, we focus on how these numerical methods can be implemented efficiently on modern computers.

  • Monday, 23rd of September, 2019:
    09:00 - 10:30 Lecture: Multithreading and OpenMP
    10:30 - 12:00 Programming exercise: Parallel operations for two-dimensional grid functions
    13:00 - 14:30 Lecture: Tasks
    14:30 - 16:00 Programming exercise: Task-parallel LR factorization
  • Tuesday, 24th of September, 2019:
    09:00 - 10:30 Lecture: Vectorization (concepts, auto-vectorization)
    10:30 - 12:00 Programming exercise: Vectorized quadrature, vectorized linear algebra
    13:00 - 14:30 Lecture: Explicit vectorization (AVX, intrinsics)
    14:30 - 16:00 Programming exercise: Simulation of a many-body system
  • Wednesday, 25th of September, 2019:
    09:00 - 10:30 Lecture: Computing with graphics cards (CUDA)
    10:30 - 12:00 Programming exercise: Simulator of a many-body system with GPGPU acceleration
    13:00 - 14:30 Lecture: Streams, blocks, and shared memory
    14:30 - 16:00 Programming exercise: Quadrature with GPGPU acceleration, reduction operations
  • Thursday, 26th of September, 2019:
    09:00 - 10:30 Lecture: Message passing and MPI
    10:30 - 12:00 Programming exercise: Distributed two-dimensional grid functions
    13:00 - 14:30 Lecture: Collective communication
    14:30 - 16:00 Programming exercise: Two-dimensional domain decomposition methods
  • Friday, 27th of September, 2019:
    09:00 - 10:30 Lecture: Computing resources at the University's computing center
    10:30 - 12:00 Programming exercise: Using the systems of the computing center
    13:00 - 14:30 Closing remarks, discussion