Předmět je zaměřen na problematiku paralelního programování a distribuovaného zpracování dílčích procedur. Součástí předmětu je i rozbor komunikace a časové náročnosti jednotlivých procesů a odhad výkonnosti navržených paralelních procedur. Implementace studovaných metod je v programovacím jazyku JAVA a MATLAB.
Poslední úprava: Cejnar Pavel (12.09.2021)
The course covers the basics of parallel programming and distributed processing of computationally intensive tasks and procedures. The aim of the course is to analyze the process communication and time complexity of process subtasks with respect to design the procedures with optimized parallel performance. Implementation of the studied methods is predominantly in programming languages JAVA and MATLAB.
Poslední úprava: Cejnar Pavel (12.09.2021)
Podmínky zakončení předmětu (Další požadavky na studenta) -
Pro udělení klasifikovaného zápočtu je třeba úspěšně složit zkouškový test pokrývajícího praktické dovednosti studenta a úspěšné složit ústní zkoušku pokrývající teoretické znalosti studenta. Výsledná známka se určí podle dosažených bodů za docházku (max. 40 b, v odůvodněných případech lze nahradit zápočtovým testem), zkouškový test (max. 30 b) a ústní část zkoušky (max. 30 b).
Poslední úprava: Švihlík Jan (26.04.2018)
To complete the course, student must successfully pass an exam test covering the student's practical skills and pass the oral exam covering the theoretical knowledge. The final mark is determined by the points for attendance (max. 40 p, in selected cases can be replaced by the test), from the exam test (max. 30 p) and from the oral exam (max 30 p).
Poslední úprava: Švihlík Jan (26.04.2018)
Literatura -
Povinná:
Tvrdík, Pavel. Parallel algorithms and computing. Praha: Vydavatelství ČVUT, 2009, 200 s. ISBN 978-80-01-04333-2.
Doporučená:
Tim Peierls, Brian Goetz, Joshua Bloch, Joseph Bowbeer, Doug Lea, David Holmes. Java Concurrency in Practice. Upper Saddle River, U.S.A.: Pearson Education, 2006, 432 s. ISBN 978-0-13-270225-6.
Koubková, Alena, Pavelka, Jan. Úvod do teoretické informatiky. Praha: Matfyzpress, 2005, 123 s. ISBN 80-86732-52-5.
Herout, Pavel. Učebnice jazyka Java. České Budějovice: Kopp, 2011, 386 s. ISBN 978-80-7232-398-2.
Matoušek, Jiří, Nešetřil, Jaroslav. Kapitoly z diskrétní matematiky. Praha: Nakladatelství Karolinum, 2022, 448 s. ISBN 978-80-246-5084-5.
Dvořák, Václav. Architektura a programování paralelních systémů. Brno: VUTIUM, 2004, vii, 165 s. s. ISBN 80-214-2608-X.
Poslední úprava: Cejnar Pavel (26.06.2025)
Obligatory:
Tvrdík, Pavel. Parallel algorithms and computing. Praha: Vydavatelství ČVUT, 2009, 200 s. ISBN 978-80-01-04333-2.
Recommended:
Tim Peierls, Brian Goetz, Joshua Bloch, Joseph Bowbeer, Doug Lea, David Holmes. Java Concurrency in Practice. Upper Saddle River, U.S.A.: Pearson Education, 2006, 432 s. ISBN 978-0-13-270225-6.
Koubková, Alena, Pavelka, Jan. Úvod do teoretické informatiky. Praha: Matfyzpress, 2005, 123 s. ISBN 80-86732-52-5.
Herout, Pavel. Učebnice jazyka Java. České Budějovice: Kopp, 2011, 386 s. ISBN 978-80-7232-398-2.
Matoušek, Jiří, Nešetřil, Jaroslav. Kapitoly z diskrétní matematiky. Praha: Nakladatelství Karolinum, 2022, 448 s. ISBN 978-80-246-5084-5.
Dvořák, Václav. Architektura a programování paralelních systémů. Brno: VUTIUM, 2004, vii, 165 s. s. ISBN 80-214-2608-X.
Poslední úprava: Cejnar Pavel (26.06.2025)
Metody výuky -
Přednášky a cvičení.
Poslední úprava: Pátková Vlasta (20.04.2018)
Lectures and courses.
Poslední úprava: Pátková Vlasta (20.04.2018)
Sylabus -
1. Distribuované a paralelní zpracování dat, paralelizace na vícejádrových procesorech. Softwarové možnosti optimalizace úloh.
2. Jednoduché synchronizační operace a blokující synchronizační prvky.
3. Modelové problémy synchronizace. Podpora synchronizace v programovacím jazyku.
4. Základní pojmy z asymptotické paralelní složitosti a jejich aplikace. Výpočetní model PRAM.
5. Složitost rekurzivního zpracování a paralelizace rekurzivních úloh. Paralelizace násobení matic.
6. Paralelní třídící algoritmy.
7. Algoritmus paralelního prefixového součtu a jeho aplikace (paralelní sčítání, RadixSort, SPPS).
8. Paralelizace grafových algoritmů a algoritmy lineární algebry.
9. Distribuované zpracování a vzájemná komunikace. Vzdálené zpracování procedur.
10. Současné hardwarové architektury používané pro paralelní zpracování dat.
11. STUDIE podpory distribuovaných a paralelních výpočtů: MATLAB.
12. STUDIE podpory distribuovaných a paralelních výpočtů: Python, C++, GPU programming.
13. Pokročilé techniky při paralelizaci úloh, optimalizace distribuovaného a paralelního zpracování dat.
Poslední úprava: Cejnar Pavel (04.09.2023)
1. Distributed and parallel data processing, parallelization on multicore computer processors. Software optimization of computer procedures.