High-performance computing courses

To access and use supercomputers like Puhti and Mahti, you need to be able to work with text-based command line. This is a new challenge to many people more used to using graphical user interfaces like Windows and Mac OS. In many of our courses, we have "basic Linux skills" as a prerequisite. To help our course participants and users past this first barrier, we created this course. 

Before participating our courses with the basic Linux skills prerequisite, please go through this material and skill tests -this way you'll make sure you and other participants get the most out of the course!

Print screen of command line where the user is trying different commands and finally typing "help, what am I doing here?".


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%.