C++ Standard Parallelism - David Olsen - Meeting C++ 2022
ฝัง
- เผยแพร่เมื่อ 25 ส.ค. 2024
- C++ Standard Parallelism - David Olsen - Meeting C++ 2022
Slides: slides.meeting...
Survey: survey.meeting...
Imagine writing parallel code that can run on any platform - CPUs, GPUs, DPUs, specialized accelerators, etc. It's no longer just a dream - you can do it in Standard C++!
Parallelism is increasingly common in software, from supercomputer simulations to mobile applications. But writing parallel code is increasingly challenging, due to an explosion of diversity in hardware, a trend that's likely to continue into the future. To meet this challenge, the Standard C++ Committee has developed a roadmap for C++ Standard Parallelism, a parallel programming model that will be portable to all platforms while delivering reasonable performance and efficiency for most use cases.
Our vision of C++ Standard Parallelism consists of three key components:
Common parallel algorithms that dispatch to vendor-optimized parallel libraries
Tools to write your own parallel algorithms that run anywhere
Mechanisms for composing parallel invocations of algorithms into task graphs
In this talk, we'll dive into this roadmap - we'll discuss what we already have that you can use today, what's coming down the line, and where the future may lead us.
Slide 36 is suspicious. OpenMP, how many cores are you using? And if you get a factor of 13 on an A100, how about letting OpenMP offload to the A100? Since the C++ std algorithms have no notion of asynchronously moving the data to the GPU, OpenMP+offload should actually beat the pants of the std algorithms, since it does have such mechanism, allowing you to eliminate the latency bottlenck.
Looking forward to that syntax monstrosity !