High performance computing
General data
Course ID: | 1000-218bHPC |
Erasmus code / ISCED: |
11.3
|
Course title: | High performance computing |
Name in Polish: | Obliczenia superkomputerowe |
Organizational unit: | Faculty of Mathematics, Informatics, and Mechanics |
Course groups: |
(in Polish) Przedmioty obieralne na studiach drugiego stopnia na kierunku bioinformatyka Elective courses for Computer Science Elective courses: concurrent and distributed programming |
ECTS credit allocation (and other scores): |
6.00
|
Language: | English |
Type of course: | obligatory courses |
Short description: |
High Performance Computing (HPC) has a significant impact on the modern world, from numerical weather prediction to long-term climate simulations, or from in-silico protein folding models to simulations of galaxies. A modern supercomputer is composed of thousands of nodes, each equipped with multi-core processors and, often, thousands of cores on accelerators. These platforms need a new, distinct perspective on design and implementation of algorithms because of their huge scale, heterogeneity (accelerators and CPUs), relatively frequent failures and performance differences of orders of magnitude between the local and the remote memory. |
Full description: |
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. |
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” |
Learning outcomes: |
(in Polish) Wiedza 1. Zna techniki synchronizacji procesów i komunikacji międzyprocesowej w scentralizowanym i rozproszonym modelu programu współbieżnego [K_W04]. 2. Zna algorytmy wzajemnego wykluczania i uzgadniania w systemach rozproszonych [K_W05]. 3. Zna różne architektury stosowane do wysokowydajnego przetwarzania komputerowego. Umiejętności 1. Potrafi zastosować mechanizmy synchronizacji procesów i wątków w wybranych technologiach w zależności od architektury i możliwości konkretnego komputera [K_U06]. 2. Posługuje się nowoczesnymi technologiami rozpraszania i zrównoleglania obliczeń [K_U08]. 3. Ma umiejętności językowe w zakresie informatyki zgodne z wymaganiami określonymi dla poziomu B2+ Europejskiego Systemu Opisu Kształcenia Językowego, w szczególności: identyfikuje główne i poboczne tematy wykładów, pogadanek, debat akademickich, dyskusji, czyta ze zrozumieniem i krytycznie analizuje teksty akademickie, zabiera głos w dyskusji lub debacie naukowej, streszcza ustnie informacje, wyniki badań, opinie i argumenty autora zawarte w tekście naukowym [K_U14]. 4. Umie określać wydajność przetwarzania w zależności od architektury oraz zastosowanej topologii sieci. 5. Programowanie obliczeń równoległych dla różnych architektur. 6. Ocenianie efektywności algorytmów do przetwarzania równoległego. |
Assessment methods and 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. |
Classes in period "Summer semester 2023/24" (in progress)
Time span: | 2024-02-19 - 2024-06-16 |
Navigate to timetable
MO TU W LAB
TH FR WYK
LAB
|
Type of class: |
Lab, 30 hours
Lecture, 30 hours
|
|
Coordinators: | Krzysztof Rządca | |
Group instructors: | Adrian Naruszko, Krzysztof Rządca | |
Students list: | (inaccessible to you) | |
Examination: | Examination |
Classes in period "Summer semester 2024/25" (future)
Time span: | 2025-02-17 - 2025-06-08 |
Navigate to timetable
MO TU W TH FR |
Type of class: |
Lab, 30 hours
Lecture, 30 hours
|
|
Coordinators: | Krzysztof Rządca | |
Group instructors: | Tomasz Kanas, Adrian Naruszko, Krzysztof Rządca | |
Students list: | (inaccessible to you) | |
Examination: | Examination |
Copyright by University of Warsaw.