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
TIME 9:00-10:20am
LOCATION GHC 4307
Instructors: Todd Mowry and Brian Railing
See the course info page for more info on policies and logistics.
Fall 2017 Schedule
Aug 28
Syllabus
Parallelism Demos
Aug 30
Sep 1
Assignment 1 Out - Aug 31
Sep 4
No Class (Labor Day)
Sep 6
Sep 8
Sep 11
Sep 13
Assignment 1 Due
Assignment 2 Out
Sep 15
Sep 18
Sep 20
Sep 22
Sep 25
Quiz 1 Due
Sep 27
Assignment 2 Due
Assignment 3 Out
Sep 29
Oct 2
Oct 4
Oct 6
Exam 1
Oct 9
Oct 11
Oct 13
Assignment 3 Due
Assignment 4 Out
Oct 16
Oct 18
Oct 20
Fall Break
Oct 23
Assignment 4 Due
Oct 25
Oct 27
Oct 30
Project Idea Meetings
Nov 1
Project Proposal Due
Nov 3
Nov 3
Dec 12
Final Exam: Project Poster Session
01:00-04:00 p.m. GHC 6115
Assignments and Projects
Sept 1Assignment 1: Analyzing Program Performance on a Eight-Core CPU
Sept 14Assignment 2: A Simple CUDA Renderer
Sept 29Assignment 3: Parallel VLSI Wire Routing via OpenMP
Oct 13Assignment 4: Parallel VLSI Wire Routing via MPI
Oct 27Final Project Information
weeklyGuidelines and Tips for Making Good Lecture Comments
Acknowledgments

Special thanks to the Intel Corporation, the NVIDIA Corporation, and to DELL for equipment donations and/or financial support for course development. Kayvon has extended the original version of 15-418 and the course follows his vision. Thanks to Matt Pharr for technical assistance with ISPC. Alex Reece, Manish Burman, and Cary Yang developed the course web site.