JuliaCon 2022 (Times are UTC)

Teaching GPU computing, experiences from our Master-level course

In the Fall Semester 2021 at ETH Zurich, we designed and taught a new course: Solving PDEs in parallel on GPUs with Julia. We present technical and teaching experiences we gained: we look at our tech-stack CUDA.jl, ParallelStencils.jl and ImplictGlobalGrid.jl for GPU-computing; and Franklin.jl, Literate.jl, IJulia.jl/Jupyter for web, slides, and exercises. We look into the crash-course in Julia, teaching software-engineering (git, CI) and project-based student evaluations.


In the Fall Semester 2021 at ETH Zurich, we designed and taught a new Master-level course: Solving PDEs in parallel on GPUs with Julia.

We had prior experience in teaching workshops and individual lectures based on Julia, this was our first end-to-end Julia-based lecture course. It filled a niche at ETH Zurich, Switzerland: namely numerical GPU computing for the domain scientists.

Whilst we had great prior experience with the GPU tech-stack used (we're developing part of it), we had to learn much on the presentational tech-stack to create a website, slides and assignments. The presentation will focus on both the GPU-stack (CUDA.jl, ParallelStencils.jl and ImplictGlobalGrid.jl) and the presentation-stack (Literate.jl, Franklin.jl, IJulia.jl/Jupyter).

Co-authors: Mauro Werder¹ ² , Samuel Omlin³

¹ Swiss Federal Institute for Forest, Snow and Landscape Research (WSL) | ² ETH Zurich | ³ Swiss National Supercomputing Centre (CSCS)

The speaker's profile picture
Ludovic Räss

Geoscientist with strong interests in Julia, HPC, GPUs, and supercomputing. Applications to resolve multi-physics processes in ice dynamics and geodynamics across scales.

The speaker's profile picture
Samuel Omlin

Computational Scientist and responsible for Julia computing at the Swiss National Supercomputing Centre (CSCS), ETH Zurich

The speaker's profile picture
Mauro Werder

Glaciologist and Julia programmer