PředmětyPředměty(verze: 996)
Předmět, akademický rok 2026/2027
   
Pokročilé programování v paralelním prostředí - NPRG058
Anglický název: Advanced Programming in Parallel Environment
Podoba výuky: přednáška+cvičení
Zajišťuje: Katedra distribuovaných a spolehlivých systémů (32-KDSS)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2025
Počet semestrů výuky: 1
Semestr: zimní
E-Kredity: 6
Rozsah, examinace: zimní s.:2/2, Z+Zk [HT]
Počet míst: neomezen
Maximální kapacita předmětu: neomezen
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: vyučován
Jazyk výuky: čeština, angličtina
Forma uskutečňování: prezenční
Další informace: https://teaching.mff.cuni.cz/nprg058-web/
Možnost opakovaného zápisu: 2 / 2 / 2 / 2
Garant: doc. RNDr. Martin Kruliš, Ph.D.
Vyučující: doc. RNDr. Martin Kruliš, Ph.D.
Prerekvizity : NPRG042
Anotace -
Praktický seminář, který přímo navazuje na přednášku Programování v paralelním prostředí, a který se zaměřuje na vybrané pokročilé aspekty paralelního programování. Cílem je podrobně seznámit studenty praktickou formou s komplikovanějšími problémy v oblasti programování víceprocesorových NUMA serverů a práce s přídavnými paralelními zařízeními, zejména pak GPGPU (CUDA) a Intel Xeon Phi. Bude předložena řada úloh, které studenti rozeberou společně na cvičení a následně vyzkouší naimplementovat v rámci domácích úkolů. Úlohy budou studentům opraveny a řešení budou podrobena kolektivní diskusi.
Poslední úprava: T_KSI (27.04.2015)
Podmínky zakončení předmětu -

Předmět je zakončen zápočtem a zkouškou, zápočet je podmínkou pro přístup ke zkoušce.

Zápočet se uděluje za splnění domácích úkolů ve stanovených termínech. V průběhu semestru budou studenti plnit tři domácí úkoly ze tří nosných témat. Studenti odevzdají svá řešení do fakultního úložiště GitLab a následně si vzájemně provedou code review. V rámci code review mají studenti možnost reagovat na připomínky a opravit svá řešení (počet oprav není omezen, ale očekává se vyřešení všech problémů v daném časovém termínu). Průběh review a oprav je monitorován vyučujícím, který v případě potřeby může do procesu zasáhnout. Na konci semestru bude vypsán finální domácí úkol, který musí studenti splnit před pokusem o zkoušku. Finální úkol vyhodnotí vyučující a v případě nedostatků jej vrátí studentovi k opravě (celkový počet oprav není omezen, ale může být fakticky omezen kapacitou vyučujícího).

Zkouška je ústní s písemnou přípravou. V případě většího počtu studentů si vyučující vyhrazuje možnost hodnotit pouze písemnou přípravu, zejména v případech, kdy jsou informace podané studentem zcela jasné a není třeba dalšího ústního vysvětlení.

Poslední úprava: Kruliš Martin, doc. RNDr., Ph.D. (02.09.2026)
Sylabus -

Předmět navazuje na předmět „Programování v paralelním prostředí“ (NPRG042) a předpokládá znalosti z něj. Studenti musí být schopni používat jazyk C++ na pokročilé úrovni.

V rámci předmětu se studenti seznámí s třemi pokročilými tématy z oblasti paralelního a distribuovaného programování s důrazem na pochopení detailních aspektů použitých architektur a nízkoúrovňových optimalizací:

1. Algoritmy bez zámků a vlastnosti paměťových modelů moderních CPU

2. Programování pro GPU a optimalizace v CUDA

3. Distribuované programování pro menší clustery s využitím MPI

Témata na sebe volně navazují a z každého z nich je vypracován samostatný domácí úkol. Závěrečný úkol pak vyžaduje spojení alespoň dvou technologií (např. MPI a CUDA) pro dosažení maximálního zrychlení.

Poslední úprava: Kruliš Martin, doc. RNDr., Ph.D. (02.09.2026)
 
Univerzita Karlova | Informační systém UK