20-23 October 2020
Faculty of Mechanical Engineering, University of Ljubljana
Europe/Ljubljana timezone

Scientific Programme

Introduction to parallel programming (day 1-2)
This training course is focused on understanding the basics of parallel programming with the message-passing interface (MPI) and OpenMP parallel programming. The course consists of discussions, delivered through lectures and examples in the form of hands-on exercises. The topics covered are directly applicable to almost every parallel computer architecture.

Breaking down a larger problem into a series of smaller steps, delivering instructions, and deploying several processors to execute the calculations at the same time is the basis of a parallel programming process. It offers the same results as concurrent programming but in less time and with more efficiency. Many modern computers use this form of programming in their hardware to ensure that tasks are quickly completed in the background. Tasks that will be executed by the processors, and also how these tasks are to be synchronized and data exchange have to be defined.

Message passing (MP) communication protocol controls communication between two processes, subroutines, or functions within a program. It is the key to models of concurrency and object-oriented programming. This course covers the standard for message passing, the Message Passing Interface (MPI). The standard defines the syntax and semantics of a core of library routines useful to a wide range of users writing portable message-passing programs in C, C++, and Fortran.

OpenMP is an open source Message Passing Interface (MPI) library project used by many TOP500 supercomputers. Open MPI aims to use the best ideas and technologies from the individual projects and create one world-class open-source MPI implementation that excels in all areas.

The course is delivered in an intensive two-day format using UL-FME’s training facilities. It is taught using a variety of methods including formal lectures, practical exercises, programming examples and informal tutorial discussions. 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.

This is part of Slovenian EuroHPC Competence Centre training event.

Parallel programming with MPI / OpenMP (day 3-4)
This training course covers advanced parallel programming with the message-passing interface (MPI) and OpenMP parallel programming. The course consists of discussions, delivered through lectures and examples in the form of hands-on exercises. The topics covered are directly applicable to almost every parallel computer architecture. Participants are advised to obtain basic knowledge of parallel programming prior to the course.

To exploit large massively parallel cluster paradigms OpenMP is used. Moreover OpenMP standards are evolving including new ideas and features to become increasingly effective in new machines. This gives developers of HPC applications a smooth path of evolution of their applications without having to deal with heavy re-factoring to take up new technologies.

The 2-day course will cover topics including parallelism, OpenMP tasks, the OpenMP memory model, performance tuning, hybrid OpenMP + MPI and OpenMP implementations. The course is aimed at programmers seeking to deepen their understanding of OpenMP.

The course is delivered in an intensive format using UL-FME’s training facilities. It is taught using a variety of methods including formal lectures, practical exercises, programming examples and informal tutorial discussions. After the course the participants should be able to write more efficient OpenMP programs.

This is a PRACE training event. It is organized by LECAD Laboratory, University of Ljubljana, Slovenia.

Content level:
Beginners =                6:48h                (40%)

Intermediate =            6:48h                (40%)

Advanced =                3:24h                (20%)

(Please note that the content levels refer to the originally planned face-to-face course.)

Target audience:
The target audience consists of postgraduate students and young researchers of natural and technical sciences, engineers from industry where supercomputing can be used as competitive advantage (automotive, electronic, material industry), logistics, etc.

Prerequisite knowledge:
For the hands-on sessions you should know how to work on the Unix/Linux command line, should be able to program in either C/C++ and have intermediate skills in programming with Python. Since the focus of the school is on parallelization, participants have to be familiar with the topic and must have basic knowledge in OpenMP and MPI.

Skills to be gained:
At the end of the course the student will be able to:
Understand the messagepassing model
Implement standard messagepassing algorithms in MPI.
Debug simple MPI codes.
Measure and comment on the performance of MPI codes.
Understanding of best practice for MPI+OpenMP programming.
Design and implement efficient parallel programs to solve regular-grid problems.

First part of this course (Day 1&2) is part of Slovenian EuroHPC Competence Centre training event. It is organized by LECAD Laboratory, University of Ljubljana, Slovenia.

The second part of this course is a PRACE training event. It is organized by LECAD Laboratory, University of Ljubljana, Slovenia.PRACE training centre.

Participation is free of charge! In case of too many registrations (over 70) we will make a selection of registrants.

In light of COVID-19 situation, this will be an online event.