01 February 2022
Cancellation deadline:
16 January 2022
Thomas Sakoparnig, Rubén Cabezón, Aurélien Cavelan, Michael Mell, Wandrille Duchemin
Programming and Computing Techniques
Academic: 60 CHF
For-profit: 300 CHF

Next course(s):
14 Feb 2023 Streamed
12 Feb 2024 Streamed

This course is now full with a waiting list.


We currently live in an era where most computers possess multiple computing units, and where parallelization is key. In particular, GPGPUs (General Purpose Graphical Processing Units) are built for massive parallelism and they have recently risen to prominence as they are now used for many scientific tasks, such as physics or biological simulations, statistical inference or machine learning.

In this crash course we will focus on CUDA as well as several CUDA-based API, including openMP GPU offloading and python APIs. Through concrete examples we will describe the principles at the core of a successful parallelization attempt.


This course is intended for programmers and computational biologists who want to take their first steps with GPU programming.

We will assume no previous knowledge of GPU programming, CUDA, or parallelization techniques, but we require that the participant be proficient in at least one language among python or C++.

Learning outcomes

By the end of the course, the participant will be able to:

  • identify good candidates tasks for GPU accelaration
  • understand the structure of a GPU, including memory handling
  • perform some computations on a GPU, using either python or C++
  • manage memory transfers to the GPU for better performances
  • evaluate their GPU code using profiling


Knowledge / competencies

Participants should be comfortable working in a Linux/UNIX environment and have some basic experience in programming. Some knowledge of C/C++, Fortran or Python is necessary.


You are required to work on your own laptop with an internet connection. The computer you use for the practicals should be the same as the one you use to connect to the course zoom room (in order for us to help you debug your code during practicals).

Schedule - CET time zone

Tentative program

Morning 9:00 -12:00

  • Introduction: what is a GPU?
  • What problems can it solve? And how to use it?
  • First real life examples and practical

Lunch break : 12:00 - 13:00

Afternoon 13:00- 17:00

  • Real life examples, and random number generation on a GPU
  • Common pitfalls in GPU programming
  • Memory management on a GPU
  • GPU monitoring
  • Practical


This course is now full with a waiting list.

The registration fees for academics are 60 CHF and 300 CHF for for-profit companies.

You will be informed by email of your registration confirmation. Upon reception of the confirmation email, participants will be asked to confirm attendance by paying the fees within 5 days.

Applications will close as soon as the places will be filled up. Deadline for free-of-charge cancellation is set to 16/01/2021. Cancellation after this date will not be reimbursed. Please note that participation in SIB courses is subject to our general conditions.

Venue and Time

This course will be streamed online.

It will start at 9:00 and end around 17:00 CET.

Precise information will be provided to the participants before the course.

Additional information

Coordination: Diana Marek

You are welcome to register to the SIB courses mailing list to be informed of all future courses and workshops, as well as all important deadlines using the form here.

Please note that participation in SIB courses is subject to our general conditions.

SIB abides by the ELIXIR Code of Conduct. Participants of SIB courses are also required to abide by the same code.

For more information, please contact training@sib.swiss.