Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2019/2020

Parallel and Distributed Programming

The course is not on the list Without time-table
Code Completion Credits Range Language
MI-PDP.16 Z,ZK 5 2P+2C Czech
Lecturer:
Tutor:
Supervisor:
Department of Computer Systems
Synopsis:

Due to the development of cloud, web, and communication technologies and due to the shift of the Moore law into parallelization of CPUs, parallel and distributed applications are becoming dominant. Students get acquainted with architectures of parallel and distributed computing systems and their models and with languages and environments for their programming. They learn the pattern designs for parallel and distributed programming and important parallel algorithms.

Requirements:

Basic sequential algorithmics, programming, the C/C++programming language, complexity theory, computer architecture and graph theory.

Syllabus of lectures:

1. Introduction into parallel and distributed programming

2. Introduction into OpenMP

3. Parallel algorithms for the state space search

4. Performance tuning in OpenMP

5. Parallel algorithms in OpenMP

6. Parallel sorting in OpenMP

7. Introduction into MPI

8. Parallel algorithms in MPI I

9. Distributed parallel architecture and interconnection networks.

10. Communication algorithms

11. Parallel algorithms in OpenMP/MPI II

12. MapReduce frameworks (principles, Hadoop, Spark,..)

Syllabus of tutorials:

1. Sequential algorithm implementation in C/C++.

2. Parallel algorithm implementation using OpenMP task parallel constructs.

3. Parallel algorithm implementation using OpenMP data parallel constructs.

4. Parallel algorithm implementation using MPI on cluster STAR.

5. Measurements of the parallel implementation performance

Study Objective:

Due to the development of cloud, web, and communication technologies and due to the shift of the Moore law into parallelization of CPUs, parallel and distributed applications are becoming dominant. Students get acquainted with architectures of parallel and distributed computing systems and their models and with languages and environments for their programming. They learn the pattern designs for parallel and distributed programming and important parallel algorithms.

Study materials:

[1] Mattson, T.G. - Sanders, B.A. - Massingill, B.L.: Patterns for Parallel Programming. Addison-Wesley Professional. 2004. 978-0321940780.

[2] Kumar, V. - Grama, A. - Gupta, A. - Karpis, G.: Introduction to Parallel Computing: Design and Analysis of Parallel Algorithms. Benjamin-Cummings. 1994. 0805331700.

[3] Miller, R. - Boxer, L.: Algorithms Sequential and Parallel: A Unified Approach. Pearson Education. 1999. 0130863734.

[4] Wilkinson, B. - Allen, M.: Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Prentice Hall. 1998. 0136717101.

[5] Jaja, J.: An Introduction to Parallel Algorithms. Addison-Wesley. 1992. 0201548569.

Note:
Further information:
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2019-09-23
For updated information see http://bilakniha.cvut.cz/en/predmet4643006.html