Poslední úprava: Cejnar Pavel RNDr. Mgr. Ph.D. (12.09.2021)
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 RNDr. Mgr. Ph.D. (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.
Výstupy studia předmětu -
Poslední úprava: Cejnar Pavel RNDr. Mgr. Ph.D. (12.09.2021)
Studenti budou schopni:
Rozlišovat, zda je snadné paralelizovat danou úlohu.
Navrhnout efektivní postup paralelizace úlohy či výpočtu a stanovit meze, kdy se urychlení skutečně projeví.
Navrhnout způsoby urychlení výpočtů pro hůře paralelizovatelné úlohy.
Poslední úprava: Pátková Vlasta (20.04.2018)
Students will be able to:
Distinguish whether it is easy to make given task or procedure parallel.
Design effective parallel procedures.
Propose other possible acceleration of calculations for tasks with hard parallelization.
Literatura -
Poslední úprava: Švihlík Jan doc. Ing. Ph.D. (25.04.2018)
D: Wilkinson, B., Allen, M.: Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Prentice Hall, 1999.0-13-671710-1.
D: Dvořák, V.: Architektura a programování paralelních systémů. Učební text FIT VUT v Brně, 2004. 80-214-2608-X.
Poslední úprava: Švihlík Jan doc. Ing. Ph.D. (25.04.2018)
R: Tvrdík, P.: Parallel Algorithms and Computing. ČVUT Praha, 2010. ISBN 978-80-01-04333-2.
A: Lea, D.: Concurrent Programming in Java: Design Principles and Pattern (2nd Edition). Prentice Hall, 1999. ISBN 978-0-201-31009-2.
A: Eckel, B.: Thinking in Java. Prentice Hall, 2006. ISBN 978-0131872486.
A: Patterson, A. D., Henessy, L. J.: Computer Organization and Design, Fourth Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design).Morgan Kaufmann, 2011. ISBN 978-0123747501.
A: Wilkinson, B., Allen, M.: Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Prentice Hall, 1999.ISBN 0-13-671710-1.
Studijní opory -
Poslední úprava: Pátková Vlasta (20.04.2018)
elektronické materiály jsou dostupné na http://moodle.vscht.cz/course/view.php?id=116
Java SE API Documentation, http://java.sun.com >> http://www.oracle.com/technetwork/java/index.html
elektronická nápověda a dokumentace k MATLAB Parallel Computing Toolbox, MATLAB Distributed Computing Server
Poslední úprava: Pátková Vlasta (20.04.2018)
electronic materials are available at http://moodle.vscht.cz/course/view.php?id=116 (in Czech language)
Java SE API Documentation, http://java.sun.com >> http://www.oracle.com/technetwork/java/index.html
electronic help and documentation for MATLAB Parallel Computing Toolbox, MATLAB Distributed Computing Server
Metody výuky -
Poslední úprava: Pátková Vlasta (20.04.2018)
Přednášky a cvičení.
Poslední úprava: Pátková Vlasta (20.04.2018)
Lectures and courses.
Sylabus -
Poslední úprava: Cejnar Pavel RNDr. Mgr. Ph.D. (04.09.2023)
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 RNDr. Mgr. Ph.D. (04.09.2023)
1. Distributed and parallel data processing, parallelization on multicore computer processors. Software optimization of computer procedures.
3. Model problems in synchronization. Synchronization support in programming language.
4. Asymptotic time and space complexity for parallel algorithms. PRAM parallel computation model.
5. Recursive procedures and their parallelization. Parallel matrix multiplication.
6. Parallel sort algorithms.
7. Parallel prefix sum algorithm and its applications (parallel addition, RadixSort, SPPS).
8. Parallelization of graph algorithms and linear algebra algorithms.
9. Distributed data processing and communications. Remote procedure call.
10. Current hardware architectures for parallel data computation.
11. CASE STUDY: Distributed and parallel data processing in MATLAB.
12. CASE STUDY: Distributed and parallel data processing in Python, C++, and using GPU.
13. Advanced parallelization techniques. Distributed and parallel processing optimization.
Studijní prerekvizity -
Poslední úprava: Mareš Jan doc. Ing. Ph.D. (18.06.2018)
žádné
Poslední úprava: Cejnar Pavel RNDr. Mgr. Ph.D. (09.06.2023)
Mathematics I or any equivalent subject
one subject in the topic of computer programming in any object oriented language (JAVA, Python, C++, MATLAB)
Podmínky zakončení předmětu (Další požadavky na studenta) -
Poslední úprava: Švihlík Jan doc. Ing. Ph.D. (26.04.2018)
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 doc. Ing. Ph.D. (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).