HPC2N
High Performance Computing Center North
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ö
Deadline for registration: 2020-10-27 CLOSED SINCE ALL SEATS ARE TAKEN! SEE BELOW FOR WAITING LIST!
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:
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.