15-418 — Parallel Computer Architecture and Programming
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.