15-418/15-618: Parallel Computer Architecture and Programming, Fall 2026
From smart phones, to multi-core CPUs and GPUs, to the world's largest
supercomputers, 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 hardware design and how that affects software design.
Course Syllabus
Prerequisites
15-213 (Introduction to Computer Systems) is a strict
prerequisite. This course builds directly on that material, including memory
hierarchies, memory management, and basic networking.
- You are expected to be a strong C/C++ programmer: the course
uses a variety of “C-like” parallel programming languages.
- 18-447 (Introduction to Computer Architecture) is helpful, but not required.
- Previous experience with operating systems (15-410), distributed systems
(15-440), or compilers (15-411) may also prove helpful.
See the course syllabus for full details.
Waitlist and Assignment 1
Enrollment is capped by the size of the lecture room, so we expect a waiting
list. If you are on it, Assignment 1 is how you
get off it.
- Waitlisted students are welcome to start Assignment 1 as soon as it is
released on Friday 8/28. You do not need an Autolab account
to begin work on it.
- To be considered, submit by the early deadline, Thursday 9/3
(the regular deadline is Wednesday 9/9). We grade these submissions and
register the top-performing students before the add deadline.
- Performance on Assignment 1 is the primary factor in determining who
comes off the waitlist.
- This is not a race. The order in which solutions are submitted has
little impact.
- Please do not contact the instructors in an attempt to bypass this process.
- If you are registered but have doubts about your ability to complete the
course, please drop it before the add deadline. Working through Assignment 1
will give you a good indication of our expectations.
Getting Help
Course Materials
Course Information
| For details |
See the course syllabus for details (below is just a few overview
bits). |
| Lectures |
MWF 09:30-10:50am, Baker Hall (BH) A51 |
| Credit |
12 units |
| Grading |
See syllabus
|
| Assignments |
There are four programming assignments, not evenly weighted. See
the assignments page for
the breakdown. |
| Exams |
There will be two exams (in-class, closed-book).
|
| Home |
https://www.cs.cmu.edu/afs/cs/academic/class/15418-f26/www/
|
| Questions |
Ed, office hours |
| Course Directory |
/afs/cs/academic/class/15418-f26/ |
Instructors
|