Lecturer(s)
|
-
Demko Jan, doc. Ing. Ph.D.
|
Course content
|
1. Classification of parallel computer architectures. Performance criteria. 2. Program code paralelization, shared memory paralelism. 3. Functional and data parallelism, threads, basic and structured forms of interaction. 4. Programming languages with a support for threads - means for parallelization: Java and C++ threads, Ada's tasks andrendez-vous. 5. Threading libraries, POSIX and WinAPI 6. Other than traditional means of concurrency code: OpenMP, Intel Threading Building Blocks and OpenCL (GPGPU). 7. Multiprocessor systems with distributed memory, MPDM and SPMD models. Communication parallelism & effects of physical network topology and virtual topology. 8. Tools for distributed computing - PVM. 9. Tools for distributed computing - MPI. 10. Grid Environment, Globus Toolkit. 11. Advanced techniques for speeding up a distributed computation. 12. Real-time systems. 13. Multithreading implementation on uniprocessor and symmetric multiprocessor.
|
Learning activities and teaching methods
|
Lecture supplemented with a discussion, Skills demonstration, Task-based study method, Seminar classes, Individual study
- Preparation for an examination (30-60)
- 104 hours per semester
- Graduate study programme term essay (40-50)
- 52 hours per semester
|
prerequisite |
---|
Knowledge |
---|
Fundamental knowledge of operating systems, KIV/ZOS. Knowledge of a language with thread support, or with a possibility to utilize threading functions of underlying operating system. Knowledge of a pointer language such as C is an advantage, KIV/PC. |
learning outcomes |
---|
To student, the course provides a body of knowledge that student can apply in development of parallel applications and in development of tools for development and runtime of parallel applications. The body of knowledge covers: - Parallel programming theory, program models - Means of interaction for processes and threads - Computational environments with shared and distributed memories - Means of Java and ADA programming languages, POSIX and WinAPI for SMP - Means of PVM and MPI for a distribute environment - Means for speed-up of a computation - Real-time systems |
teaching methods |
---|
Lecture supplemented with a discussion |
Task-based study method |
Skills demonstration |
Individual study |
Seminar classes |
assessment methods |
---|
Written exam |
Test |
Seminar work |
Individual presentation at a seminar |
Recommended literature
|
-
Andrews, Gregory R. Foundations of multithreaded, parallel, and distributed programming. Reading : Addison-Wesley, 2000. ISBN 0-201-35752-6.
-
Berman, Kenneth A.; Paul, Jerome L. Algorithms: sequential, parallel, and distributed. Boston : Course Technology, 2005. ISBN 0-534-42057-5.
-
Grama, Ananth. Introduction to parallel computing. 2nd ed. Harlow : Pearson, 2003. ISBN 0-201-64865-2.
-
Ježek, Karel; Matějovic, Přemysl; Racek, Stanislav. Paralelní architektury a programy. Plzeň : ZČU, 1997. ISBN 80-7082-322-4.
-
Skillicorn, David. Foundations of parallel programming. Cambridge : University Press, 1994. ISBN 0-521-45511-1.
|