Syllabus

Course Meeting Times

Lectures:
Two sessions / week
Lec 1: 2 hours / session
Lec 2: 1.5 hours / session

Both lectures will be attended by students from Singapore. Lectures will be videotaped and made available through the Singapore-MIT Alliance program.

Introduction

This graduate research course is aimed at Ph.D. students in Area II. M.Eng. students who plan to write their Master's thesis on the topic of parallel systems may also wish to participate. This class cannot be used to satisfy the TQE requirements for the Ph.D. program.

This class covers theoretical foundations of general-purpose parallel computing systems, from languages to architecture. We will focus on the algorithmic underpinnings of parallel systems. The topics for the class will vary depending on student interest, but will likely include multithreading, synchronization, race detection, load balancing, memory consistency, routing networks, message-routing algorithms, and VLSI layout theory. The class will emphasize randomized algorithms and probabilistic analysis, including high-probability arguments.

The focus of the class is the term project, which can be done individually or in groups of two and will account for 70 percent of the grade. Students are encouraged to advance their own research interests in their project. The hope is that many of these term projects will lead to theses or publishable papers. In addition, there will be several problem sets and programming labs.

A detailed schedule of topic coverage will appear in the course calendar.

Prerequisites

The official prerequisites for the course are 6.046J (Introduction to Algorithms) and 6.170 (Laboratory in Software Engineering) (or courses covering equivalent material), but since this class is intended for graduate students, a general undergraduate education in computer science is assumed.

Course Requirements

The course consists of three primary components:

  • Lectures: Each student creates scribe notes for approximately two lectures (more or less depending on the number of students in the course). Two students are assigned to each lecture, and they work together to generate high quality notes for the lecture. They then meet with one of the staff of the course to go over the notes generated, before being published to the web. Scribe notes should be produced as soon after the lecture as possible. Optimally, a first draft should be completed within a few days, as scheduled with the lecturer. The goal is to produce the final version of the scribe notes within a week of the lecture being given. Scribe notes will account for 20 percent of the grade.
  • Problems: Each week new problems will be posted to the course web site. These will range in difficulty from easy exercises to open problems (noted by ***). Problems will be due two weeks from when they are posted on the website. When you submit the problem set, please complete the information for collaboration: Collaborators: Names (or "None") at the top of the cover page. You should also cite references appropriately. Problem sets will account for 10 percent of the grade.
  • Final Project: A major requirement of the course is a final project. The final project will account for 70 percent of the grade. Students will work either alone or in groups of two to complete a significant research project. As the semester goes on, we will post project ideas and open problems to the website. As people show interest in projects, we will add their name to the website, to encourage collaboration.

Course Books

One goal of this course is to produce a good set of scribe notes, describing the material presented in this course. To this end, it is recommended that you obtain a copy of the following book or some equivalent latex manual:

Lamport, Leslie. LaTex: A Document Preparation System User's Guide and Reference Manual. Reading, MA: Addison Wesley Professional, 1994. ISBN: 0201529831.

Collaboration

Throughout the class, collaboration is encouraged. The goal of homeworks is to give you practice in mastering the course material. Consequently, you are encouraged to collaborate on problem sets. You must write up each problem solution by yourself, however, even if you collaborate with others to solve the problem. If you do collaborate on homework, you must cite in a scholarly manner all of your collaborators.

Similarly, collaboration is expected on the final projects. Groups of two will probably be the norm. We will try to help group together students with similar interests to work on exciting open problems.