Programming Workshop with MPI, OpenMP & Tools

→ Europe/Berlin
APB/E065 (Andreas-Pfitzmann-Bau)

APB/E065

Andreas-Pfitzmann-Bau

Nöthnitzer Str. 46 01187 Dresden
Description

The focus of this on-site workshop is on the programming models MPI and OpenMP. In practical exercises (in C, Fortran, and Python) you can immediately test and understand the basic constructs of the Message Passing Interface (MPI) and the shared memory directives of OpenMP (in C and Fortran). In the last part, you will learn how to use parallel programming tools for debugging and performance optimization. This course serves to provide academic training in computational science and also to facilitate academic exchange between the participants. It is organized by the ZIH in cooperation with the HLRS. (Content level: 35% for beginners, 40% intermediate and 25% advanced)

Speakers

  • MPI/OpenMP Days: Lucienne Dettki, Tobias Haas (HLRS)
  • Tools-Day: Bert Wesarg, Bill Williams, Noah Löwer (ZIH)

Agenda

  • Hardware architectures and parallel programming models
  • Parallel programming with the Message Passing Interface (MPI-3) and with OpenMP
  • Tools for performance optimization and parallel debugging

Handouts

Each participant will get access to the pdf of all slides.
The MPI-1 part of the course is based on the MPI course developed by the EPCC Training and Education Centre, Edinburgh Parallel Computing Centre.
An older version of this course with most of the material (including the audio information) can also be viewed in the Self-Study Materials.

Pre-Knowledge

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++ or Fortran or Python (NEW, most MPI exercises will also be available in Python+mpi4py+numpy).

Post-Knowledge

  • Apply MPI and OpenMP methods to parallelize your program codes.
  • Explain the main advantages and disadvantages of several tools for parallel debugging and performance optimization.
  • Design your program using methods of MPI communication and OpenMP synchronization that prevent deadlocks and ensure the correctness of the program.
  • Improve the scalability of your program by substituting non-scalable solutions with scalable approaches.

HPC-Certification Forum Links

Registration
Event Registration
0 / 30
    • 8:30 AM → 9:00 AM
      Registration & Welcome: Registration APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 9:00 AM → 9:15 AM
      Registration & Welcome: Welcome APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 9:15 AM → 12:30 PM
      MPI on Beginners Level: Lectures and Exercises on MPI APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 12:30 PM → 1:30 PM
      Lunch Break 1h Alte Mensa

      Alte Mensa

    • 1:30 PM → 6:00 PM
      MPI on Beginners Level: Lectures and Exercises on MPI APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 7:00 PM → 8:15 PM
      Social: Short Tour through the Old Town King Johann Memorial in Front of Semperoper

      King Johann Memorial in Front of Semperoper

      Theaterplatz, 01067 Dresden
    • 8:15 PM → 10:15 PM
      Social: Restaurant (self-paying) TBA

      TBA

    • 8:30 AM → 10:15 AM
      MPI on Beginners Level: Lectures and Exercises on MPI APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 10:15 AM → 12:30 PM
      Shared Memory Parallelization with OpenMP: Lectures and Exercises on OpenMP APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 12:30 PM → 1:30 PM
      Lunch Break 1h Alte Mensa

      Alte Mensa

    • 1:30 PM → 5:30 PM
      Shared Memory Parallelization with OpenMP: Lectures and Exercises on OpenMP APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 8:30 AM → 12:30 PM
      MPI on Intermediate Level: Lectures and Exercises on intermediate MPI APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 12:30 PM → 1:30 PM
      Lunch Break 1h Alte Mensa

      Alte Mensa

    • 1:30 PM → 4:30 PM
      MPI on Intermediate Level: Lectures and Exercises on intermediate MPI APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 4:30 PM → 5:30 PM
      C&Python only: Heat practical continued 1h APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 4:30 PM → 5:30 PM
      Fortran only: mpi_f08 module 1h APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 8:30 AM → 12:00 PM
      Debugging for Parallel Programming: Lectures and Exercises on Debugging Tools APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 12:00 PM → 1:00 PM
      Lunch Break 1h Alte Mensa

      Alte Mensa

    • 1:00 PM → 5:30 PM
      Performance Tools for Parallel Programming: Lectures and Exercises on Performance Tools APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 8:00 PM → 10:00 PM
      Social: Restaurant (self-paying) TBA

      TBA

    • 8:30 AM → 12:30 PM
      Advanced MPI: Lectures and Exercises on Advanced MPI APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 12:30 PM → 1:30 PM
      Lunch Break 1h APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 1:30 PM → 3:30 PM
      Advanced MPI: Lectures and Exercises on Advanced MPI APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden
    • 3:30 PM → 4:30 PM
      Shared memory parallelization with OpenMP: For OpenMP Users: OpenMP-4.0 / 4.5 / 5.0 Extensions APB/E065

      APB/E065

      Andreas-Pfitzmann-Bau

      Nöthnitzer Str. 46 01187 Dresden