nl en

Parallel Programming I


Admission requirements

Bachelor Computer Science, Proficiency in C/C++.


The main objective is to obtain an understanding of the various trade-offs when implementing parallel programs on High Performance Computer architectures. These trade-offs include among others: exploitation of data locality versus distribution of data over different memory modules, shared memory implementation versus distributed memory implementation, fine grain versus course grain parallel decomposition, communication overhead versus parallel efficiency.The course consists out of 4 parts: Introduction to Parallel Programming and Parallel Architectures, Parallel Algorithms (Principles of Parallel Algorithm Design, Numerical Algorithms, Graph Algorithms, and Sorting Algorithms), Existing Parallel Programming Paradigms, and New Parallel Programming Paradigms.

Course objectives

To obtain the necessary skills for programming High Performance Computers, including performance trade-offs and the efficient exploitation of the architectural characteristics of these High Performance Computers.


  • You have to sign up for classes and examinations (including resits) in uSis. Check this link for more information and class numbers.

Mode of instruction

  • Lectures

Assessment method

  • Open book exam

  • Programming assignments in C/C++ and MPI.

Reading list

Not applicable.


  • You have to sign up for courses and exams (including retakes) in uSis. Check this link for information about how to register for courses.

Contact information

Lecturer: prof.dr. Harry Wijshoff
Website: Parallel Programming I