Loading…
Attending this event?
• Concurrency clear filter
Wednesday, September 18
 

09:00 MDT

Coroutines and Structured Concurrency in Practice
Wednesday September 18, 2024 09:00 - 10:00 MDT
C++20 coroutines present some exciting opportunities for organizing and simplifying concurrent logic, but they have proven challenging to integrate with production systems. Object lifetime and execution order issues can be difficult to manage, especially without guidance from well-established best practices. Practical use requires interoperability with existing event loops and with non-coroutine-aware components. While some experimental libraries have started to be released, the C++ “async ecosystem” is still young compared to many other languages.

We will describe our path through this thicket and introduce Corral, a new open-source concurrency framework for C++ that attempts to tame it. Corral is built around structured concurrency principles, so lifetimes and control flow are easier to reason about. It does not provide any opinionated I/O layer, so it can work with the one you’re already using, or with a standard such as Boost.Asio. We have ported a number of our I/O-bound production processes to use this system, and have found the modernized versions to be substantially simpler with fewer weird bugs.

This talk is geared towards C++ developers who have some familiarity with coroutines but have found them challenging to work with. We will delve into the architectural design of our framework, offering insights that may be useful to others with similar needs. Special emphasis will be placed on practical aspects such as task cancellation, timeouts, and integration with legacy code. We will also share a few design patterns we’ve discovered after two years of production use.
Speakers
avatar for Dmitry Prokoptsev

Dmitry Prokoptsev

Core Developer, Hudson River Trading
Dmitry has been using C++ in his routine work for 17 years, mostly focusing on complex asynchronous I/O-bound applications. After working in companies like Yandex and Google, he joined Hudson River Trading, a quantitative trading firm in New York, where he develops and improves research... Read More →
Wednesday September 18, 2024 09:00 - 10:00 MDT
Adams A
 
Thursday, September 19
 

09:00 MDT

Performance engineering - being friendly to your hardware
Thursday September 19, 2024 09:00 - 10:00 MDT
Practical software does not run in abstract vacuum, it runs on underlying hardware platforms. Practical software engineering does not exist in abstract vacuum either. The software layer sits in between the domain specific requirements on top and the underlying runtime platforms below. Many interesting developments have happened on all three of those layers over the years, and while contemporary hardware has gone a long way forward, it often suffers from the attention deficit caused by an overshadowing flood of advancements and “advancements” in the software part of the universe. This new shiny programming language is safe, performant, and solves a backlog of problems that have been dragging for long. While that new shiny programming paradigm automagically relieves from dealing with low level details and the toolchain is plain amazing. The hardware side brings into this fistfight a set of new architectures, ISAs, and hardware abstractions – just to stay on par with the software side. Looks perfect? What else would an engineer dream about, no?
Not really. Let’s take a look at the contemporary commodity hardware platforms of today, and also at the trendy software engineering waves of today, and try to sense how and why it could (and frequently does) cross out the potential benefits of hardware advancements – and what could be done to actually be friendly to your underlying hardware, and at what cost.
Speakers
IB

Ignas Bagdonas

Principal Architect, Equinix
Ignas Bagdonas has been involved in network engineering field for over two decades, covering operations, deployment, design, architecture, development, and standardization aspects. He has worked on multiple large SP and enterprise networks worldwide, participated in many of the world's... Read More →
Thursday September 19, 2024 09:00 - 10:00 MDT
Cottonwood 8/9
 
Share Modal

Share this link via

Or copy link

Filter sessions
Apply filters to sessions.