Loading…
strong>• Embedded [clear filter]
arrow_back View All Dates
Tuesday, September 17
 

09:00 MDT

Multi Producer, Multi Consumer, Lock Free, Atomic Queue - User API and Implementation
Tuesday September 17, 2024 09:00 - 10:00 MDT
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.
Speakers
avatar for Erez Strauss

Erez Strauss

Strat - Sr Software Engineer, Eisler Captal
Erez Strauss worked in Banks and Hedge Funds while focused on low latency systems.
Tuesday September 17, 2024 09:00 - 10:00 MDT
Adams A

10:30 MDT

C++ Exceptions for Smaller Firmware
Tuesday September 17, 2024 10:30 - 12:00 MDT
For years, developers have overlooked a powerful tool for reducing binary size: C++ exceptions. Join me on a deep dive into the world of exceptions and discover how they can be harnessed to create more space efficient firmware. We’ll explore the requirements and best practices of embedded development, and show what is required to use exceptions in that environment. By the end of this talk, you’ll have a thorough understanding of how exceptions are handled, what their space costs are, and how exceptions compare to functional errors as values.
Speakers
avatar for Khalil Estell

Khalil Estell

Software Engineer
Khalil is a ISO C++ Committee Member and has extensive experience writing production firmware.
Tuesday September 17, 2024 10:30 - 12:00 MDT
Adams A

14:00 MDT

Leveraging C++20/23 Features for Low Level Interactions
Tuesday September 17, 2024 14:00 - 15:00 MDT
Low level interactions are a core part of embedded implementations. All too often, C++ developers rely on C constructs and interactions due to prior biases around language support.  Herein we present effective leveraging of C++20 and C++23 constructs in an embedded driver code base. From using an existing C driver more effectively with modern C++ smart pointers to leveraging constexprs for bit and byte manipulation in the standard library, we will go over how you can stay on the cutting edge of the C++ language evolution in the embedded space.
Speakers
avatar for Jeffrey Erickson

Jeffrey Erickson

HW/SW Co-Design Architect, Altera, an Intel Company
Jeffrey E Erickson works in HW/SW Codesign Architecture at Altera, an Intel company. He holds a BS in Electrical and Computer Engineering from the University of Virginia and a doctorate from Rutgers University and UMDNJ. For 15 years he has worked in embedded systems development including... Read More →
Tuesday September 17, 2024 14:00 - 15:00 MDT
Cottonwood 2/3
 
Share Modal

Share this link via

Or copy link

Filter sessions
Apply filters to sessions.
Filtered by Date -