Skip to main content

Practical Lab SS 24 Practical Lab Numerical Simulation

Scalable techniques for PDE solution

Under direction of
Prof. Carsten Burstedde

In this practical programming class we will study essential techniques for parallel numerical computation. This includes concepts of partitioning the data of a simulation between multiple processes, the simultaneous solution of subproblems on the individual processes, and the synchnonization and communication between processes. In practice, we will look into message passing implementations and discuss and build important building blocks found in large-scale simulation programs and software libraries.

In the language of numerical mathematics, we are investigating the programming of finite element methods with a special focus on parallelism, scalability and high performance computing.

Prerequisites: Scientific Computing I or equivalent.

Language: Students may program in any language that has an MPI implementation.

Topics:

  • Why parallel computing?
  • Basic ideas/techniques/constructs
  • Messaging/networking: what are the tools?
  • How to extend/modify known numerical algorithms?
  • Specifically: matrix application/assembly, solver
  • How to ensure serial-equivalent results?
  • What is scalability and how to achieve it?

Bonus:

  • Practical and fast adaptive mesh refinement
  • Selected bits from computational geometry

Students please email me directly to express your interest. I do expect we will have enough places for everyone. Date and location will be determined over the course of March 2024.