Advanced Parallel and Distributed Systems Course

Level: Graduate level (for Master students)
Lecturers: Sashko Ristov and Hamid Faragardi
Semester: Winter 2018/2019
Institute: Informatik (70300)
Course ID: 703633
ProSeminar ID: 703634

Description of the course

Distributed systems are growing increasingly and becoming more popular every day as most of today’s computing systems are some kind of distributed systems. Cloud Computing and Internet of Things are two major and well-known examples which are built according to the distributed system concepts and principals. This shows the great importance of study and research on distributed systems from both academic and industrial perspectives.

A distributed system consists of multiple software components running on multiple computers that interact with each other to fulfill the mission of the system while being considered as a single system. The computing nodes of a distributed system can be physically close together (e.g. Cluster computing) or they can be widely distributed geographically (e.g., Cloud Computing). Such kinds of computing systems are that popular because of the major advantages over centralized systems such as Reliability and Scalability.


In this course, we will introduce different types of distributed systems in terms of both architecture and applications. You will learn concepts and methods used in new emerging distributed computing paradigms (such as Cloud Computing, Function as a Service, Containers, stream processing, data analytics) and will also practically apply the underlying techniques and methods. You will gain knowledge of the possibilities, challenges and limits of the modern distributed computing technologies (such as Open-Whisk, Fission or Snafu), data analytics and stream processing (e.g. Spark and Kafka) and distributed data repositories (such as IPFS). Additionally you will conduct a performance analysis on different run-time environments using these modern distributed computing technologies.

Topics covered in lectures
Distributed computer architectures; Peer-to-peer architectures, Cloud computing technologies; Resource management; Optimization of distributed applications; Scheduling algorithms; Function as a service; Distributed data repositories; Data analytics; Stream processing; Load balancing; performance metrics and performance analysis.

Topics covered in the proseminar
Cloud computing and virtualization technology, Function as a Service, Scheduling, Performance metrics and Performance analysis, Scalability, Distributed Data Repository, and Resource Management.