Introduction to Parallel Programming with HPX

Vacancies available
CHF 160.00

The Swiss National Supercomputing Centre is pleased to announce that the "Introduction to Parallel Programming with HPX" course will be held from October 17-18, 2019 at CSCS in Lugano, Switzerland.


The aim of this course is to introduce the participant to the HPX library for parallelism and concurrency and enable them to write applications using HPX. The library offers a C++ standards conforming API for task based programming, this is introduced and explained in detail with examples of DAG creation using Futures. Integrating futures with CUDA code and distributed applications. Mixing single node HPX with existing MPI based code and using executors for task placement.

Target Audience

The course is intended for confident C++ programmers - HPX makes use of templates in its API and the HPX internals use template metaprogramming methods to achieve function dispatch. Some knowledge of these techniques is an advantage. User may be interested in attending both the C++ training course (Mon-Wed) and the HPX course (Thu-Fri) back to back.


- Dr. John Biddiscombe, CSCS
- Dr. Mikael Simberg, CSCS

Tentative Agenda

Thursday, October 17, 2019

09:00 - 10:30     Introduction to HPX part I - Concepts, Task-based programming
10:30 - 10:45     Break
10:45 - 12:15     Introduction to HPX part II - API in detail - Futures, Executors, Channels, Thread Pools, Distributed HPX
12:15 - 13:00     Lunch
13:15 - 14:45     Options and building HPX “Hello World”. Hands-on examples/exercises - Writing Continuations and getting Future-based apps running
14:45 - 15:00     Break
15:00 : 16:30      Advanced examples/exercises: distributed applications

Friday, October 18, 2019

09:00 - 10:30     Stencil example, from serial to parallel and distributed
10:30 - 10:45     Break
10:45 - 12:15     Debugging and profiling: practical tips and hands-on exercises
12:15 - 13:00     Lunch
13:15 - 14:45     Resource management: thread pools, HPX + MPI, hands-on exercises
14:45 - 15:00     Break
15:00 : 16:30      Advanced topics: CUDA. Future directions


All participants must register for the course. The registration fee includes coffee breaks and lunches throughout the two day course.

Course Fee: 160 CHF

Deadline for registration: Wednesday, October 9, 2019

Kindly note that the course can take place only if there are sufficient confirmed registrations received by the deadline. The minimum number of participants is 8.

Please contact John Biddiscombe (john.biddiscombe@cscs.ch) for questions related to the course content and reception@cscs.ch for questions related to the event logistics. 

Kindly note that no parking space is available at the Swiss National Supercomputing Centre. The closest bus stop to the centre is Lugano, Stadio. From Lugano railway station, you should take bus number 4 or 6.

Suggestions regarding travels and accommodation are available here.

You are encouraged to travel by public transportation. There is a Park & Ride Resega parking lot, within five minutes walk from CSCS.

We look forward to welcoming you at CSCS!