Warning message

Submissions for this form are closed.

Course: Task-based parallelism in scientific computing

Task-based parallelism in scientific computing

Abstract: The purpose of the course is to learn when a code could benefit from task-based parallelism, and how to apply it. A task-based algorithm comprises of a set of self-contained tasks that have well-defined inputs and outputs. This differs from the common practice of organizing an implementation into subroutines in that a task-based implementation does not call the associated computation kernels directly, instead it is the role of a runtime system to schedule the task to various computational resources, such as CPU cores and GPUs. One of the main benefits of this approach is that the underlying parallelism is exposed automatically as the runtime system gradually traverses the resulting task graph.

Content: The course mainly focuses on the task-pragmas implemented in the newer incarnations of OpenMP. Other task-based runtime systems, e.g., StarPU, and GPU offloading are briefly discussed.

Format: The course will be three half-days and comprises of lectures and hands-on sessions. This is an online-only course (Zoom).

Audience: This HPC2N course is part of the PRACE Training courses. It is open for academics and people who work at industry in PRACE member countries.

Materials: https://hpc2n.github.io/Task-based-parallelism/branch/spring2021/

Recordings: https://www.youtube.com/playlist?list=PL6jMHLEmPVLyVIp67mW1cRj0xbL-6iFMY


  • Basic knowledge of C programming language.
  • Basic knowledge of parallel programming.
  • Basic Linux skills.
  • Basic knowledge of OpenMP is beneficial but not required.

Date: 2021-05-(10-12)
Time: 9:00-12:00 each day
Location: Online through Zoom
Instructors: Mirko Myllykoski (mirkom@cs.umu.se)
Helpers: Birgitte Brydsö, Pedro Ojeda-May
Deadline for registration: 2021-05-01. Note: We may close registration earlier if the course fills up.


Day Content
Monday Introduction to HPC2N
Introduction to Kebnekaise
Introduction to task-based parallelism
Introduction to OpenMP
Tuesday OpenMP task basics (part 1)
OpenMP task basics (part 2)
Example: LU factorization
Wednesday Introduction to StarPU
Demonstration: Two-sided matrix algorithms
GPU offloading

Course project and accounts

Note that the hands-on will be done at HPC2N's systems, so for this you will need an account at SUPR and also at HPC2N. If you do not have such accounts, then you will be contacted about creating them.

Course project: As part of the hands-ons, 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.


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


Updated: 2021-04-27, 09:30