Skip to main content
Skip header

Parallel and Distributed Systems

* Exchange students do not have to consider this information when selecting suitable courses for an exchange stay.

Course Unit Code460-2028/03
Number of ECTS Credits Allocated4 ECTS credits
Type of Course Unit *Optional
Level of Course Unit *First Cycle
Year of Study *Third Year
Semester when the Course Unit is deliveredSummer Semester
Mode of DeliveryFace-to-face
Language of InstructionCzech
Prerequisites and Co-Requisites Course succeeds to compulsory courses of previous semester
Name of Lecturer(s)Personal IDName
KRO080prof. Ing. Pavel Krömer, Ph.D.
Summary
The course provides basic orientation in the field of parallel and distributed systems. Both the multiprocessor architectures and the
distributed computing frameworks are introduced, together with techniques of their utilization from the programmer's perspective. Moreover the subject gives an overview of modern object-oriented distributed systems, their applications and interoperatibility, and it introduces the latest trends in the field of parallel and distributed systems.
Learning Outcomes of the Course Unit
The objective of the course is to provide the students with a survey in parallel and distributed architectures, to teach them basic methods of problem decomposition, to master selected techniques necessary for the development of parallel applications and to get acquainted with the current technologies for the design of applications based on distributed objects.
Course Contents
1. Introduction into parallel and distributed computing. Parallelism and pseudoparallelism, processes, threads.
2. Classification of parallel and distributed systems. Flynn's taxonomy. Shared and distributed memory systems.
3. Programming for shared memory systems. OpenMP, C++11, Cilk Plus, Thread Building Blocks.
4. Other up-to-date parallel processing models for shared memory systems. Programming languages Go, Rust. Parallelism in Python.
5. Distributed memory systems. Interconnect networks and their properties.
6. Message passing interface (MPI). Point-2-point and collective communication.
7. Task/channel model of parallel computing. Message queues, Message Oriented Middleware (MOM). Posix queues.
8. Distributed shared memory, Partitioned Global Address Space (PGAS) model. Programming languages Unified Parallel C (UPC) and UPC++.
9. Parallel Matlab and R. Language for distributed computing Julia.
10. General purpose graphic cards for parallelization/acceleration of computing.
11. Cloud computing. Map-Reduce model and frameworks Hadoop, Spark, and Flink.
12. Web services and their use for distributed computing. Remote procedure call. Architectural style Representational State Transfer (REST).
13. TensorFlow and its use. Application framework Caffe2.
14. Parallel and distributed methods for Big Data processing.
Recommended or Required Reading
Required Reading:
Foster, I.: Designing and Building Parallel Programs. Addisson-Wesley, 1995
Colouris, G., Dollimore, J., Kindberg, T.: Distributed Systems. Addison-Wesley, 2005
Foster, I.: Designing and Building Parallel Programs. Addisson-Wesley, 1995
Zelený, J., Nožička, J.: COM+, CORBA, EJB. BEN - technická literatura, Praha 2002. ISBN 80-7300-057-1
Recommended Reading:
Wilkinson, B., Allen, M.: Parallel Programming. Prentice Hall, 1999
Hughes, C., Hughes, T.: Parallel and Distributed Programming Using C++. Addison-Wesley, 2004
Object Management Group: The Common Object Request Broker: Architecture and Specification. Object Management Group (http://www.omg.org)
Foster, I.: Designing and Building Parallel Programs. Addisson-Wesley, 1995
Grygárek, P.: Sylaby předmětu Distribuované objektové systémy
Object Management Group: The Common Object Request Broker: Architecture and Specification. Object Management Group (http://www.omg.org)
Sun Microsystems: Remote Method Invocation. http://www.javasoft.com
Sun Microsystems: Enterprise JavaBeans. http://www.javasoft.com
http://www.cs.vsb.cz/~gry72/dosy/dosys.html
Motyčková, L.: Distribuované systémy - výpočty v sítích. Science 1997.
Janeček, J.: Distribuované systémy. Skriptum ČVUT, Praha 2001
Planned learning activities and teaching methods
Lectures, Individual consultations, Tutorials, Project work, Other activities
Assesment methods and criteria
Task TitleTask TypeMaximum Number of Points
(Act. for Subtasks)
Minimum Number of Points for Task Passing
Graded creditGraded credit100 51