6.827 Multithreaded Parallelism:
Languages and Compilers
Fall 2002


Overview

Here is a brief list of topics that will be covered in the course:

  • Languages and compilers to exploit multithreaded parallelism. 
  • Implicit parallel programming using functional languages and their extensions. 
  • Higher-order functions, non-strictness, and polymorphism. 
  • Explicit parallel programming and nondeterminism. 
  • The lambda calculus and its variants. 
  • Term rewriting and operational semantics. 
  • Compiling multithreaded code for symmetric multiprocessors and clusters. 
  • Static analysis and compiler optimizations.

Course Information

Warning: All information on this website is preliminary and subject to change.

Lectures: Lectures will be from 9:30 AM to 11:00 AM every Monday and Wednesday in room 26-314.

Office Hours: F3-5, NE43-206

Grading: There are three items that contribute to the final grade: problem sets, a midterm examination, and a course project. Each of them will be counted in according to the following table:

Problem Sets 50%
Midterm Exam 25%
Course Project 25%

Homework: Your grade will be based entirely on homework assignments. We expect to hand out 4 problem sets, and you'll have 1.5 to 2 weeks to complete each one. Homework problems will be graded by students. Each student in the class will be responsible for grading two problems of a problem set during the term (extra problems will be graded by the TAs). The grader for a particular problem will automatically receive maximum credit for that problem. Graders for a problem set will be selected shortly before that problem set is due. If you wish to grade a particular problem set problem, send email to the TA's a week in advance of the due date. The grader for a problem will be chosen at random from among the volunteers. If no one volunteers for a particular problem, a student who hasn't graded yet will be randomly chosen. As a grader, you are responsible for setting up a meeting with the TA's within a day or two after the problem set due date. You'll go over the problem with them in detail and receive the stack of student solutions. Then, one week after the problem set is due you will be responsible for returning the graded problem sets to the TAs along with a solution and a grade tabulation. The TA's will explain this process in more detail when you meet with them. To facilitate the grading process, we ask that each numbered homework problem be turned in as a separate packet. Most problems will have several lettered parts. Each part will receive a check (correct and satisfactory), a check plus (outstanding), a check minus (unsatisfactory), or a zero (not turned in or indecipherable).

Collaboration and Academic Honesty Policy: For problem sets, students are encouraged to collaborate in groups of up to 3 people. A group needs to hand in only one copy of the solution to a problem set. Groups need not remain the same throughout the course. We only need to know the names of the people who worked together on a particular problem set submission. Students in different groups are not allowed to collaborate on a problem set. Furthermore, it is explicitly forbidden to refer to previous years' problem sets and solutions (course bibles).

Course Reading Materials: Implicit Parallel Programming in pH by Rishiyur S. Nikhil and Arvind is the main textbook used in this course. This book is available at Quantum Books for around $65.

Facilities: Programming assignments for the course will be implemented in two programming languages: pH (parallel Haskell) and Hugs. A Hugs compilers will be available in the 6.827 Athena locker.

Home Page
: The home page for the course is: http://web.mit.edu/6.827/www/. Here you will find course related information like handouts, manuals, problem set hints, etc... Make sure you refresh this page frequently, as it will change often and caching in your Web browser may prevent you from seeing the latest version.

Communication: Email is a great thing, but it is not a substitute for attending office hours. You are free to email the TA with questions, comments, etc., but unless the problem is extremely urgent -- like a bug report that affects an assignment for the whole class---the TA will respond at their convenience or during office hours. The 6.827 staff can be reached for questions, etc., via email at 6827-ta@abp.lcs.mit.edu. We will mail all announcements, clarifications to assignments, answers to common questions, etc., to the course email list -- 6827@abp.lcs.mit.edu.