Fall 2008 - CS 553 (Call no 10696) Distributed Systems
Instructor:
Ajay Kshemkalyani
Email:
ajayk@cs.uic.edu
Class meeting times: M,W,F 11:00-11:50am
We may need to set up a few extra class meetings to make up for any
of the regular meetings we miss due to my travel.
Room:
Office Hours in 915 SEO:
M 12:00 - 12:50pm,
W 12:00 - 12:50pm
This course focuses on theoretical principles.
Topics
- Models: synchronous/asynchronous; shared memory/message-passing
- Global states and snapshots; time models
- Group communication, managing group views
- State predicates
- Mutual exclusion, deadlock detection, leader election
- Distributed shared memory - coherence, models
- Checkpointing, rollback recovery; distributed debugging
- Agreement and consensus
- Peer-to-peer computing
- Multicast
- other current topics
Algorithm analysis and design; or permission of the instructor.
The following is only a tentative breakup of the evaluation scheme
and is subject to changes as the course progresses.
- Presentation and paper on topic of your choice (paper may or may not
relate to the presentation) (15+ 20 = 35%)
- 2 Exams (65%).
The course format will be in two parts.
- For the first part, the instructor will teach.
Attendance when the instructor is
teaching is not compulsory, but you must attend all the tests/exams.
However, if you miss class, it is your responsibility
to find out what was announced and what was covered, from other students.
- The second part involves active student
participation and is planned as follows.
Each team of 2 students will be required to present 1 or 2 papers,
depending on the final enrollment which will be known only in the third
week of class.
A paper will be assigned at least 3 weeks before its presentation date.
Also submit a description (in your own words) of the
main ideas of the paper. This should be roughly 5-7 pages.
Attendance when the student presentations are going on is compulsory.
TENTATIVE course progress chart:
Will be updated as we progress.
- Week 1: Introduction, models
- Week 2: failure models, synchronous/asynchronous communication,
blocking/nonblocking communication
- Week 3: Elementary distributed algorithms
- Week 4: Elementary distributed algorithms
- Week 5: Elementary distributed algorithms
- Week 6: time in a distributed system
- Week 7: Global state recording, group communication
- Week 8: Causal order; total order, multicast and group communication;
fault-tolerant communication specifications; layered protocol design;
Midterm 1 on Oct 15
- Week 9: predicate detection; Knowledge in distributed systems
- Week 10: Knowledge in distributed systems; Distributed Shared memory
- Week 11: Distributed Shared Memory
- Week 12: Agreement and consensus
- Week 13: Agreement and consensus
- Week 14: Peer-to-peer systems
- Week 15: Peer-to-peer systems
- Final on December 6
Click here for scores.
This year,
the class presentations will be on an assortment of topics of current interest.
Each group chooses a paper/topic from the following list.
This is only a starting point. Once you select a paper on a topic
from the list below, you may have to identify more basic or
fundamental papers on that specific topic for presentation.
Pick the most basic/ fundamantal papers that are
rich in new ideas.
They must also have algorithmic content.
Please let me know which paper you would like to present. I encourage you to
meet me in person during weeks 5-8 to discuss what you would be presenting.
And continue meetings during the semester on a regular basis.
Auxiliary information
Literature sources:
The following is an additional listing of traditional journals and conferences
that you may find useful in your literature search for your term paper.
Note that there are many more journals and conferences not listed here.
All execpt the ACM material can be accessed online via the library UIC portal,
i.e., from a campus IP address or after logging in to the library network
using your UID account.
-
IEEE Transactions on Parallel and Distributed systems (TPDS)
-
IEEE Transactions on knowledge and data engineering (JPDC)
-
Journal of Parallel and Distributed Computing (JPDC) - Elsevier
-
Distributed Computing - Springer
-
Journal of the ACM
-
Journal of Algorithms - Elsevier
-
SIAM Journal on Computing
-
Ad-Hoc Networks - Elsevier
-
ACM Symp. on Principles of Distributed Computing (PODC)
-
IEEE Symp. on Parallel and Distributed Processing (SPDP)
-
IEEE Network Computing and Applications Symposium (NCA)
-
Inter. Conference on Distributed Computing Systems (ICDCS)
-
Symoisum on DIstributed Computing (DISC)