nl en

High Performance Computing I


Admission requirements

Recommended prior knowledge

Proficiency in C/C++, Computer Architectures and Compiler Construction.


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 High Performance Architectures, Parallel Algorithms (Principles of Parallel Algorithm Design, Numerical Algorithms, Graph Algorithms, and Sorting Algorithms) and Existing High Performance Computing Paradigms.

Course objectives

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


The most recent timetable can be found on the students' website.

Mode of instruction

  • Lectures

Total hours of study: 168 hrs. (= 6 EC)
Lectures: 26:00 hrs.
Practical work: 70:00 hrs.
Self-study: 72 hrs.

Assessment method

  • Open book exam

  • Programming assignments in C/C++ and MPI

The teacher will inform the students how the inspection of and follow-up discussion of the exams will take place.

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.


Lecturer: prof.dr. Harry Wijshoff
See also: Course website