VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.
Solving Partial Differential Equations in Parallel on GPUs I
Last Updated: 2026-06-01 11:30:36
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.
Learning Materials (Links)
- Main link
- Course website
General Information
- Language
- English
- Levels
- BSC , MSC
- Frequency
- Yearly recurring
Examination
- Type
- graded semester performance
Registration & Places
- Max Places
- 25
Course Components
| Type | Title | Time & Place | Hours |
|---|---|---|---|
| lecture with exercise | Solving Partial Differential Equations in Parallel on GPUs I |
|
3 h weekly |
Offered In
-
-
-
-
Wahlfächer (Von den angebotenen Wahlfächern müssen mindestens zwei Lerneinheiten erfolgreich abgeschlossen werden. Als Wahlfächer für Rechnergestützte Wissenschaften Master gelten automatisch (ohne Anrechnungsgesuch) auch alle Kernfächer/Vertiefungsfächer (aber nicht Wahlfächer!) aus folgenden Studiengängen: Informatik Master Mathematik Master Physik Master Elektrotechnik und Informationstechnologie Master Data Science Master Robotics, Systems and Control Master Statistik Master Neural Systems and Computation Master gemäss den angegebenen Abschnittsreferenzen.)
-
-
-