Course syllabus
- This is Tracks course. In this course, the students will learn how to write a simple CFD, FEM code, a Poisson solver or a wave propagation solver. The code should run entirely or partly on the GPU using CUDA. MSc and PhD students at Chalmers are welcome. Study period 2, 2024.
- The course does not belong to a specific Master programme but it is a cross disciplinary course.
- What is a Tracks course?
- The course fulfils sustainable development goals (SDGs) Goal 9: Industry, Innovation and Infrastructure
Nvidia, CUDA, GPU
- Nvidia has developed a programming interface for GPUs called CUDA
- CUDA In Action - Research & Apps
- Nvidia is very active in updating CUDA
- Many companies, such as Volvo Group, Volvo Cars use Nvidia Graphic Cards which are programmed in CUDA.
- Chalmers hosts a national GPU cluster
Tracks management
- Mikael Enelund, Director Tracks mikael.enelund@chalmers.se
- Kristina Henricson Briggs, Director Tracks kristina.henricson.briggs@chalmers.se
- Ingemar Josefsson, secretary of studies ingjose@chalmers.se
Teachers
- Rickard Bensow, rickard.bensow@chalmers.se
- Lars Davidson, lada@chalmers.se
- Fredrik Larsson, fredrik.larsson@chalmers.se
- Hari Abram, hariv@chalmers.se
Application
Course content
- Introduction lectures first week on CUDA programming including two mini-workshops.
- Project.
- the student groups write a simple CFD/FEM code or Poisson solver or wave propagation solver for the GPU. Ideally, each group includes students with knowledge in CFD, FEM, Poisson equation or wave propagation and using GPUs.
- Another option is a Lattice-Boltzmann project. The purpose of the project is to extend a CPU-based Lattice-Boltzmann fluid solver developed by Saab Aeronautics in Python to GPU. The CPU-version is utilizing the Numba Python package for parallelization, where the computational heavy routines are parallelized using shared memory. The Numba package supports GPU-parallelization and it should be straight forward to rewrite the necessary routines for full GPU-performance. The GPU-version will then be tested on a simple lid-driven cavity case. The supervisor is Magnus Carlsson at Saab Aeronautics (Email magnus.carlsson@chalmers.se, magnus.carlsson1@saabgroup.com)
- Here are examples of Python codes for Poisson, LaPlace, linear and non-linear convection, Burger's equation etc
- Here's an example of a simple Poisson solver (by lada) which can be used for working on Poisson solvers
- Here's an example of a vectorized Poisson solver (by lada) which can be used for working on Poisson solvers
- Here's an example of a finite volume code written in CUDU (by lada)
- Here are examples of student reports from the Track course 2022-2023
- Students who choose to do a CFD project may start with a CFD Python code (by lada) with a turbulence model or a simpler Navier-Stokes code
- profiling (GPU time, uploading/downloading data to/from the GPU etc)
- Written and oral presentation of the project
Time table. For locations, see TimeEdit
- 7 Nov 13.15-15.00. Workshop 1 on GPU. Hari Abram.
- 12 Nov 13.15-15.00 Introduction to CFD. Lars Davidson.
- 14 Nov 10.00-11.45. Introduction to FEM, Fredrik Larsson
- 14 Nov 13.15-15.00. Workshop 2 on GPU. Hari Abram.
- 19 Nov 13.15-15.00 Using GPU on C3SE. Leonard Nielsen
- 3 Dec 9.00-11.45. Mid-term workshop. Presentation of all student groups on status of the project
- 23 Jan 9,.00-11.45. Final workshop. Presentation of all student groups
Learning outcomes
General learning outcomes are found in the course description of TRA105 - Tracks advanced 1
Detailed learning outcomes
- be able to programme numerical solvers in Python
- be able to programme in CUDA
- be able to profile the programme
Course PM
The first lecture (including mini workshop) will take place on Thursday 7 Nov at 13.00-15.00 in Room SB3-L112 followed by another four lectures (see Time table above). The remaining of the course will mainly be project work and project meetings (once a week). The times for the meetings will be determined by each project group.
Please bring a lap-top to the first lecture. It is not necessary that your lap-top has a Nvidia graphics card.
A large part of the course will consist of a programming project. It should be on either FEM, CFD or solving a Poisson equation or the wave propagation equation. Please send an Email to lada@chalmers.se giving your preference. We will then form groups of 3-4 students.
We will arrange a mid-term meeting where the project groups will give a short presentation of the status of their project
At the end of the course (probably in the exam week), we will organize a workshop where all project groups will present their work. The project groups should also submit a report.
How to run on GPUs using Chalmers computers
Here you find information on how to use Chalmers computers.
You can register on the project C3SE 2023/2-15 and apply for an account here
Here you find a self-study Canvas course on how to use Vera cluster