PředmětyPředměty(verze: 945)
Předmět, akademický rok 2023/2024
   Přihlásit přes CAS
Pokročilé programování v paralelním prostředí - NPRG058
Anglický název: Advanced Programming in Parallel Environment
Zajišťuje: Katedra softwarového inženýrství (32-KSI)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2020 do 2023
Semestr: zimní
E-Kredity: 6
Rozsah, examinace: zimní s.:2/2, Z+Zk [HT]
Počet míst: 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
Způsob výuky: prezenční
Způsob výuky: prezenční
Další informace: https://www.ksi.mff.cuni.cz/teaching/nprg058-web/pages/index
Garant: doc. RNDr. Martin Kruliš, Ph.D.
RNDr. Jakub Yaghob, Ph.D.
Prerekvizity : NPRG042
Anotace -
Poslední úprava: T_KSI (27.04.2015)
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.
Literatura -
Poslední úprava: T_KSI (01.05.2013)

James Reinders: Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism, O'Reilly

Benedict Gaster, Lee Howes, David R. Kaeli, Perhaad Mistry, Dana Schaa: Heterogeneous Computing with OpenCL, Morgan Kaufmann; 2 edition (November 27, 2012)

Shane Cook: CUDA Programming: A Developer's Guide to Parallel Computing with GPUs (Applications of GPU Computing Series)

OpenCL - Online Manual (http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/)

CUDA Online Documentation (http://docs.nvidia.com/cuda/index.html)

Sylabus -
Poslední úprava: T_KSI (27.04.2015)

V rámci předmětu budou studenti řešit následující problémy:

  • Plánování na vícejádrových systémech a NUMA systémech
  • Otázky synchronizace na vícejádrových CPU a víceprocesorových systémech
  • Otázka efektivity datových přenosů mezi přídavným zařízením (např. GPU) a hlavní pamětí
  • Vyvažování zátěže mezi CPU a přídavnými akcelerátory
  • Transformace problémů na datově paralelní úlohy a jejich mapování na GPU
  • Sdílený přístup do paměti, cache-aware programování a atomické operace na GPU
  • Řešení nehomogenních úloh na GPU (perzistentní vlákna, dynamický paralelismus)
  • Pouziti Xeon Phi zarizeni a hlavni rozdily mezi Intel MIC a GPU architekturami

 
Univerzita Karlova | Informační systém UK