CppCon 2020 has ended
Back To Schedule
Monday, September 14 • 12:00 - 13:00
The Future of C++ Parallel and Concurrency Safety Guidelines

Log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
As we move into a world of multicore, manycore, and heterogeneous cores, we foresee a need for safety guidelines and standards for these domains. Yet most safety guidelines only cover sequential programming.

There has never really been any guidelines for safe parallel/concurrency C++. This is not an oversight. The challenge of creating safety standards and guidelines has been so involved that just focusing on the rules for sequential programming has consumed most group's time, especially as they track a rapidly changing C++ Standard. There have been only a few concurrency related-rules in HIC++, SEI CERT C++, C++CG, WG23, Khronos Safety forum(SCAF), as well as several European H2020 projects, though none of them are specifically for static analyzers, with a mixture of meta-guidelines and specific guidance. However, they have formed a useful starting point Over the last 2 years, I have been working with experts from various Safety Groups including WG23, SG1, and MISRA to develop a set of guidelines for safe concurrency and have developed nearly 100 rules which I plan to put into C++CG, and MISRA C++. We have needed this collaboration among all the groups because not everyone who is a concurrency expert is a safety experts, and vice versa. Many more people are experts in neither domain, and need to still understand how to program parallelism and concurrency safely.

In this talk, I will show some of the developing rules, none of it will be in its final form obviously, but it will develop the argument on the rationale on these rules. Some are uncheckable and are more meta-rules that are appropriate for C++ CG, such as don't use Mutex. But if you do, there are a bunch of more specific rules that you need to be aware of (i.e.e do not destroy a locked mutex while some are very specific). Others are checkable and are appropriate for a safety standard like MISRA C++ or a future Safe version of SYCL or any other heterogeneous framework. As none of these rules are in any guideline or standard as yet, there will be an opportunity for you to participate and help shape the future of safety in parallelism and concurrency.

avatar for Michael Wong

Michael Wong

DE, Codeplay
avatar for Ilya Burylov

Ilya Burylov

Principal Engineer, Intel Corporation
Ilya is an architect of C++ software solutions for autonomous driving market. He is working on contribution into functional safety standard MISRA and C++ standard bodies in threading and vectorization.Ilya has contributed into various Intel software products such as Intel DAAL and... Read More →

Monday September 14, 2020 12:00 - 13:00 MDT
  • Concurrent/Async/Parallel