VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.

101-0250-00L 4 Credits BSC , MSC D-BAUG , D-INFK , D-MATH

Solving Partial Differential Equations in Parallel on GPUs I

VVZ CR 3.2

Last Updated: 2026-06-03 00:07:25

Abstract

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

Objective

When quantitative assessment of physical processes governing natural and engineered systems relies on numerically solving partial differential equations (PDEs), fast and accurate solutions require performant algorithms leveraging modern parallel hardware. The goal of this course is to offer a practical approach to solve systems of PDEs in parallel on graphics processing units (GPUs) using the Julia language. Julia combines conciseness of a high-level dynamic language with performance of a low-level compiled language which enables efficient code development. The course will be taught in a hands-on fashion, putting emphasis on you writing code and completing exercises. After completing this course, you will be able to efficiently implement numerical solutions of some important classes of PDEs on GPUs. You will learn the connection between PDEs and physical processes, such as heat conduction and acoustic wave propagation. You will adopt best practices in modern scientific computing, including version control, continuous integration, and unit testing. As a culminating task, you will develop, test, and optimise a parallel Julia code capable of simulating thermal porous convection in three dimensions across multiple GPUs, and successfully execute your software on a supercomputer.

Content

Part 1 - Solving partial differential equations - Learn the basics of the Julia language; - Learn how to solve PDEs describing diffusion, wave propagation and advection processes; - Implement efficient iterative algorithms; - Get started with software development tools: version control, documentation. Part 2 - Developing parallel algorithms on GPUs - Implement thermal porous convection; - Understand the practical challenges of parallel computing: multi-core CPUs and GPUs; - Learn about main simulation performance limiters; - Implement software development tooling: unit tests, continuous integration (CI). Part 3 - Developing distributed algorithms for multi-GPUs - Understand the practical challenges of distributed parallel computing; - Implement shared and distributed memory parallelisation; - Develop and optimise a numerical code for solving thermal porous convection in 3D; - Execute your code on a supercomputer. Note: there is a followup course in the following semester which applies the skills learned in this course in a guided, larger numerical project.

Resources

Lecture Notes

https://pde-on-gpu.vaw.ethz.ch

Literature

Links to relevant literature will be provided during classes.

General Information

Language
English
Levels
BSC , MSC
Frequency
Yearly recurring

Examination

Type
graded semester performance
The graded semester performance consists of: (1) the best 7 out of 8 weekly assignments completed during Parts 1 and 2 of the course, accounting for 60% of the final grade; and (2) a project conducted during Part 3, accounting for 40% of the final grade. Project submission includes code hosted in a git repository and accompanying documentation.

Registration & Places

Max Places
25

Course Components

Type Title Time & Place Hours
lecture with exercise Solving Partial Differential Equations in Parallel on GPUs I No time listed 3 h weekly

Offered In