Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

NDC Conferences

C++ Parallel Programming Models

NDC Conferences via YouTube

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

Reviews

Start your review of C++ Parallel Programming Models

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.