Главная
Study mode:
on
1
Intro
2
About me
3
Why parallel programming? 1. Performance 2. Hide I/O 3. Responsiveness
4
C++ parallel programming facilities
5
C++ parallel programming models
6
Talk outline
7
Major components (partial list)
8
Missing part - safe shared state
9
Thread-level API shortcomings
10
Model #2: Task-based parallelism
11
Tasks are asynchronous
12
async execution
13
future and promise
14
packaged_task
15
What's C++ tasks model like?
16
Experimental future features
17
Coroutines and executors
18
Threads vs. tasks
19
Model #3: Data parallelism
20
C++ Parallel algorithms
21
Using parallel algorithms
22
sequenced_policy Forces execution to take place on the calling thread + Differs from no-policy call
23
Models comparison Unstructured
24
Mixing models - unstructured context
25
Mixing models - tasks context
26
Mixing models - parallel algorithms
27
Summary
Description:
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.

C++ Parallel Programming Models

NDC Conferences
Add to list
0:00 / 0:00