[HYBRID] Introduction to MPI (EuroCC)

Europe/Prague
207 (ONLINE and onsite)

207

ONLINE and onsite

Description

Annotation

Message Passing Interface (MPI) is a dominant programming model on clusters and distributed memory architectures. This course is focused on its basic concepts. In particular, exchanging data by point-to-point and collective operations. Attendees will be able to immediately test and understand these constructs in hands-on sessions.

This course is based on a course developed by Rolf Rabenseifner from the High-Performance Computing Center Stuttgart (HLRS). His knowledge and material have been shared with various HPC training centres in Europe through the train the trainer program of HLRS, which is conducted annually.

Benefits for the attendees, what will they learn

After the course, attendees should be able to understand MPI applications and write their code.

Level

60% beginner, 40% intermediate

Language

English

About the tutor(s)

Ondřej Meca holds a Ph.D. degree in Computer Science from VSB - Technical University of Ostrava, Czech Republic. He is currently a member of the Infrastructure Research Lab at IT4Innovations National Supercomputing Center. His research interests include verifying parallel algorithms, developing pre/post-processing algorithms for large-scale engineering problems, and developing highly-scalable linear solvers.

Kristian Kadlubiak is a researcher at the INFRA lab of IT4Innovations National Supercomputing Center where he is responsible for designing and developing various acceleration and optimization techniques in the flagship application ESPRESO. He specializes in parallel and vector processing, accelerator offloading, and performance tuning in general. He holds a master's degree in embedded and computer systems from the Brno University of Technology where he is partially involved as a Ph.D. student. In his studies, he is developing modifications of the Local Fourier Basis (LFB) method to adapt it for efficient use on HPC systems.

Prerequisites

For the hands-on sessions, you should know how to work on the Unix/Linux command line and be able to program in either C/C++, Fortran, or Python.

Test

To run before the course
On the below link please find files that contain a simple test application to verify the installation of an MPI library (see the README file). All you need is a C, C++, or Fortran compiler and an up-to-date MPI library. Use the link based on your archiving application:
TEST.tar.gz
TEST.zip

Slides

The slides will be needed during the exercises. Please download it from the below link. The file contains internal references that work best with Acrobat.

slides

Exercises

Please also download examples that will be needed during the course. 

MPI31single.tar.gz 
MPI31single.zip

MPI standard

Message-passing interface standard version 4.0 can be downloaded from https://www.mpi-forum.org/docs/mpi-4.0/mpi40-report.pdf

Acknowledgments

This project has received funding from the European High-Performance Computing Joint Undertaking (JU) under grant agreement No 101101903. The JU receives support from the Digital Europe Programme and Germany, Bulgaria, Austria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, Greece, Hungary, Ireland, Italy, Lithuania, Latvia, Poland, Portugal, Romania, Slovenia, Spain, Sweden, France, Netherlands, Belgium, Luxembourg, Slovakia, Norway, Türkiye, Republic of North Macedonia, Iceland, Montenegro, Serbia. This project has received funding from the Ministry of Education, Youth, and Sports of the Czech Republic.

This course was supported by the Ministry of Education, Youth and Sports of the Czech Republic through the e-INFRA CZ (ID:90254).

    • 08:50 09:00
      Time to join the meeting, trouble shooting access to clusters, registration onsite
    • 09:00 09:10
      Welcome
    • 09:10 10:30
      Process model and language bindings
    • 10:30 10:45
      Coffee Break 15m
    • 10:45 12:00
      Messages and P2P communications 1
    • 12:00 13:00
      Lunch 1h
    • 13:00 13:30
      Messages and P2P communications 2
    • 13:30 14:30
      Non-blocking communication 1
    • 14:30 14:45
      Coffee Break 15m
    • 14:45 15:30
      Non-blocking communication 2
    • 15:30 16:00
      Fortran module
    • 09:00 10:30
      Collective communication
    • 10:30 10:45
      Coffee Break 15m
    • 10:45 12:00
      Groups and communicators
    • 12:00 13:00
      Lunch 1h
    • 13:00 14:30
      Derived datatypes
    • 14:30 14:45
      Coffee Break 15m
    • 14:45 16:00
      Best practices, advanced features