Please note that this course description is preliminary. The final course description will be released in June 2020.
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.
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
Total hours of study: 168 hrs. (= 6 EC)
Lectures: 26:00 hrs.
Practical work: 70:00 hrs.
Self-study: 72 hrs.
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.
- You have to sign up for courses and exams (including retakes) in uSis. Check this link for information about how to register for courses.