Distributed and Concurrent Systems

"http://www.cs.umd.edu/~keleher/syllabus.818.html", Fall 1995

This web page will be updated as the course goes along. Please check it regularly. Use Netscape! This page won't display properly otherwise.


Overview - Requirements - List of Papers - Schedule - Presenting

Overview

This course is intended to be a general systems survey course. However, the central thread will be high-performance distributed systems. What hardware support do such systems need, should it all be in hardware? The primary running example that we will use are distributed shared memory systems, (mostly) software systems that present the abstraction of shared memory to a collection of workstations connected by general-purpose interconnect. Such systems are becoming commonplace in the research community, but have yet to achieve the kind of performance and sophistication that causes the marketplace to listen.

We will first look at the communication services and abstractions provided by current operating systems. What are the important elements? What factors are no longer as important as when UNIX was designed nearly 25 years ago? Do the demands of distributed applications fit in w/ the concept of general-purpose machines?

We will then look at papers describing high-performance memory models and several examples of software DSMs. Primary emphasis will be on the different approaches taken by different projects, and where we think they will go in the future.

Next we will discuss several parallel tools, and then investigate the compiler world's mistaken belief that they're going to put the rest of us out of a job.

We will close our semester with a rapid survey of the most interesting hardware projects currently going on in both industry and academia.


Course Requirements

Paper Presentation(s)

All students, even those just sitting in and not registered, are required to present one, or possibly two, papers from the list below. A paper presentation should be approximately 25 minutes long, and use transparencies. Feel free to use markers on the transparencies. However, using LaTeX would be good practice.

Paper presentations should be structured as follows:

I'd like to get most of the papers assigned by the second week of classes, 9/12. Most of the papers can be retrieved directly by clicking on the paper's title. The others will be on reserve in the third floor library. Please see me the week prior to doing a paper presentation, we can discuss the paper and I may recommend that you bring in material from other papers as well. See here for more details on giving talks.

All students are expected to read all papers prior to the class!

Project

All students taking the course for comp credit (i.e. registered for 3 hours), are also required to do a large systems programming project. The point of the project is to get a feel for what systems research is about. I have no expectation that the results from the class will be publishable, but publishing such papers is not unknown.

There will be several checkpoints during the semester to ensure that projects are progressing. Each project team will present a five minute proposal of the project on October 3, and then a five minute update on November 7. Final ten-fifteen minute presentations will be done on December 5 and 7. The final written reports are to be submitted in both HTML and postscript forms (the easy thing to do is to use latex2html for a rough cut on the HTML version, then edit by hand) by the beginning of finals, December 14. Submission consists of emailing me a postscript copy of the final report, together w/ a URL for the HTML version. For an overview of HTML, see here. Examples of table usage can be found here.

A list of possible project topics can be found here.

Mid-Term

Those taking the course for comp credit must also take a mid-term exam.

Grades

For those not taking the course for comp credit, the grade will be determined by the paper presentation. For those taking the course for comp credit, the grade will primarily be determined by the project, and secondarily by the mid-term and paper presentations. The exact breakdown will be announced during the course of the class.

Papers

Operating System Abstractions

Messaging Performance

Memory Models and Latency Toleration

Distributed Shared Memory

Parallel Tools

Compilers

File Systems (not to be presented)

Architecture


Possible Project Topics:


Schedule

WeekTuesday Thursday
9/5, 9/7 IntroductionLecture
9/12, 9/14 LectureLecture
9/19, 9/21 Trends, SPIN Caching, Specific
9/26, 9/28 Exo-Kernel, HIVE Cluster, Scheduling
10/3, 10/5 Project Proposals Project Proposals
10/10, 10/12 Irrelevance, Active Messages U-NET, FBufs
10/17, 10/19 Event Ordering, Formalization Latency, Evaluation
10/24, 10/26 TreadMarks, Message-Driven Causal, Midway
10/31, 11/2 Application, Filaments Galertner's Lifestreams
11/7, 11/9 Characterization, Race Project Updates
Test handed out
11/14, 11/16 Paradyn
Fortran-D
Irregular, SAM
Test due
11/21, 11/23 Alewife, Flash holiday
11/28, 11/30 Avalanche, SHRIMP Futures
12/5, 12/7 Presentations
12/12Presentations

Final Presentations

Thursday, Dec 7

Tuesday, December 12


keleher@cs.umd.edu