11 – 13 November 2020
Purpose of the course
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.