Introduction to Parallel Programming

Course/Event Essentials

Event/Course Start
Event/Course End
Event/Course Format
Online
Live (synchronous)

Venue Information

Country: Greece
Venue Details: Click here

Training Content and Scope

Scientific Domain
Technical Domain
Level of Instruction
Beginner
Sector of the Target Audience
Research and Academia
Industry
HPC Profile of Target Audience
Application Developers
Language of Instruction

Other Information

Supporting Project(s)
PRACE
Event/Course Description

The focus is to understand the basics of parallel programming with the message-passing interface (MPI) and OpenMP parallel programming paradigms. MPI is the dominant parallelization paradigm in high performance computing and enables one to write programs that run on distributed memory machines, such as the ARIS Greek supercomputer and other systems of the PRACE infrastructure. OpenMP is a threading based approach which enables one to parallelize a program over a single shared memory machine, such as a single node in ARIS. The course also contains performance and best practice considerations, e.g., hybrid MPI+OpenMP parallelization. The course ends with a section presenting profiling and code optimizations to understand the behavior and performance of parallelized codes.

The 3 day course consist of lectures and hands-on exercises on parallel programming. Hands-on sessions (in C and Fortran) will allow users to immediately test and understand the taught constructs of the Message Passing  Interface (MPI) and the shared memory directives of OpenMP. The course ends with a section presenting profiling and code optimizations to understand the behavior and performance of parallelized codes.

After the course the participants should be able to write simple parallel programs and parallelize existing programs with the basic features of MPI and/or OpenMP. Users should also be able to perform basic profiling and debugging of parallel applications.