|
Prof. Douglas Thain
Email: dthain at nd dot edu
Office: 384C Fitzpatrick Hall
Office Hours: Mon 2-4PM and Fri 3-5PM
|
|
TA: Haihui Tan
Email: htan2 at nd dot edu
Office: Cushing 212
Office Hours: T/R 1-3PM
|
Getting Help
Piazza Discussion Page - The best place for technical questions like "What does this error message mean?"
Office Hours Prof. Thain: Mon 2-4PM, Fri 3-5PM, Haihui: T/R 1-3PM
Email - Contact Prof. Thain for questions about grades, course policies, etc.
Grades - Are available on the course ND Sakai page.
Course Overview
This class is an introduction to the theory and practice
building large scale computer systems that harness hundreds or thousands
for machines to attack problems of enormous scale. Such distributed
systems are necessary to solve problems of such large size that they
cannot complete in any reasonable time on a single machine.
In recent years, these system have been known as
clouds
but have a much longer history known as
distributed systems.
Cloud computing encompasses a variety of modes of computing,
including infrastructure and data center management, high
throughput computing, distributed programming models, No-SQL storage,
and more. We will take a tour of many of these topics by alternating
with a high-level discussion of the principles, followed by case
studies with a current technology.
Each assignment will involve designing a program or system that scales
up to a large number of machines, using a variety of technologies.
This will be a highly practical class, and should be enjoyable to any student
who likes to write lots of code and make real systems work. Many students
who take this class end up using these tools in their daily work. The class is open to juniors, seniors, and graduate students.
Course Documents
Syllabus
A0 - Warm Up Assignment
A1 - High Throughput Ray-Tracing with HTCondor
A2 - Parallel DNA Analysis with Work Queue
A3 - Web Data Processing with Map-Reduce
A4 - From Parallel to Serverless
Final Project
Progress Reports
Presentation
Tentative Schedule