Introduction to Parallel Programming with HPX

Research & Science Enterprises & SME
Introduction to Parallel Programming with HPX

Overview

The aim of this course is to introduce participants to the HPX library (http://stellar-group.org/libraries/hpx/ and https://github.com/STEllAR-GROUP/hpx and http://stellar-group.org/) and demonstrate how it can be used to write task based programs. The HPX library implements a lightweight threading model that allows both concurrent, asynchronous, parallel and distributed programming constructs to coexist within the same application with a consistent API based on C++ standards and using futures to synchronize between tasks.
The course is aimed at participants with a good understanding of C++. The material covered will include an introduction to the HPX programming model; asynchronous programming concepts, execution policies and executors; parallel algorithms using tasks (including the parallel STL); writing distributed applications with HPX; profiling and debugging and a final section introducing heterogeneous programming using targets for GPU devices.

Objective: The attendee will gain an understanding of the HPX library and task based programming in general.

Agenda & Content
Agenda & Content

First day:
09:00 - 09:30: Registration
09:30 - 11:00: Introduction to HPX - Part 1 (overview)
11:00 - 13:00: Introduction to HPX - Part 2 (API)
13:00 - 14:00: Lunch Break
14:00 - 15:30: Building HPX - CMake Options and Dependencies
15:30 - 17:30: Hello World! - Options and Running Applications
Second day:
09:00 - 10:30: Worked 2D Stencil Example - From Serial to Distributed
10:30 - 13:00: Resource Management and Performance Issues
13:00 - 14:00: Lunch Break
14:00 - 15:30: Debugging and Profiling HPX Applications

Prerequisites
Prerequisites

The attendee is expected to be confident with C++ syntax and the object oriented features of the language. Basic familiarity with templates is expected.

Language
Language

The course language is English.

Teacher
Teacher

 Thomas Heller, FAU Erlangen-Nuremberg; John Biddiscombe, CSCS.

Handouts

Handouts

All material (slides, example code) will be accessible online.

Registration

via online registration form

Deadline
Deadline

for registration is February 18, 2018.

Fee
Fee

Students without Diploma/Master: none
Members of German universities and public research institutes: none.
Members of universities and public research institutes within EU or PRACE-member countries: none.
Members of other universities and public research institutes: 120 EUR.
Others: 400 EUR.
(includes coffee breaks)

Organization

Travel Information and Accommodation

see our How to find us page.

PRACE PATC and bwHPC-C5

HLRS is part of the Gauss Centre for Supercomputing (GCS), which is one of the six PRACE Advanced Training Centres (PATCs) that started in Feb. 2012. The mandate for the PATCs is as follows: "The PRACE Advanced Training Centres will serve as European hubs of advanced, world-class training for researchers working in the computational sciences." (see D3.2.3)
This course is a PATC course, see also the PRACE Training Portal and Events. For participants from public research institutions in PRACE countries, the course fee is sponsored through the PRACE PATC program.

HLRS is also member of the Baden-Württemberg initiative bwHPC-C5.
This course is also provided within the framework of the bwHPC-C5 user Support

Local Organizer

Rolf Rabenseifner phone 0711 685 65530, rabenseifner@hlrs.de
Lucienne Dettki phone 0711 685 63894, dettki@hlrs.de
Jose Gracia phone 0711 685 87208, gracia@hlrs.de