High performance computing 1000-218bHPC
The goal of the course is to introduce the fundamental concepts (models, algorithms, and programming techniques) suitable for modern supercomputers. We will start with the parallel (shared-memory) systems. We will program accelerators in the massively-parallel model; and many-core processors in the task-based model. We will introduce the PRAM model to measure theoretical efficiency of the algorithms. We will then study distributed systems. We will show a message-passing programming model (MPI). To estimate efficiency, we will present the latency-bandwidth model. We will also show some fundamental approaches, models and algorithms for work partitioning, planning and scheduling: independent tasks, dependency graphs and divisible load.
Type of course
Course coordinators
Assessment criteria
- 2 projects
- participation in the class
- final exam
doctoral students: the student will be additionally asked to read a selected recent research paper on HPC (and their research area, if applicable); a chat with a lecturer about the article will be a part of the final exam.
Bibliography
- scientific papers (details given during the lectures)
- Ben-Ari “Principles of Concurrent and Distributed Programming”
- Casanova, Legrand, Robert ""Parallel Algorithms""
- Kirk, Hwu “Programming Massively Parallel Processors”
- Cormen, Leiserson, Rivest, Stein ""Introduction to Algorithms"", 1st edition (PRAM), 3rd edition (Cilk)
- Drozdowski, „Scheduling for Parallel Processing”
Additional information
Information on level of this course, year of study and semester when the course unit is delivered, types and amount of class hours - can be found in course structure diagrams of apropriate study programmes. This course is related to the following study programmes:
- Bachelor's degree, first cycle programme, Computer Science
- Master's degree, second cycle programme, Computer Science
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: