Skip to main content
Introduction to Parallel Programming

Introduction to Parallel Programming

This course gives an Introduction to Parallel Programming. Parallel programming is the breaking down of a larger problem into smaller steps, with instructions delivered to multiple processors that execute the necessary calculations in parallel.

On this course, you will explore the fundamentals of parallel programming using C, C++, Python, Fortran, Cuda/OpenCL or similar programming languages.

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 use Open Multi-Processing (OpenMP) for incremental parallelisation within a single multicore shared memory paradigm
  • Learn how to use the Message Passing Interface (MPI) message-passing standard to control communication between two processes, subroutines, or functions within a program
  • Get an introduction to the OpenMPI library project (used by TOP500 supercomputers), which aims to create a single world-class, open-source MPI implementation based on best practices
  • Learn how to express numerical problems in parallel programming paradigms, gaining an awareness of potential design and performance pitfalls in heterogeneous architectures 
  • Solve 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)

Course details

Ideal for people with some previous knowledge of IT and programming, the course is especially suitable for junior programmers who are just starting out in their careers. 

  • Some knowledge of C, C++, Fortran, Python, or similar is useful 
  • 5 weeks to complete
  • Time commitment ~4 hours weekly 
  • Self-paced 

Modules

  • Introduction to parallel programming
  • OpenMP
  • Message Passing Interface (MPI)
  • MPI Continued
  • Beyond OpenMP and MPI - GPU parallelisation

The course is delivered by the LECAD Laboratory at the University of Ljubljana, as part of its Partnership for Advanced Computing in Europe (PRACE). LECAD emphasises the teaching of parallel programming alongside leading European high-performance computing (HPC) centres. 

Training Offer Details

Digital technology / specialisation
Training opportunities
Learning Effort
Part time light
Self-paced
Yes
Duration Time
3 Months
Digital skill level
Geographic scope - Country
Austria
Belgium
Bulgaria
Cyprus
Target language
English
Field of education and training
Information and Communication Technologies (ICTs) not further defined
Database and network design and administration
Software and applications development and analysis
Is this course free
Yes
Credential offered
Learning Activity
Prerequisites
No
Upcoming course
No