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-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
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
-
-
-
-
Electives (In the ‘electives’ subcategory, at least two course units must be successfully completed. All courses listed as core courses (not electives) for one of the following ETH MSc programmes, MSc Statistics, MSc Physics, MSc Computer Science, MSc (Applied) Mathematics, MSc Neural Systems and Computation, MSc Robotics, Systems, and Control, MSc Data Science, MSc Electrical Engineering and Information Technology, can be taken as an elective course in the MSc CSE without prior permission.)
-
-
-