The goal of this course is to offer a practical approach to solve systems of differential equations in parallel on GPUs using the Julia programming language. Julia combines high-level language conciseness to low-level language performance which enables efficient code development. The Julia GPU applications will be hosted on a git-platform and implement modern software development practices.
Part 1 Introducing Julia & PDEs
The Julia language: hands-on
Solving physical processes: advection, reaction, diffusion & wave propagation
Spatial and temporal discretisation: finite-differences and explicit time-stepping
Software development tools: Git, Continuous Integration
Part 2 Solving PDEs on GPUs
Steady-state, implicit & nonlinear solutions
Efficient iterative algorithms
Parallel and GPU computing
Simulation performance limiters
Part 3 Projects
Multi-GPU computing and optimisations
xPU computing
Distributed computing
Advanced optimisations
Final projects
Solve a solid mechanics or fluid dynamics problem of your interest, such as:
the shallow water / ice equation
acoustic wave propagation, nonlinear diffusion
viscous flow or elastic deformation
viscous or elastic poromechanics
frictional heating
Navier-Stokes equations
Detailed content is available on ETHZ course catalogue
Course repository: https://github.com/eth-vaw-glaciology/course-101-0250-00
Ludovic Räss - ETHZ / WSL
Mauro Werder - WSL / ETHZ
Samuel Omlin - CSCS, ETHZ
Ivan Utkin - ETHZ / WSL
Teaching Assistant: Alexander Mandt