Warning message

Submissions for this form are closed.

Heterogeneous computing with performance modelling, 2020-11-(04-05)

Heterogeneous computing with performance modelling

Modern high core count CPUs and accelerators, such as GPUs, have been shown to provide significant performance benefits in many different applications. However, for a novice, or even for a moderately experienced scientist or programmer, it is not always clear which applications could potentially benefit from these resources and which do not. For example, a Nvidia V100 GPU can perform artificial intelligence (AI) related computations in a fraction of the time it takes a regular CPU to perform the same computations but ill-informed OpenACC compiler pragma can actually make a code run slower. Why is this? When should one invest time in parallelization and/or GPU-acceleration? How much speedup can be expected with a given application?

Purpose: The main goal of this two-day online course is to start answering these questions. The course also covers the basics of GPU programming and aims to provide the necessary information for avoiding the most common pitfalls.

This HPC2N course is part of the PRACE Training courses.

Requirements: The course does not require any existing GPU programming knowledge but basic understanding of the C language and parallel programming are required for the hands-ons.

Date: 2020-11-04 and 2020-11-05 (two day course)
Time: 9:00-17:00 each day
Location: Online
Instructor: Mirko Myllykoski
Helpers: Pedro Ojeda-May, Birgitte Brydsö



Day 1:
09:00 - 09:05 Course information
09:05 - 09:30 Introduction to HPC2N (Birgitte)
09:30 - 09-45 First hands-ons
09:45 - 10:00 Coffee break (15 minutes)
10:00 - 12:00 GPU programming basic + hands-ons
12:00 - 13:00 Lunch break (60 min)
13:00 - 14:45 More GPU programming + hands-ons
14:45 - 15:15 Coffee break (30 minutes)
15:15 - 17:00 Hands-ons (more time for those who are beginners)

Day 2:
09:00 - 10:15 Performance modelling
10:15 - 10:45 Coffee break (30 minutes)
10:45 - 12:00 Hands-ons
12:00 - 13:00 Lunch break (60 min)
13:00 - 14:45 Advanced GPU programming + hands-ons
14:45 - 15:15 Coffee break (30 minutes)
15:15 - 17:00 Hands-ons (more time for those who are beginners)

Participation is free. Please make sure have an account at SUPR as well as at HPC2N if you want to participate in the hands-on part of the training. There will be a course project that can be used to run the examples in during the hands-on. If you don't have an account at SUPR and/or HPC2N, you will be contacted with further instructions for how to sign up.

Course project: As part of the hands-on, you will be given temporary access to a course project, which will be used for running the hands-on examples. There are some policies regarding this, that we ask that you follow:

  • You may be given access to the project before the course; please do not use the allocation for running your own codes in. Usage of the project before the course means the priority of jobs submitted to it goes down, diminishing the opportunity for you and your fellow participants to run the examples during the course. You can read more detailed information about the job policies at HPC2N here.
  • The course project will be open 1-2 weeks after the course, giving the participants the opportunity to test run examples and shorter codes related to the course. During this time, we ask that you only use it for running course related jobs. Use your own discretion, but it could be: (modified) examples from the hands-on, short personal codes that have been modified to test things learned at the course, etc.
  • Anyone found to be misusing the course project, using up large amounts of the allocation for their own production runs, will be removed from the course project.

The course uses computing resources provided by the Swedish National Infrastructure for Computing (SNIC) at HPC2N partially funded by the Swedish Research Council through grant agreement no. 2018-05973.


NOTE that the course may close registration early if all the seats get taken. Registration follows the "first come – first served" principle. Additional registrations will be added to a waiting list.

Please fill in the below form to sign up. All fields marked with * are required. ALL SEATS TAKEN! REGISTRATION CLOSED!

If you want to be added to a waiting list in case anyone cancels, then please send an email to bbrydsoe@hpc2n.umu.se with the following information:

1. Yes, I want to be put on the waiting list for the course: Heterogeneous computing with performance modelling
2. Name:
3. Organization:
4. E-mail:
5. Do you have a particular application in mind? (Yes/No. Which type if Yes)
6. Do you have experience in C programming? (A. No B. Yes, I can read C code C. Yes, I can modify C code. D. Yes, I can write C code. E. Yes, I am an experienced C programmer) NOTE: Basic understanding of the C language is required for the hands-ons.
7. Do you have experience in GPU programming? (A. No. B. Yes, I have taken a course and/or a tutorial. C. Yes, I have some GPU programming experience. D. Yes, I am an experienced GPU programmer)  The course does not require any existing GPU programming knowledge.
8. Have you used any of these/which? (CUDA, OpenCL, OpenACC, target pragma in OpenMP, Other way of doing GPU programming)
9. Do you know what these are (in the context of GPU programming)? (Thread, Atomic operation, Asynchronicity, Callback, SIMD, Compute unified device architecture, Tensor core, Warp, Thread block, Stream, nvcc, cuBLAS, cuFFT, cuDNN, Shared memory)
10. Do you know what BLAS is? (A. No. B. Yes, I am familiar with BLAS. C. Yes and I also know that is the difference between level 1, level 2 and level 3 routines)
11. Do you have an account at SUPR? (Yes/No)
12. Do you have an account at HPC2N? (Yes/No)

Most of the information is used to estimate the knowledge of the participants.

Updated: 2024-05-14, 14:17