CSE 40771/60771 - Distributed Systems - Spring 2010

Prof. Douglas Thain
Email: dthain at cse dot nd dot edu
Office: 382 Fitzpatrick
Office Hours: Wednesdays 1-3PM

Course Web Page: http://www.cse.nd.edu/~dthain/courses/cse60771/spring2010

This course will introduce students to the theory and practice of distributed systems, with a special emphasis on large scale computer systems used in science and engineering.

The theoretical aspects of distributed systems will be studied via the course textbook, Distributed Systems: Principles and Paradigms by Andrew Tannenbaum. Students will be evaluated on this material through written assignments and exams.

The practical aspects of distributed systems will be studied through a series of in-depth lectures and practical assignments on working distributed systems, in particular the Condor distributed processing system, the Chirp distributed file system, the Hadoop distributed data processing system, and the Eucalyptus cloud computing system. Students will operate, modify, and evaluate each of these systems to gain practical experience in the strengths and weaknesses of each. Students will propose and carry out a final project that applies skills learned over the course of the class.

Students will have access to several large computing systems for the assignments and final project, including four 12-core interactive machines, our campus Condor pool of about 800 cores, the Purdue Condor pool of about 30,000 cores, and our local Green Cloud, which runs Hadoop and Eucalyptus.

Prerequisites

Course Outcomes

Students successfully completing this course will be able to:
  • Describe the architecture and operation of a variety of common distributed systems.
    Presented in course readings, evaluated in exams.
  • Compare the architecture and operation of various distributed systems.
    Presented in class discussions, evaluated in exams.
  • Describe how distributed systems are fundamentally different from standalone systems in matters such as naming, invocation, synchronization, and fault tolerance.
    Presented in course readings, evaluated in exams.
  • Construct, test, and evaluate programs in a distributed environment.
    Presented, practiced, and evaluated in the practical assignments.
  • Communicate technical results orally and in writing.
    Practiced in assignment writeups and final project talk.
  • Attendance

    Students are expected to attend all class meetings and exams, and turn in all assignments before the due date and time. Exceptions will only be made for the grave circumstances outlined in the duLac student life handbook. Students who must be absent due to participation in a University activity must confer with the instructor at the earliest possible date.

    Grading

    All assignments are due at the beginning of class on the date due. Late assignments will receive no credit. This includes assignments submitted after class has begun.

    Paper assignments should be brought to class. Programming assignments will be turned in electronically by copying all required files to a "dropbox" directory. You are free to turn in assignments multiple times before the deadline expires. It would be a good habit to turn in an incomplete but working assignment on a daily basis. Thus, there is no excuse for failing to turn in an assignment: everyone should turn in something long before the deadline. Exceptions will be made only in grave circumstances.

    Grades will be weighted as follows:
    Warm Up Assignment 5 %
    Regular Assignments 50 %
    Final Project 15 %
    Midterm Exam 15 %
    Final Exam 15 %

    Collaboration

    In-class exams are to be completed alone.

    The practical assignments are to be completed alone.

    The final project may be performed singly or in pairs. You are encouraged to seek out and exploit external manuals, books, websites, and other documentation that will help you to complete the assignment, provided that you indicate what sources you have used. However, all software development, experimental work, and writing of results must be done solely by you and your partner.

    You must read and abide by the Academic Code of Honor.

    A Note About the Assignments

    To undertake the class assignments, you will have to spend some time learning how to use each of these systems. The lectures will explain the general principles and direct you towards reference materials. However, you will need to figure out some of the details on your own by reading manuals and experimenting on your own. Do not expect to succeed on the first try. You may need to consult with the instructors during class, office hours, or via email to solve problems. Thus, start working on each assignment right away, and do not leave it until the last minute.