|
|
|
||
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.
Last update: Cejnar Pavel (12.09.2021)
|
|
||
Students will be able to:
Last update: Pátková Vlasta (20.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). Last update: Švihlík Jan (26.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. Last update: Švihlík Jan (25.04.2018)
|
|
||
Lectures and courses. Last update: Pátková Vlasta (20.04.2018)
|
|
||
1. Distributed and parallel data processing, parallelization on multicore computer processors. Software optimization of computer procedures. 2. Simple synchronization operations, blocking synchronization primitives. 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. Last update: Cejnar Pavel (04.09.2023)
|
|
||
Last update: Pátková Vlasta (20.04.2018)
|
|
||
Last update: Cejnar Pavel (09.06.2023)
|
Teaching methods | ||||
Activity | Credits | Hours | ||
Konzultace s vyučujícími | 0.1 | 2 | ||
Účast na přednáškách | 1 | 28 | ||
Práce na individuálním projektu | 0.5 | 14 | ||
Příprava na zkoušku a její absolvování | 1.4 | 40 | ||
Účast na seminářích | 1 | 28 | ||
4 / 4 | 112 / 112 |