From smart phones, to multi-core CPUs and GPUs, to the world's largest supercomputers and web sites, parallel processing is ubiquitous in modern computing. The goal of this course is to provide a deep understanding of the fundamental principles and engineering trade-offs involved in designing modern parallel computing systems as well as to teach parallel programming techniques necessary to effectively utilize these machines. Because writing good parallel programs requires an understanding of key machine performance characteristics, this course will cover both parallel hardware and software design.
Jan 16 |
No Class (CMU MLK holiday)
|
Jan 18 |
Assignment 1 out
|
Jan 20 | |
Jan 23 | |
Jan 25 |
Exercise 1 due (on Fri Jan 27)
|
Jan 30 |
Assignment 1 due
Assignment 2 out
|
Feb 1 | |
Feb 6 | |
Feb 8 |
Exercise 2 due (on Fri Feb 10)
|
Feb 13 | |
Feb 15 |
Assignment 2 due
Assignment 3 out
|
Feb 20 | |
Feb 22 |
Exercise 3 due (on Fri Feb 24)
|
Feb 27 | |
Mar 1 |
Exam I
|
Mar 6 | |
Mar 8 |
Assignment 3 due
|
Mar 13-17 |
Spring Break. Partaaay!
|
Mar 20 | |
Mar 22 |
Exercise 4 due (on Fri Mar 24)
|
Mar 27 | |
Mar 29 | |
Apr 3 |
Assignment 4 due (on Tues Apr 4)
|
Apr 5 |
Exercise 5 due (on Fri Apr 7)
|
Apr 10 |
Project Proposal due
|
Apr 12 | |
Apr 17 | |
Apr 19 | |
Apr 24 |
Project checkpoint due (on Tues April 25)
|
Apr 26 |
Exercise 6 due (on Fri April 28)
|
May 1 |
Exam 2 (evening exam)
|
May 3 | |
May 12 |
6th Annual Parallelism Competition
Final Projects Due
|
Special thanks to the Intel Corporation, the NVIDIA Corporation, and to DELL for equipment donations and/or financial support for course development. Todd Mowry created the original version of 15-418 and much of the structure of his innovative course persists today. Thanks to Matt Pharr for technical assistance with ISPC. Alex Reece, Manish Burman, and Cary Yang developed the course web site.