Course syllabus

  • The course offers a series of introductory lectures on Python, GPU architecture, and programming tools to transfer a Python code to run on GPUs and assess its performance. In addition, lectures on numerical methods in computational mechanics are given, and how to use Chalmers eCommons computational resource Vera.
  • The course includes a large project (groups of 3-5 students), where the students will write or re-write a code and evaluate how it performs on GPU(s), and implement or suggest performance improvements.
  • 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

Learning objectives

General objectives for all Tracks courses are:

  • critically and creatively identify and/or formulate advanced architectural or engineering problems
  • master problems with open solutions spaces which includes to be able to handle uncertainties and limited information.
  • work in multidisciplinary teams and collaborate in teams with different compositions
  • orally and in writing explain and discuss information, problems, methods, design/development processes and solutions
Course specific:

After the course, the student should be able to

  • Analyse a solver for a problem in scientific computing and propose actions to make it run efficiently in parallel on GPUs
  • Convert a Python code to run efficiently on GPUs through the use of CuPy or Numba
  • Use profiling tools to identify bottlenecks and opportunities for speed-up of a code
  • Present and discuss the concepts of scaling and speed-up for a solver/problem

Examination

The course will be examined through active participation in the group project work. This is assessed partly by the supervisors during meetings, when presenting the group work at the mid and final seminars, and through the project report to be handed in.

Criteria for grading will be, that through individual contributions to the project work
3: Show a basic ability in relation to the learning goals listed above, including appropriate use of relevant terminology.
4: In addition to grade 3, use thorough profiling as a basis to propose improvements to a solver, i.e. identify code bottlenecks and how they could be overcome.
5: In addition to grade 4, show advanced usage for code improvement, e.g. through the use of kernel coding, improved memory streaming, multi-GPU parallelisation, or similarly.

Contact

Tracks management

Teachers

Course content

  • Lectures, first two weeks
    • Two introductory lectures and workshops on Python, GPU architecture, and programming tools to transfer a Python code to run on GPUs and assess its performance.
    • Lectures on numerical methods in computational mechanics are given
    • How to use Chalmers eCommons computational resource Vera.
  • Project
    • The teacher team will create groups by the start of week 3 
    • Project groups decides on their own meetings schedule, together with their supervisor from the teacher team
    • The students will write or re-write a code and evaluate how it performs on GPU(s), and implement or suggest performance improvement for either
      • a simple CFD/FEM solver
      • a Poisson solver
      • a wave propagation solver
      • a Lattice-Boltzmann (LB) solver
  • There will be a mid seminar where the group should present their project. The purpose is to help define the scope and tasks in the project, inspired what the others have planned
  • At the end, there will be a seminar where the project outcome will be presented
  • A written report is handed in

Link to the syllabus on Studieportalen.

https://www.chalmers.se/en/education/your-studies/find-course-and-programme-syllabi/course-syllabus/TRA220/?acYear=2026/2027

Some background and examples for the projects

Time table

For locations, see TimeEdit

    • 3 Nov 13.15-15.00. Workshop 1 on GPU. Hari Abram.
    • 5 Nov 13.15-15.00. Workshop 2 on GPU. Hari Abram. 
    • 9 Nov 13.15-15.00. Introduction to FEM, Fredrik Larsson
    • 10 Nov 13.15-15.00 Introduction to CFD. Lars Davidson.
    • 12 Nov 13.15-15.00 Using GPU on C3SE. Leonard Nielsen
    • 3 Dec  13.15-16.00. Mid-term workshop. Presentation of all student groups on status of the project
    • January, time to be decided. Final workshop. Presentation of all student groups. The time for the presentation should not exceed 15 minutes (excl questions)

Note: Bring a lap-top to the first lectures for the workshops. It is not necessary that your lap-top has a Nvidia graphics card, you may log into to remote desktops

 

Nvidia, CUDA, GPU

Changes made since the last occasion

  • Learning outcomes and grading criteria have been expanded and clarified
  • Introductory lectures pushed earlier to allow group formation and project work to start earlier

 

Course summary:

Course Summary
Date Details Due