From smartphones, to multi-core CPUs and GPUs, to the world's largest supercomputers and websites, 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. Instructors: Kayvon Fatahalian and Kunle Olukotun Visit the course website: https://gfxcourses.stanford.edu/cs149/fall23
Curated by: Stanford Online (19 videos)