Explore advanced techniques for parallel and concurrent programming with C++. Learn about condition variables, semaphores, barriers, thread pools, and more.
Overview
Syllabus
Introduction
- Learn parallel programming basics
- What you should know
- Exercise files
- Condition variable
- Condition variable: C++ demo
- Producer-consumer
- Producer-consumer: C++ demo
- Semaphore
- Semaphore: C++ demo
- Race condition
- Race condition: C++ demo
- Barrier
- Barrier: C++ demo
- Latch: C++ demo
- Computational graph
- Thread pool
- Thread pool: C++ demo
- Future
- Future: C++ demo
- Divide and conquer
- Divide and conquer: C++ demo
- Speedup, latency, and throughput
- Amdahl's law
- Measure speedup
- Measure speedup: C++ demo
- Partitioning
- Communication
- Agglomeration
- Mapping
- Welcome to the challenges!
- Challenge: Matrix multiply
- Solution: Matrix multiply
- Challenge: Merge sort
- Solution: Merge sort
- Challenge: Download images
- Solution: Download images
- Next steps
Taught by
Olivia Chiu Stone and Barron Stone