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.
Assignment 1 out
No Class (CMU MLK holiday)
Quiz 1 due (on Fri Jan 22)
Assignment 1 due (on Mon Jan 25)
Assignment 2 out
Quiz 2 due (on Fri Feb 5)
Assignment 2 due
Assignment 3 out (on Fri Feb 12)
Quiz 3 due (on Fri Feb 19)
Assignment 3 due (on Fri Feb 26)
Spring Break. Partaaay!
Assignment 4 out
Quiz 4 due (on Fri Mar 18)
Assignment 4 due (on Fri Mar 25)
Quiz 5 due (on Fri Apr 1)
Project Proposal Due (on Fri Apr 1)
Quiz 6 due (on Mon Apr 18)
Project Checkpoint Due (on Tues Apr 19)
Exam 2 (evening exam)
5th 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.