|
Vyučující
|
|
|
|
Obsah předmětu
|
1.Úvod do paralelního programování, programování pro více jádrové procesory a více procesorové stanice (cluster) 2.Profilování, ladění kódu, nástroje pro zjištění problematických míst v kódu 3.Základní optimalizační techniky I. (přehlednost programu, pořadí operací, alokace paměti, zjištění problému, časová a paměťová náročnost) 4.Optimalizační techniky II. (Hledání zbytečných částí kódu v programu, vnitřní funkce, optimalizace cyklů for-end) 5.Vektorizace a paralelizace programu (Využití maticového počtu a eliminace cyklů) 6.Programování v jazyce Python 7.Numerické výpočty na více jádrových procesorech 8.Paralelní programování na více jádrových procesorech v programovacím jazyce Python I. 9.Paralelní programování na více jádrových procesorech v programovacím jazyce Python II. 10.Paralelní programování na grafických jednotkách (GPU) 11.Paralelní programování na GPU I. 12.Paralelní programování na GPU II. 13.CUDA v programovacím jazyce Python
|
|
Studijní aktivity a metody výuky
|
Monologická (výklad, přednáška, instruktáž), Dialogická (diskuze, rozhovor, brainstorming)
- Příprava na laboratorní měření, zpracování výsledků
- 39 hodin za semestr
- Účast na výuce
- 26 hodin za semestr
- Příprava na zkoušku
- 30 hodin za semestr
- Kontaktní výuka
- 25 hodin za semestr
|
|
Výstupy z učení
|
Cílem předmětu je seznámit studenty s obecnými principy optimalizace, vektorizace a základy paralelního programování pro zpracovávání multimediálních signálů (akustických, obrazových, radarových atd.).
Studenti získají přehled v nástrojích pro paralelní programování, současně s přehledem programovacích technik paralelního programování, které lze obecně využít v libovolném programovacím jazyce.
|
|
Předpoklady
|
Student musí mít základní znalosti systému Matlab (operace s maticemi, vektory, indexace, programování cyklů).
|
|
Hodnoticí metody a kritéria
|
Ústní zkouška, Písemná zkouška
Student musí v průběhu semestru i při závěrečné zkoušce prokázat porozumění řešeným problémům a schopnost samostatně pracovat na zadaných problémech, aktivní účast na cvičeních. Konkrétní požadavky budou studentům sděleny vyučujícím v prvním týdnu semestru.
|
|
Doporučená literatura
|
-
LUTZ, Mark a David ASCHER. Naučte se Python. Praha: Grada. Pohotová příručka, 2003. ISBN 80-247-0367-X.
-
LUTZ, Mark a David ASCHER. Naučte se Python. Praha: Grada. Pohotová příručka, 2003. ISBN 80-247-0367-X.
-
Mathworks. Natick. MA: The Mathhworks, c1994-2019. 2019.
-
Mathworks. Natick. MA: The Mathhworks, c1994-2019. 2019.
-
PARKER, James. Python - An Introduction to Programming.. Herndon: Mercury Learning and Information., 2017. ISBN 978-1-9445346-5-3.
-
PARKER, James. Python - An Introduction to Programming.. Herndon: Mercury Learning and Information., 2017. ISBN 978-1-9445346-5-3.
-
SUH, Jung W. a Youngmin KIM. Accelerating MATLAB with GPU computing: a primer with examples.. Elseiver/Morgan Kaufman, 2014. ISBN 9780124080805.
-
SUH, Jung W. a Youngmin KIM. Accelerating MATLAB with GPU computing: a primer with examples.. Elseiver/Morgan Kaufman, 2014. ISBN 9780124080805.
-
TUAMANEN, Brain. Hands-On GPU Programming with Python and CUDA. Birmingham: Packt., 2018. ISBN 978-1-78899-391-3.
-
TUAMANEN, Brain. Hands-On GPU Programming with Python and CUDA. Birmingham: Packt., 2018. ISBN 978-1-78899-391-3.
|