In this lesson you’ll learn about the underpinnings of parallel programming.

Study guide

  • Understand what concurrency and parallelism are, how concurrency enables parallelism, and how to determine whether an operation is concurrent
  • Understand synchronization primitives, including atomics, mutexes, semaphores, and barriers
  • Know what deadlock and race conditions are and understand how to avoid them

Readings and Assignments

Reading: Concurrency and Parallelism

Reading: Threading

Project: Group Optimization