Parallel and Concurrent Programming with C++ Part 2

Parallel and Concurrent Programming with C++ Part 2

2h 13mAdvanced2020-07-20

Authors

Barron Stone

Barron Stone

Electrical Engineer

Olivia Chiu Stone

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
80,000 Toman