Introduction to Parallel Programming is a course delivered by the LECAD Laboratory at the University of Ljubljana, as part of PRACE (Partnership for Advanced Computing in Europe). The LECAD Laboratory emphasises the teaching of parallel programming alongside leading European HPC (high performance computing) centres.
Ideal for people with some knowledge of IT and programming already, the course is especially suitable for junior programmers, just starting out. Some knowledge of C, C++, Fortran, Python, or similar programming languages would be useful if you are interested in enrolling. The course takes 5 weeks to complete. You will need to dedicate around 4 hours of your weekly schedule to follow it. You can also start anytime and go at your own pace.
Themes and topics of this MOOC
Parallel programming is used to describe the process of breaking down one large problem into a series of small and clearly defined steps and actions. Instructions are delivered to multiple processors, who execute the calculations needed in parallel - and this is where the name comes from.
The course dives straight into the key points underpinning parallel programming using the following languages: C, C++, Python, Fortran, Cuda /OpenCL, etc. It covers fundamentals of parallel programming, covering OpenMP (Open Multi-Processing) and MPI ((Message Passing Interface). Learners will have an opportunity to test their knowledge towards the course's end via hands-on practical and interactive exercises. They will also explore hybrid and accelerated paradigms and understand how to control different aspects between two processes or programmes.
What will you learn?
The aim of this MOOC is to guide participants so that they become confident users in Open MP and MPI for parallel programming. You will also:
- Learn how to deploy Open MP within a single multicore shared memory paradigm and use MPI to control communication between two processes, or functions within a programme.
- Get an introduction to the OpenMPI library project, used by TOP 500 supercomputers, which aims to create a single world-class open source MPI implementation based on best practice
- Learn how to express numerical problems in parallel programming paradigms, gaining an awareness of potential design and performance pitfalls in heterogeneous architectures Get an introduction to hybrid and accelerated paradigms (Cuda, OpenCL).