Office hours: 2-4 W and by appointment
We will investigate ways in which computer resources connected by a network can be used and shared. This includes using them for parallel computing (ex. cluster and grid systems), for resource and file sharing (ex. grid systems, BitTorrent), for data and communication (ex. WWW, digital libraries, IM, email), and for availability (ex. when a Google server goes down, how does Google completely hide that fact from you?).
Class will be run seminar-style; each week students will read research papers that we will discuss in class. We will read papers that cover the theory of distributed systems as well as the implementation of systems to support distributed computing.
During the first part of the course, we will examine different parallel and distributed programming paradigms and you will get some practice writing programs using these different paradigms. In distributed systems, parallel computing is used in cluster and grid environments, and distributed computing is used in client-server systems such as the WWW and peer-to-peer systems.
During the second part of the course, students will propose and carry out a semester-long research project related to distributed computing. The department's gigabit cluster, as well as the CS lab machines, are available for course projects.
Previous course work in Operating Systems, Networking, Databases, or Architecture is helpful, but not necessary for taking this course.
Reaction notes are graded on this scale (note: in computing final grades, the real difference between a 0 and 1 is much greater than the real difference between a 1 and 2):
Beginning with the week 3 topics, you can pick any topic on which you will give a presentation.
|WEEK||DAY||ANNOUNCEMENTS||TOPIC||READING & ASSIGNMENTS|
|1||Jan 22||Distributed Systems Overview||week 1 readings|
|2||Jan 29||Communication and System Design||week 2 readings
|3||Feb 05||Message Passing, RPC||week 3 readings
|4||Feb 12||Course Project Information||Time, Event Ordering, Distributed State||week 4 readings
Course Project Assignment
|5||Feb 19||Distributed File Systems||week 5 readings|
|6||Feb 26||Grid Computing||week 6 readings|
|7||Mar 04||Project Proposal due (Mar 06)||Project Work Week||week 7 assignments|
|8||Mar 18||Peer-to-Peer Systems||week 8 readings|
|9||Mar 25||Security, Distributed Shared Memory||week 9 readings|
|10||Apr 01||Project Progress Report due (Apr 03)||Fault Tolerance||week 10 readings
Project Progress Report
|11||Apr 08||MapReduce||week 11 readings|
|12||Apr 15||Project Progress Report due (Apr 17)||Cluster Computing||week 12 readings
Project Progress Report
|13||Apr 22||Process Migration, Scheduling||week 13 readings|
|14||Apr 29||Individual Project Group Meetings and Final Project Presentations||week 14 scedule
final project report, presentation, demo
|15||May 06||Final Project Report due by noon (May 09)||Finals||no reading|