CSAIL Logo

Course information

Syllabus

Lecture notes

Assignments

Course staff


MIT Logo

6.888 Parallel and Heterogeneous Computer Architecture

Meeting location and times

Lectures will be held on Mondays and Wednesdays from 1pm to 2:30pm in 1-135.

Course description

Computer systems are at a critical juncture. Parallel computing is now ubiquitous across all domains, from cellphones to multicore chips and supercomputers. But simply scaling the number of cores will soon run out of steam, so architectures are also becoming heterogeneous to handle specific types of computation more efficiently (e.g., GPUs). These techniques improve performance at the cost of programmability and generality. How can we strike the right balance between efficiency, generality, and ease of use?

6.888 will help you understand, use, and design these emerging parallel and heterogeneous systems. Through a mix of lectures and paper discussions, we will learn how modern systems work and review recent research in the area. We will cover both hardware and software aspects, ranging from computer architecture to programming models, with the holistic view that successful approaches need to consider both hardware and software. Topics include:

6.888 features an open-ended, research-oriented project. Working in groups of 1-3 students, tackle one of the offered projects or propose your own. We will give you access to cutting-edge infrastructure, including simulators, parallel runtimes, and hardware. Great opportunity for UROP and MEng projects, and to explore or continue PhD-level research in parallel computing.

Prerequisites and credit

You should have a good understanding of basic computer architecture (i.e., a strong grasp of the material taught in 6.004). Background in advanced microarchitecture (e.g., at the 6.823 level) is not required, since our focus will not be on details of core pipelines. Prior knowledge of parallel programming and performance optimization (e.g., 6.172) will be helpful, but is not required.

6.888 is a 12-unit (4-0-8) subject and is worth 6 Engineering Design Points.

Assignments and grading

6.888 has no midterm or final exams. There are four required assignments:

The tentative weights of each assignment into the final grade are: 60% project, 15% seminar, 15% class participation, and 10% homework.

Deadlines: All deadlines are posted in the syllabus. Assignments are due by 5pm unless otherwise stated. Each student has two late days available. Each late day constitutes a 24-hour extension, and cannot be split in smaller extensions. Once a student runs out of late days, a penalty will be assessed on late assignments.

Collaboration policy: Collaboration among students to understand the course material and homework is strongly encouraged, but the submitted homework must be your own. Collaboration among projects is encouraged whenever possible. The final project report must describe how work was divided among team members and acknowledge any external help. As a general rule, follow the MIT academic integrity guidelines and, when in doubt, ask the course staff. Violations of this policy will be treated severely.