Workshop: More Concurrent Thinking in C++: Beyond the Basics - Day 1/2
Our two-day More Concurrent Thinking in C++: Beyond the Basics workshop helps your developers learn how to build better reusable abstractions such as thread pools and actors for multithreading and concurrency using the basic building blocks in the C++ Standard Library. This will include issues to watch out for when writing and using such abstractions, and how to avoid them.
The workshop will cover the new multithreading facilities being introduced to upcoming versions of the C++ Standard and how they will simplify the life of a library or application developer.
Attendees will also encounter the issues surrounding scalability, the pitfalls that arise when you run code designed for small numbers of cores or increasingly large numbers of cores, and how to design your code to minimize the problems.
Finally, attendees will also be shown how to test multithreaded code, including the use of tools like Thread Sanitizer.
There will be exercises throughout the workshop.
This workshop will cover:
- Thread pools and tasks
- How to write a thread pool. Potential issues with thread pools.
- Task allocation strategies such as work stealing.
- Managing lifetimes with concurrent tasks.
- Using actors and message-passing to simplify concurrent code.
- New facilities from future C++ Standards:
- RCU and hazard pointers
- Latches and barriers
- Testing concurrent code
- How to test multithreaded code, including the use of tools like Thread Sanitizer
- Guidance on writing code that works across a wide range of systems, or scales as the system grows.
- Atomics and lock-free code
- A refresher on the C++ memory model, and guidance on how to write lock-free code.