6.816/6.836 Multicore Programming
Spring 2017
Instructor: Nir N Shavit
TAs: Michael Joseph Coulombe, Hayk Saribekyan
Lecture:
T2-5
(32-144)
Recitation: R11-12
(38-166)
Recitation: F10-11
(38-166)
Recitation: F11-12
(38-166)
Information:
The computer industry is undergoing a paradigm shift to multicore and multiprocessor chips, a shift that will require a fundamental change in how we program. The art of multiprocessor programming, currently mastered by few, is more complex than programming uniprocessor machines, and requires an understanding of new computational principles, algorithms, and programming tools.
The key issues that distinguish multiprocessor programming from uniprocessor programming are the need to understand how to break applications into computations that can be executed in parallel, and perhaps more fundamentally, how these concurrent computations can coordinate with one another to allow this parallelism to translate into substantiative speedups.
There are few reference books addressing how to program multiprocessors. Most engineers must learn the tricks of the trade by asking help from more experienced friends and through a laborious trial and error process. This course aims to change this state of affairs, providing a comprehensive presentation of the principles and techniques available for programming multicore/multiprocessor machines.
The course will begin by covering the theoretical foundations of programming on multicore machines (we are strong believers that good practice requires understanding the theory). It will then move on to cover the real-world techniques used to program them. It will include a sequence of programming assignments of increasing difficulty, culminating with the design of a highly parallel "firewall" application, running on a state-of-the-art 80-way multicore machine.
Class Structure:Our textbook will be "The Art of Multiprocessor Programming" by Herlihy and Shavit.
There will be 6 total assignments, covering both theory and practice (assignments 2-6 will have the practical part, the last being the final project). For 6.836 assignments will contain additional theoretical problems. The assignments will constitute 70% of the course grade.
There will be a final exam worth the remaining 30% of the grade. You must pass the final in order to receive a grade for the course. The exam will be scheduled during final exam period (May 22-26).
Office Hours:
Hayk Saribekyan (M5-7pm in 36-112)
Michael Coulombe (W3-5pm in 36-156)
Recitations:
Recitation sections are on R 11-12, F 10-11 and F 11-12, in 38-166. The two TAs will generally switch each week teaching recitations.
Resources:
We will use Piazza for class-related discussions. The class page can be found at https://piazza.com/mit/spring2017/68166836/home
Announcements
Last Grades Posted and Farewell
In Pset5B, the primary weighting was coding and explaining the hash tables. I was [possibly overly] thorough in looking at each of your implementations in detail, which is one reason it took so long to release. I was happy to see many of you came up with interesting designs as well. I hope you take the time to check out my comments to see how you may have erred so you can learn to avoid the tricky mistakes in the future.
Points were divided into these parts: 1a (5) 1b (5) 1c (10) 1d (10) 1e (15) 1f (5) 2 (5) 3 (20) Report Quality (5)
The grade shown in the Pset6B section is your project score (out of 10). Both parts of Pset6 had to be graded in an expediated manner, so we don't have detailed comments or fine-grained points, but I personally read all of your reports and glanced through your code. I was again pleased to see the creativity and effort put into many of the projects. The primary weighting of the project was your design and writeup rather than the bug-freedom of every line of code, but don't forget you'll need both out in the real world!
You can pick up your graded and commented final exam in my office, 32-578 (it's around the corner from the open offices). One of my friendly office mates or I will let you in to grab it. The gradebook module comments lists the points per problem but no explanations for deductions.
If you won one of the performance competitions, you were notified in the Stellar comments and the bonus points were added.
In computing the final letter grades for the course, we took into account each students' pset/exam scores, strengths and weaknesses, and unique situations. Anyone on the border between two grades was examined with extra scrutiny. If you have questions about something that comments or posted solutions don't cover, feel free to post on piazza or email me and I can elaborate.
Most importantly, Nir, Hayk, and myself all really enjoyed having you as our class and wish you the best in your future endeavors.
- Michael
Announced on 29 May 2017 8:32 p.m. by Michael Joseph Coulombe
Final Review Office Hours Today
I highly recommend coming to ask questions on any of the material, including going over the solutions to the psets or the practice exams. It's important to us that you all are able to learn and be comfortable with the material and be skilled at designing and making arguments about concurrent solutions to problems.
Announced on 24 May 2017 10:40 a.m. by Michael Joseph Coulombe
I will be in 36-112 from 3-5pm today to answer your questions
We'll have a review session on Wednesday (date and time TBA).Announced on 22 May 2017 10:07 a.m. by Hayk Saribekyan
Practice Final, Laptop Policy
Also, after hearing your suggestions, Nir has agreed to allow internet-disabled electronic devices for reading the book or your notes. This is a priviledge granted out of kindness, so there will be serious consequences for cheating with your device.
Announced on 18 May 2017 11:34 p.m. by Michael Joseph Coulombe
Practice Exam, No OH today
Also the pset5 theory solutions are posted, and the pset6 theory solutions are almost ready.
There will be no office hours today.
Announced on 17 May 2017 1:24 p.m. by Michael Joseph Coulombe