Parallel and Concurrent Programming with C++ Part 2
2h 13mAdvanced2020-07-20
Authors

Barron Stone
Electrical Engineer

Olivia Chiu Stone
Programmer, Engineer
Course details
Write more efficient, performant code by mastering the fundamentals of parallel programming. In this course, instructors Barron and Olivia Stone pick up where they left off in the first installment of the Parallel and Concurrent Programming with C++ series, explaining what you need to know to write programs that execute multiple instructions simultaneously. Barron and Olivia dig into some more advanced concepts like condition variables and semaphores in a fun and informative way, relating them to everyday activities you perform in the kitchen. To cement these ideas, they demo them in action using C++. Each lesson is short and practical, driving home the theory with hands-on techniques.
Skills covered
C++Programming FoundationsProgramming LanguagesOpen SourceSoftware DevelopmentOne-Off
Concepts
Introduction
- Learn parallel programming basics
- What you should know
- Exercise files
Synchronization
- Condition variable
- Condition variable - C++ demo
- Producer-consumer
- Producer-consumer - C++ demo
- Semaphore
- Semaphore - C++ demo
Barriers
- Race condition
- Race condition - C++ demo
- Barrier
- Barrier - C++ demo
- Latch - C++ demo
Asynchronous Tasks
- Computational graph
- Thread pool
- Thread pool - C++ demo
- Future
- Future - C++ demo
- Divide and conquer
- Divide and conquer - C++ demo
Evaluating Parallel Performance
- Speedup, latency, and throughput
- Amdahl's law
- Measure speedup
- Measure speedup - C++ demo
Designing Parallel Programs
- Partitioning
- Communication
- Agglomeration
- Mapping
Challenge Problems
- Welcome to the challenges!
- Challenge - Matrix multiply
- Solution - Matrix multiply
- Challenge - Merge sort
- Solution - Merge sort
- Challenge - Download images
- Solution - Download images
Conclusion
- Next steps