YoVDO

C++ Parallel Programming Models

Offered By: NDC Conferences via YouTube

Tags

NDC Conferences Courses Parallel Algorithms Courses Threads Courses Futures Courses Mutex Courses Atomics Courses

Course Description

Overview

Explore the three parallel programming models in C++ through this comprehensive conference talk. Delve into unstructured, task-based, and data parallel models, understanding their unique characteristics and appropriate use cases. Learn about the central facilities used in each model, including threads, atomics, mutex, async, future, and parallel algorithms. Gain insights into the evolution of C++ parallelism features from C++11 to C++17 and anticipated C++20 additions. Discover how to choose the right model for different program structures and performance requirements. Examine the shortcomings of thread-level APIs, the benefits of task-based parallelism, and the power of data parallelism with parallel algorithms. Understand how to mix different models in various contexts and compare their strengths and weaknesses. Perfect for C++ developers looking to enhance their parallel programming skills and optimize code performance.

Syllabus

Intro
About me
Why parallel programming? 1. Performance 2. Hide I/O 3. Responsiveness
C++ parallel programming facilities
C++ parallel programming models
Talk outline
Major components (partial list)
Missing part - safe shared state
Thread-level API shortcomings
Model #2: Task-based parallelism
Tasks are asynchronous
async execution
future and promise
packaged_task
What's C++ tasks model like?
Experimental future features
Coroutines and executors
Threads vs. tasks
Model #3: Data parallelism
C++ Parallel algorithms
Using parallel algorithms
sequenced_policy Forces execution to take place on the calling thread + Differs from no-policy call
Models comparison Unstructured
Mixing models - unstructured context
Mixing models - tasks context
Mixing models - parallel algorithms
Summary


Taught by

NDC Conferences

Related Courses

An Adventure in Race Conditions
ACCU Conference via YouTube
Under the Hood - Assembly, System Calls, and Hardware in C++
CppNow via YouTube
Atomics and Memory Model for Rust Code in Kernel
Linux Plumbers Conference via YouTube
Creating a Secure IoT Platform Using Common Linux Distributions
Linux Foundation via YouTube
Concurrency Improvements in C++20 - A Deep Dive
NDC Conferences via YouTube