The objective of this course is to provide students with strong background on concurrency fundamentals along with experience with a diversity of both classical and modern approaches to managing and exploiting concurrency, including shared memory synchronization, parallel architectures such as GPUs, as well as distributed parallel frameworks such as MPI and mapreduce. Prerequisite: Upper-division standing; additional prerequisites vary with the topic.

Undergraduate Program