akira

15-418 — Parallel Computer Architecture and Programming

Teaching Assistant · Spring 2026

Teaches fundamental principles and engineering trade-offs involved in designing modern parallel computing systems, as well as parallel programming techniques necessary to effectively utilize these machines.

Overview

Parallel processing is found everywhere in modern computing. Forget your computer, even your smart washing machine might be multicore.

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.