Skip to content

Latest commit

 

History

History
171 lines (129 loc) · 4.91 KB

guide.rst

File metadata and controls

171 lines (129 loc) · 4.91 KB

Instructor's guide

This training material covers intermediate-level aspects of MPI programming.

Learning outcomes

  • Communicators, groups, derived datatypes
  • One-sided communication
  • Collective communication, blocking and non-blocking
  • MPI and threads

Tips

  • Append ?plain=1 to collapse the sidebar while presenting. Suggestion from Richard Darst.

Timing

Second iteration: 2022-06-14/17

Second iteration of this workshop was given as 4 x (almost) 4 hours, that is 4 half days. We ran the workshop in collaboration with Xin Li (PDC) and Pedro Ojeda May (HPC2N).

Day 1 - Tuesday 14 June 2022 – Communicators, groups, derived datatypes

9:00 - 9:10 Welcome and introduction to the training course
9:10 - 9:50 Communicators and groups
9:50 - 10:00 Break

10:00 - 10:40 ; Derived datatypes: pack-unpack 10:40 - 10:50 ; Break 10:50 - 11:30 ; Derived datatypes: ``MPI_Datatype`` 11:30 - 11:40 ; Break 11:40 - 12:20 ; Simple collective communication 12:20 - 12:30 ; Wrap-up

Day 2 - Wednesday 15 June 2022 - Collective communication (including nonblocking)

9:00 - 9:10 What did we cover yesterday?
9:10 - 09:55 Scatter and gather
9:55 - 10:05 Break

10:05 - 10:50 ; Generalized forms of gather 10:50 - 11:00 ; Break 11:00 - 12:10 ; Non-blocking point-to-point 12:10 - 12:20 ; Wrap-up

Day 3 - Thursday 16 June 2022 – Non-blocking and one-sided communication

9:00 - 9:10 What did we cover yesterday?
9:10 - 9:50 Non-blocking collective communication
9:50 - 10:00 Break

10:00 - 10:40 ; One-sided communication: concepts 10:40 - 10:50 ; Break 10:50 - 11:40 ; One-sided communication: functions 11:40 - 12:00 ; Wrap-up

Day 4 - Friday 17 June 2022 - MPI and threads

9:00 - 9:10 What did we cover yesterday?
9:10 - 10:00 One-sided communication: synchronization

10:00 - 10:10 ; Break 10:10 - 11:20 ; Introducing MPI and threads 11:20 - 11:30 ; Break 11:30 - 12:10 ; MPI and threads in practice 12:10 - 12:20 ; Wrap-up

First iteration: 2020-12-08/11

First iteration of this workshop was given as 4 x (almost) 4 hours, that is 4 half days.

We had two main 30-minutes lectures each day. Each lecture included type-alongs and was followed by ample time for questions and live-coding demos. Each day was concluded with exercises and a wrap-up.

Day 1 - Tuesday 8 December 2020 – Communicators, groups, derived datatypes

9:00 - 9:10 Welcome and introduction to the training course
9:10 - 10:30 Using communicators in applications and libraries

10:30 - 10:45 ; Break 10:45 - 11:25 ; Handling derived datatypes 11:25 - 12:20 ; Exercises 12:20 - 12:30 ; Wrap-up

Day 2 - Wednesday 9 December 2020 - Collective communication (including nonblocking)

9:00 - 9:10 What did we cover yesterday?
9:10 - 09:45 Simple collective communication
9:45 - 09:50 Break
9:50 - 10:25 Scatter and gather

10:30 - 10:35 ; Break 10:35 - 11:10 : Generalized forms of gather 11:10 - 11:20 ; Break 11:20 - 11:40 ; Non-blocking point-to-point communication 11:40 - 11:45 ; Break 11:45 - 12:20 ; Non-blocking collective communication 12:20 - 12:30 ; Wrap-up

Day 3 - Thursday 10 December 2020 – One-sided communication

9:00 - 9:10 What did we cover yesterday?
9:10 - 10:30 The whys and hows of remote memory access in MPI

10:30 - 10:45 ; Break 10:45 - 11:25 ; RMA and synchronization 11:25 - 12:20 ; Exercises 12:20 - 12:30 ; Wrap-up

Day 4 - Friday 11 December 2020 - MPI and threads

9:00 - 9:10 What did we cover yesterday?
9:10 - 9:40 Why use MPI threading?
9:40 - 9:50 Break
9:50 - 10:50 How does MPI support threading?

10:50 - 11:00 ; Break 11:00 - 11:30 ; Using fork-join parallelism with MPI 11:30 - 11:40 ; Break 11:40 - 12:10 ; Using tasking with MPI 12:10 - 12:20 ; Tips for hybrid MPI+OpenMP 12:20 - 12:30 ; Wrap-up