🎉 Welcome to ETH's **course 101-0250-00L** on solving partial differential equations (PDEs) in parallel on graphical processing units (GPUs) with the Julia programming language.

Announce:2022 edition starts Tuesday Sept. 20, 12h45. Welcome!

This course aims to cover state-of-the-art methods in modern parallel GPU computing, supercomputing and code development with applications to natural sciences and engineering.

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

Last modified: December 29, 2022. Website built with Franklin.jl and the Julia programming language.