|
|
|
||
|
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)
|
|
||
|
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)
|
|
||
|
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)
|