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)