Parallel Programming Workshop (MPI, OpenMP and Advanced Topics)

Aug. 31: This course will be provided as ONLINE course (using Zoom). The prerequisits were clarified. Sep. 1, updated agenda for the ONLINE format.

(May 14: Due to corona virus we currently plan to provide this course as an ONLINE course (using Zoom). You may already register for that.)

Distributed memory parallelization with the Message Passing Interface MPI (Mon, for beginners):

On clusters and distributed memory architectures, parallel programming with the Message Passing Interface (MPI) is the dominating programming model. The course gives an introduction into MPI-1. Hands-on sessions (in C and Fortran) will allow users to immediately test and understand the basic constructs of the Message Passing Interface (MPI).

Shared memory parallelization with OpenMP (Tue, for beginners):
The focus is on shared memory parallelization with OpenMP, the key concept on hyper-threading, dual-core, multi-core, shared memory, and ccNUMA platforms. This course teaches shared memory OpenMP parallelization. Hands-on sessions (in C and Fortran) will allow users to immediately test and understand the directives and other interfaces of OpenMP. Race-condition debugging tools are also presented.

Intermediate and advanced topics in parallel programming (Wed-Fri):
Topics are advanced usage of communicators and virtual topologies, one-sided communication, derived datatypes,  MPI-2 parallel file I/O, hybrid mixed model MPI+OpenMP parallelization, parallelization of explicit and implicit solvers and of particle based applications, parallel numerics and libraries, and parallelization with PETSc. MPI-3.0 introduced a new shared memory programming interface, which can be combined with MPI message passing and remote memory access on the cluster interconnect. It can be used for direct neighbor accesses similar to OpenMP or for direct halo copies, and enables new hybrid programming models. These models are compared in the hybrid mixed model MPI+OpenMP parallelization session with various hybrid MPI+OpenMP approaches and pure MPI. Further aspects are domain decomposition, load balancing, and debugging.  Hands-on sessions are included on all days. This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves.

Hands-on sessions are included on all days. This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves.

Location

Online course
Organizer: HLRS, University of Stuttgart, Germany

Start date

Oct 12, 2020
08:30

End date

Oct 16, 2020
16:30

Language

English

Entry level

Basic

Course subject areas

Parallel Programming

Topics

MPI

OpenMP

Back to list

Program

see link to detailed program (preliminary)

Prerequisites and content levels

Prerequisites:

Unix / C or Fortran. For days 3-5, the first two beginners days or equivalent knowledge is required. If you register only for days 3-5, we reserve the right to send you a small test to check whether such participation on only days 3-5 is possible. 

To be able to do the hands-on exercises of this course, you need a computer with an OpenMP capable C/C++ or Fortran compiler and a corresponding, up-to-date MPI library (in case of Fortran, the mpi_f08 module is required). Please note that the course organizers will not grant you access to an HPC system nor any other compute environment. Therefore, please make sure to have a functioning working environment / access to an HPC cluster prior to the course. In case of questions, please contact the course organizer (see below). 

Please tar -xvzf TEST.tar.gz using https://fs.hlrs.de/projects/par/events/TEST.tar.gz  or unzip TEST.zip using https://fs.hlrs.de/projects/par/events/TEST.zip and verify your MPI and OpenMP installation with the tests described in TEST/README.txt within the archive.

Content levels:
  • Basic: 14 hours
  • Intermediate: 12 hours
  • Advanced: 10 hours 30 minutes
  • Community: 45 minutes

Learn more about course curricula and content levels.

Language

The course language is English.

Slides and Exercises for the ONLINE course

A few days before the course starts, you will receive pdf files from the slides and tar/zip files for installing the exercises on your system. 

An older version of this course with most of the material (including the audio information) can also be viewed in the ONLINE Parallel Programming Workshop

Registration

Registration is now closed.
Registrations with incorrect fee who are from outside EU or PRACE  or not from academia will be cancelled without further consultation.
Registrations only for the intermediate/advanced days will receive a short test in a few days prior to final acceptance.

Deadline

for registration is Sep. 27, 2020 (extended deadline).
Late registrations after the deadline are still possible but maybe with reduced quality of the handouts.

Fee

Students and academic participants within EU or PRACE-member-countries:

  • Monday-Tuesday, this is an HLRS course with following fees:
    Students without Diploma/Master: 30 EUR.
    Students with Diploma/Master (PhD students) at German universities: 60 EUR.
    Members of German universities and public research institutes: 60 EUR.  
    Members of other universities and public research institutes: 120 EUR.
    Others: see below. 
  • Wednesday-Friday, this course is sponsored by the PRACE PATC program, i.e., there is no course fee if you register only for Wednesday-Friday.


All other participants (i.e., not from academia, or from outside EU or PRACE):

  • This course is an HLRS course with following fees:
    Students without Diploma/Master: 40 EUR.
    Members of other universities and public research institutes: 360 EUR.
    Others: 960 EUR.


The course fee includes coffee breaks.
Registration link: see above.

Organization

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.
A part of this course is a PATC course (tbc), see also the PRACE Training Portal and Events. For participants from public research institutions in PRACE countries, the course fee is sponsored for this part of the course through the PRACE PATC program. For details, see the section about the course fee above.

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

Train the Trainer - TtT

In conjunction with this course, a Train the Trainer Program is provided. Whereas this regular course teaches parallel programming, the Train the Trainer Program is an education for future trainers in parallel programming. For further details, see here.

Contact

Rolf Rabenseifner phone 0711 685 65530, rabenseifner(at)hlrs.de
Khatuna Kakhiani phone 0711 685 65796, kakhiani(at)hlrs.de

Shortcut-URL & Course Number

http://www.hlrs.de/training/2020/PAR and http://www.hlrs.de/training/2020/TtT

and PATC web pages: http://events.prace-ri.eu/e/HLRS-2020-PAR  and  http://events.prace-ri.eu/e/HLRS-2020PAR-TtT
(The PATC web pages will be provided in August 2020)

Related training

All training

November 04 - December 06, 2024

Online (flexible)


November 11 - 15, 2024

Hybrid Event - Stuttgart, Germany


December 02 - 05, 2024

Online by JSC


January 13 - 31, 2025

Hybrid Event - Stuttgart, Germany


January 21 - 23, 2025

Hybrid Event - Stuttgart, Germany


February 17 - 21, 2025

Stuttgart, Germany


March 17 - 21, 2025

Dresden, Germany