The course introduces the basics of parallel programming with the message-passing interface (MPI) and OpenMP 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 Puhti and Taito. 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 Puhti. The course consists of lectures and hands-on exercises on parallel programming. 

Course will be given in the online form, lectures are given in the mornings (third day is exception with lectures also in the afternoon), and after that the participants can work on hands-on exercise on their own pace. During the self-study sessions a chat room will be provided for peer-to-peer learning and for assistance from lecturers.

Learning outcome

After the course the participants should be able to write simple parallel programs and parallelize existing programs with basic features of MPI or OpenMP. This course is also a prerequisite for the PTC course "Advanced Parallel Programming" in 2021.

Prerequisites and content level

The participants are assumed to have a working knowledge of Fortran and/or C programming languages. In addition, fluent operation in a Linux/Unix environment will be assumed.

The content level of the course is broken down as: beginner's - 60%, intermediate - 40%, advanced - 0%, community-targeted content - 0%.