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 at the Computer Science (MSc) student website.

You will find the timetables for all courses and degree programmes of Leiden University in the tool MyTimetable (login). Any teaching activities that you have sucessfully registered for in MyStudyMap will automatically be displayed in MyTimeTable. Any timetables that you add manually, will be saved and automatically displayed the next time you sign in.

MyTimetable allows you to integrate your timetable with your calendar apps such as Outlook, Google Calendar, Apple Calendar and other calendar apps on your smartphone. Any timetable changes will be automatically synced with your calendar. If you wish, you can also receive an email notification of the change. You can turn notifications on in ‘Settings’ (after login).

For more information, watch the video or go the the 'help-page' in MyTimetable. Please note: Joint Degree students Leiden/Delft have to merge their two different timetables into one. This video explains how to do this.

Mode of instruction

  • Lectures

Course load

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.


From the academic year 2022-2023 on every student has to register for courses with the new enrollment tool MyStudyMap. There are two registration periods per year: registration for the fall semester opens in July and registration for the spring semester opens in December. Please see this page for more information.

Please note that it is compulsory to both preregister and confirm your participation for every exam and retake. Not being registered for a course means that you are not allowed to participate in the final exam of the course. Confirming your exam participation is possible until ten days before the exam.

Extensive FAQ's on MyStudymap can be found here.


Lecturer: prof.dr. Harry Wijshoff
See also: Course website (to be announced)