Herb Sutter presents Concurrency and Parallelism. This was filmed at C++ and Beyond 2012.
Herb says:
I've spoken and written on these topics before. Here's what's different about this talk:
- Brand new: This material goes beyond what I've written and taught about before in my Effective Concurrency articles and courses.
- Cutting-edge current: It covers the best-practices state of the art techniques and shipping tools, and what parts of that are standardized in C++11 already (the answer to that one may surprise you!) and what's en route to near-term standardization and why, with coverage of the latest discussions.
- Mainstream hardware – many kinds of parallelism: What's the relationship among multi-core CPUs, hardware threads, SIMD vector units (Intel SSE and AVX, ARM Neon), and GPGPU (general-purpose computation on GPUs, which I covered at C++ and Beyond 2011)? Which are most interesting, what technologies are available now, and what's being considered for near-term standardization?
- Blocking vs. non-blocking: What's the difference between blocking and non-blocking styles, why on earth would you care, which kinds does C++11 support, and how are we looking at rounding it out in C++1y?
- Task and data parallelism: What's the difference between task parallelism and data parallelism, which kind of hardware does each allow you to exploit, and why?
- Work stealing: What's the difference between thread pools and work stealing, what are the major flavors of work stealing, which of these (if any) does C++11 already support and is already shipping on some advanced commercial C++ compilers today (this answer will likely surprise you), and what needs to be done in the next round for a complete state-of-the-art parallelism story in C++1y?
The answers all matter to you – even the ones not yet in the C++ standard – because they are real, available in shipping products, and affect how you design your software today.
This will be a broad and deep dive. At C++ and Beyond 2011, the attendees (audience!) included some of the world's leading experts on parallelism and compilers. At this session of C&B 2012, I expect anyone who wasn't personally at the SG1 meeting this month, even world-class experts, will learn something new in this talk. I certainly did, and that's why I'm motivated to turn the information into a talk and share. This isn't just cool stuff – it's important and useful in production code today.
Comments