Overview
Instructor: Harsha V. Madhyastha
Lectures: TTh 11:10 a.m. - 12:30 p.m., INTS 1125
Office hours: Send me email to setup an appointment.
Grading: Project (50%) + In-class quizzes (20%) + Class participation (30%). Papers presented in class count toward class participation.
Mid-term and Final exam: None.
Synopsis: Distributed systems are ubiquitous today. For example, consider the steps that typically occur when you attempt to search on Google. When you first type your request into your browser, the processing necessary to execute your command is performed across a distributed system of CPU cores on your computer. The result of this execution is to query the DNS nameserver system distributed across the Internet in order to determine which one of Google's data centers distributed across the globe should handle your request. The network traffic exchanged with the nameservers and with Google's webservers is sent over the Internet, which itself is a distributed system of routers. Lastly, to service your request received at one of Google's data centers, Google's distributed computing and storage infrastructure has to exchange messages between several of its servers within the data center.
The design of all the above distributed systems---multicore processors, DNS nameservers, content distribution networks, the Internet, data centers---is based on similar objectives such as performance, fault-tolerance, consistency, cost-efficiency, and efficient resource utilization. In this class, we will examine efforts in designing and implementing distributed systems in several domains to understand a) whether similar techniques are used to achieve similar goals in different domains, and b) if not, what domain-specific characteristics drive the need for domain-specific optimization techniques. In a nutshell, the end-goal of this course is to equip the students with a toolkit of the basic rules of thumb in distributed system design, for use in their future research.
Schedule
Please monitor your account on iLearn.ucr.edu for course announcements.
(You can log on to iLearn with your UCR NetID.)
Projects
Each student is expected to complete a research project, write up the material describing the project in a similar manner to research papers, and present the project in class (towards the end of the quarter). A suggested list of project topics is posted below, but the students are also encouraged to choose their own topics relevant to the class. A good guideline for picking a project topic is to choose one that you would be interested in pursuing for publication later if the results obtained by the end of the course turn out to be promising.
A candidate list of topics for the course project is available here. (To access from outside UCR, use WebVPN, which you can access using your NetID.)
Students are strongly encouraged to work on projects in groups of two or more, with the expectation commensurately higher for larger groups. Apart from the final project presentation and report, each group will also be required to submit intermediate writeups 3 weeks (project proposal and plan of action) and 7 weeks (methodology and preliminary results) into the class. One quarter can go by in a blur. Hence, these intermediate checkpoints are to help maximize the chances of success of your project.
Requirements from intermediate project milestones due on the following days:
- October 5th: Problem description and planned solution approach
- October 26th: Description of related work, design, and implementation progress
- November 16th: Implementation details and initial results