Academic year 2014-15
Advanced Distributed Systems
Degree: | Code: | Type: |
Bachelor's Degree in Computer Science | 23106 | Optional subject |
Bachelor's Degree in Telematics Engineering | 23110 | Optional subject |
Bachelor's Degree in Audiovisual Systems Engineering | 23114 | Optional subject |
ECTS credits: | 4 | Workload: | 100 hours | Trimester: | 2nd |
Department: | Dept. of Information and Communication Technologies |
Coordinator: | Jorge Lobo |
Teaching staff: | Jorge Lobo Windy Rankothge |
Language: | English |
Timetable: | |
Building: |
We are witnessing an explosion of devices that can connect us to each other and connect among themselves. This has created many opportunities to develop distributed network applications. These are applications where data and computation are distributed among many devices and where, in principle, all the devices send and receive data and benefit from the computation of the group. Complementary to this evolution we are also seeing how many computing services are moving to cloud environments. These are computational environments where computation is distributed into, many times, tens of thousands of computers to serve millions of users. Hence, it is becoming essential for any computer professional to have a good understanding of what it means to program in a distributed environment.
The goals of this course are to introduce students to some of the core foudational concepts in distributed computing and study different distributed algorithms. The emphasis will be on algorithms in which computational nodes communicate asynchronously exchanging messages. There will be lectures where algorithms will be introduced and student will able to solidify the concepts through several small and medium programming projects and exercises.
Students must have knowledge of basic graph concepts such as the ones covered in “Linear Algebra and Discrete Mathematics”, understanding of asymptotic complexity analysis notation as is covered in “Programming Fundamentals”, as well as programming skills as the ones covered in “Data Structures and Algorithms” and in “Development of Distributed Applications” or “Protocols and Distributed Applications”.
Cross-disciplinary competences |
Specific competences |
Instrumental
Interpersonal
Systematic
|
|
There will be a midterm evaluation and final exam as well as homework activities which will include programming projects and exercises.
Distribution of grade:
Homework 30%
Midterm 30%
Final 40%
Students must get at least half of the total portion of the homework to pass the class.
Preliminaries
Motivation: Routing/Broadcasting/Multicasting/Skype/File Sharing, Fault tolerance, ZooKeeper, Hadoop - NLP
Our computational model: General overview of distributed computation, Asynchronous computational model using message passing, Clocks, Safety and liveness
Notions of computational complexity in distributed algorithms
Waves
Deadlock/Termination detection
Leader elections
Spanning trees
Anonymous networks
Synchronization
Distributed Hash tables
MapReduce
Classroom hours |
Estimated Off-classroom hours |
Assessment Activity |
|||
Large group |
Medium-size groups |
Small groups |
|||
Preliminaries |
2 |
2 |
4 |
||
Waves |
2 |
1 |
1 |
7 |
|
Dead locks/ Termination |
2 |
1 |
1 |
7 |
|
Leader elections |
2 |
1 |
1 |
7 |
|
Spanning trees |
2 |
1 |
1 |
7 |
|
Anonymous networks |
2 |
1 |
1 |
7 |
|
Distributed hashing |
2 |
1 |
1 |
7 |
|
Syncrhonization |
2 |
1 |
1 |
7 |
|
MapReduce |
2 |
1 |
1 |
7 |
|
Midterm |
2 |
||||
Final |
2 |
||||
Total |
18 |
10 |
8 |
60 |
4 |
The course will mostly follow the book “Distributed Algorithms, An Intuitive Approach” by Wan Fokkink.
Other references:
Ion Stoica, Robert Morris, David Liben-Nowell, David R. Karger, M. Frans Kaashoek, Frank Dabek, and Hari Balakrishnan. 2003. Chord: a scalable peer-to-peer lookup protocol for internet applications. IEEE/ACM Trans. Netw. 11, 1 (February 2003), 17-32.
Jeffrey Dean and Sanjay Ghemawat. 2008. MapReduce: simplified data processing on large clusters. Commun. ACM 51, 1 (January 2008), 107-113.