CppCon 2024 Multi Producer, Multi Consumer, Lock Free Atomic Queue -- Erez Strauss
Registration is now open for CppCon 2024! The conference starts on September 15 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting some upcoming talks that you will be able to attend this year. Here’s another CppCon future talk we hope you will enjoy – and register today for CppCon 2024!
Multi Producer, Multi Consumer, Lock Free Atomic Queue
Tuesday, September 17 • 0900 - 10:00 MDT
by Erez Strauss
Summary of the talk:
This presentation introduces a multi-producer, multi-consumer, lock-free queue with unique characteristics. We will cover the C++17 implementation and the std::atomic features required for this queue based on the CPU atomic instructions and discuss the queue's portability across various CPU architectures, beyond just X86_64 and runtime environments.
Efficient message queue-based communication between threads is crucial for optimal performance in multi-threaded applications. Queues are fundamental data structures that interact with various aspects of the application environment, including schedulers, memory allocation systems, and CPU hardware architectures.
Many use cases such as trading platforms, games, audio processing and other fields have strict latency and scaling requirements and this queue implementation has proved to reduce system latencies.
The presentation will feature the design of the queue, the required template language features, bandwidth and latency consideration, and multiple demo applications. Comparing this queue implementation’s benchmark results with other existing queues will follow. Finally, we will discuss potential future work and areas for improvement.
Join us to explore how this innovative queue implementation can improve your multi-threaded application performance.
All presentation materials, including the C++17 source code, slides, benchmarks, and demo applications are available on GitHub.
Erez Strauss worked in Banks and Hedge Funds while focused on low latency systems.