Teaching GPU computing, experiences from our Master-level course

07/27/2022, 1:00 PM1:30 PM UTC
Blue

Abstract:

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.

Description:

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)

Platinum sponsors

Julia ComputingRelational AIJulius Technology

Gold sponsors

IntelAWS

Silver sponsors

Invenia LabsBeacon BiosignalsMetalenzASMLG-ResearchConningPumas AIQuEra Computing Inc.Jeffrey Sarnoff

Media partners

Packt PublicationGather TownVercel

Community partners

Data UmbrellaWiMLDS

Fiscal Sponsor

NumFOCUS