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
0. Introduction
- 01 - Learn parallel programming basics
- 02 - What you should know
- 03 - Exercise files
1. Synchronization
- 04 - Condition variable
- 05 - Condition variable - C++ demo
- 06 - Producer-consumer
- 07 - Producer-consumer - C++ demo
- 08 - Semaphore
- 09 - Semaphore - C++ demo
2. Barriers
- 10 - Race condition
- 11 - Race condition - C++ demo
- 12 - Barrier
- 13 - Barrier - C++ demo
- 14 - Latch - C++ demo
3. Asynchronous Tasks
- 15 - Computational graph
- 16 - Thread pool
- 17 - Thread pool - C++ demo
- 18 - Future
- 19 - Future - C++ demo
- 20 - Divide and conquer
- 21 - Divide and conquer - C++ demo
4. Evaluating Parallel Performance
- 22 - Speedup, latency, and throughput
- 23 - Amdahl's law
- 24 - Measure speedup
- 25 - Measure speedup - C++ demo
5. Designing Parallel Programs
- 26 - Partitioning
- 27 - Communication
- 28 - Agglomeration
- 29 - Mapping
6. Challenge Problems
- 30 - Welcome to the challenges
- 31 - Challenge - Matrix multiply
- 32 - Solution - Matrix multiply
- 33 - Challenge - Merge sort
- 34 - Solution - Merge sort
- 35 - Challenge - Download images
- 36 - Solution - Download images
Conclusion
- 37 - Next steps
Related courses
- Parallel and Concurrent Programming with C++ Part 1
- Complete Guide to Parallel and Concurrent Programming with C++
- Parallel and Concurrent Programming with Java 1
- Parallel and Concurrent Programming with Java 2
- Complete Guide to Parallel and Concurrent Programming with Java
- Python Parallel and Concurrent Programming Part 1
- Python Parallel and Concurrent Programming Part 2
- Complete Guide to Parallel and Concurrent Programming in Python