|
Lecturer(s)
|
|
|
|
Course content
|
1.Introduction to parallel programming, programming for multiple core processors and multiple processor stations (cluster) 2.Profiling, code debugging, tools for identifying problem areas in the code 3.Basic optimization techniques I. (clarity of the program, an order of operations, memory allocation, problem detection, time and memory requirements) 4.Optimization techniques II. (Finding unnecessary parts of the code in the program, internal functions, optimization of for-end cycles) 5.Vectorization and parallelization of the program (Use of matrix calculus and elimination of cycles) 6. Programming in Python language 7. Numerical calculations on multiple core processors 8.Parallel programming on multiple core processors in the Python I programming language. 9.Parallel programming on multiple core processors in the Python II programming language. 10.Parallel programming on graphics units (GPU) 11.Parallel programming on GPU I. 12.Parallel programming on GPU II. 13.CUDA in Python programming language
|
|
Learning activities and teaching methods
|
Monologic (reading, lecture, briefing), Dialogic (discussion, interview, brainstorming)
- Preparation for laboratory work and processing of results
- 39 hours per semester
- Participation in classes
- 26 hours per semester
- Preparation for an exam
- 30 hours per semester
- Contact teaching
- 25 hours per semester
|
|
Learning outcomes
|
The aim of the course is to acquaint students with the general principles of optimization, vectorization and the basics of parallel programming for the processing of multimedia signals (acoustic, video, radar, etc.).
Students will gain an overview of parallel programming tools, along with an overview of programming techniques for parallel programming, which can be generally used in any programming language.
|
|
Prerequisites
|
The student must have basic knowledge of the Matlab system (operations with matrices, vectors, indexing, cycle programming).
|
|
Assessment methods and criteria
|
Oral examination, Written examination
During the semester and in the final exam, the student must understand the solved problems and the ability to work independently on the assigned problems, active participation in seminars. Specific requirements will be communicated to students by teachers in the first week of the semester.
|
|
Recommended literature
|
-
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.
|