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.
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
|
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.