Courses:

Multithreaded Parallelism: Languages and Compilers >> Content Detail



Syllabus



Syllabus

Amazon logo Help support MIT OpenCourseWare by shopping at Amazon.com! MIT OpenCourseWare offers direct links to Amazon.com to purchase the books cited in this course. Click on the book titles and purchase the book from Amazon.com, and MIT OpenCourseWare will receive up to 10% of all purchases you make. Your support will enable MIT to continue offering open access to MIT courses.


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.
Lectures:

Two  sessions / week
1.5  hours / session

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:

Nikhil, Rishiyur S., and Arvind. Implicit Parallel Programming in pH . 1st ed. Boston, MA: Morgan-Kaufmann, 2001. ISBN: 1558606440. 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.



 



 








© 2009-2020 HigherEdSpace.com, All Rights Reserved.
Higher Ed Space ® is a registered trademark of AmeriCareers LLC.