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/01
Number of ECTS Credits Allocated6 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
Lectures:

Introduction to parallel systems. The message passing model. Point-to-point and collective communication. Message Passing Interface (MPI) - an example of a message passing systems.

Design of parallel algorithms - the methodology. Decomposition (domain, functional), communication analysis, agglomeration, mapping to processors. Load balancing techniques. Analysis and evaluation of parallel algorithms. Amdahl's law.

Technical classification of parallel (distributed) systems. Flynn's taxonomy. Architectures with distributed and shared memory. Interconnection subsystems of parallel computers.

Specific parallel programming on architectures with shared memory. Threads. OpenMP. Another models of parallel processing.

Distributed system, differences between parallel and distributed systems. Selected distributed concepts and algorithms.

Remote Procedure Calls. Principles, specifics and semantics of remote calls. RPC/XDR Standard.

Distributed object systems. Object request broker. Stub, skeleton, servant, object adapter. Implementation portability. Interface definition languages, language mappings. Passing by value and by reference, marshalling. CORBA and RMI architectures.

Advanced features of distributed object systems. Dynamic object activation (POA, RMI activators). Dynamic invocations (CORBA DII), interface repository. Dynamic Skeleton Interface. Asynchronous invocations. Naming service: CORBA Naming Service, RMI Registry. CORBA Services.

Enterprise JavaBeans. Application server, container and it's role, EJB components. Developer role's. Compoments types and lifecycle, persistance. Deployment descriptor.

Operation of distributed systems in intranets and Internet. Security of distributed systems.


Projects:

The students will program a parallel or distributed application based on one of the discussed middleware according to their preferences.


Computer labs:

L 1-2-3: Message Passing Interface (MPI)
L 4-5: OpenMP library.
L 6 Remote Procedure Call (RPC)
L 7 Common Object Request Architecture (CORBA)
L 8 Advanced CORBA
L 9 Remote Method Invocation (RMI)
L 10: Enterprise JavaBeans(EJB)
L 11: Project presentation
Semester project consultations throughout all labs.
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 exercises evaluationGraded credit100 (100)51
        ActivityOther task type40 20
        ProjectSemestral project60 25