Parallel Computer Architecture and Programming (CMU 15-418/618)

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.

Basic Info
Mon/Wed 3:00 - 4:20pm
GHC 4401 (Rashid Auditorium)
Instructors: Kayvon Fatahalian and Randal Bryant
See the course info page for more info on policies and logistics.
Spring 2016 Schedule
Jan 11
Jan 13
Assignment 1 out
Jan 18
No Class (CMU MLK holiday)
Jan 20
Quiz 1 due (on Fri Jan 22)
Jan 25
Assignment 1 due (on Mon Jan 25)
Jan 27
Assignment 2 out
Feb 1
Feb 3
Quiz 2 due (on Fri Feb 5)
Feb 8
Feb 10
Assignment 2 due
Assignment 3 out (on Thu Feb 11)
Feb 15
Snooping-Based Cache Coherence
Feb 17
Directory-Based Cache Coherence
Quiz 3 due (on Fri Feb 19)
Feb 22
Memory Consistency
Feb 24
Basic Snooping-Based Multiprocessor Implementation (+ Course-So-Far Review)
Assignment 3 due (on Thu Feb 25)
Feb 29
Exam I
Mar 2
Scaling a Web Site: Scale-Out Parallelism, Elasticity, and Caching
Assignment 4 out (on Wed Mar 2)
Mar 7-11
Spring Break. Partaaay!
Mar 14
Interconnection Networks
Mar 16
Implementing Synchronization
Quiz 4 due (on Fri Mar 18)
Mar 21
Fine-Grained Synchronization and Lock-Free Programming
Mar 23
Transactional Memory
Assignment 4 due (on Fri Mar 25)
Mar 28
Heterogeneous Parallelism and Hardware Specialization
Mar 30
Domain-Specific Parallel Programming Systems
Quiz 5 due (on Fri Apr 1)
Project Proposal Due (on Fri Apr 1)
Apr 4
Domain-Specific Frameworks for Parallel Graph Processing
Apr 6
In-Memory Distributed Computing in Spark
Apr 11
Addressing the Memory Wall
Apr 13
Topic TBD
Quiz 6 due (on Fri Apr 15)
Project Checkpoint Due (on Fri Apr 15)
Apr 18
Topic TBD
Apr 20
Topic TBD
Apr 25
Exam II (and a Bonus Lecture on Parallel 3D Graphics)
Apr 27
Course Wrap Up and Project Presentation Tips (How to Give a Clear Talk)
5th Annual Parallelism Competition
Final Projects Due
Assignments and Projects
Jan 25Assignment 1: Analyzing Parallel Program Performance on a Quad-Core CPU
Feb 10Assignment 2: A Simple Renderer in CUDA
due TBDAssignment 3: to be announced
due TBDAssignment 4: A Simple, Elastic Web Server
TBDFinal Project / Parallelism Competition
weeklyGuidelines and Tips for Making Good Lecture Comments

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.