Lecturer(s)
|
-
Lísal Martin, prof. Ing. DSc.
-
Fišer Jiří, Mgr. Ph.D.
-
Posel Zbyšek, doc. RNDr. Ph.D.
|
Course content
|
1. Principles and classification of parallel systems (Flynn's taxonomy, massively parallel systems, SMP). 2. Efficiency of parallelization (Amdahl's law, GustafsonBarsis' law). 3. Tasks and threads. Operating system support for parallelism. 4. Memory. Low-level access (caching). 5. OpenMP in C. 6. Practical application of OpenMP. 7. Parallel-LINQ and parallel tasks in C#. 8. Practical application of Parallel-LINQ. 9. OpenCL. 10. Practical application of OpenCL. 11. MPI. 12. Practical application of MPI. 13. Automatic parallelization.
|
Learning activities and teaching methods
|
unspecified
|
Learning outcomes
|
Introductory course in parallel programming is based on classification and description of parallel systems and their basic principles. The course is focused on SMP systems with shared memory using threads (OpenMPI, Parallel-LINQ), however both asymmetrical systems (GPGPU) and massive parallelism are presented as well. Parallel implementation of basic algorithms and operations are presented in seminars.
|
Prerequisites
|
unspecified
KI/PGL1
|
Assessment methods and criteria
|
unspecified
homework assignment Implementation of a parallel algorithm on at least two platforms with a benchmark and discussion on efficiency (based on the input parameters).
|
Recommended literature
|
-
Albahari J. C# 4.0 in a Nutshell: The Definitive Reference. O'Reilly Media, 2010. ISBN 978-0596800956.
-
AMD. OpenCL Zone.
-
Chandra R. Parallel Programming in OpenMP. Morgan Kaufmann, 2000. ISBN 978-1558606715.
-
Lísal M. Paralelní počítání. Univerzita J.E.Purkyně, 2006. ISBN 80-7044-784-2.
-
M. Lísal. Paralelní programování s aplikacemi. Ústí n. Lab., 2007.
-
Quinn M. Parallel Programming in C with MPI and OpenMP. McGraw-Hill, 2003. ISBN 978-0072822564.
|