Not Just I/O: Using Async/Await for Computational Scheduling

Abstract

In the past two years I have developed a new query execution engine for Polars, which not only tries to execute as much of your query in parallel as possible, but in a streaming fashion as well, such that you can process data sets which do not fit in memory. This new query execution engine is heavily based on the async/await paradigm provided by Rust, and uses it to great effect.

In this talk I’d like to show that async/await is not just a tool to perform I/O requests asynchronously, but can in fact be used to build powerful cooperatively scheduled systems. Featuring custom async channels, primitives and multiple async runtimes, I show how it's used in Polars to achieve fine-grained, cache-friendly and NUMA-aware parallelism. My hope is to inspire you to look at async/await in a different way.


Speaker

Orson Peters

Senior Engineer of Query Execution @Polars, (Co-)Author of Stdlib Sort in Rust & Go

Orson works at Polars, where he focuses on query execution. He is passionate about optimizing code and squeezing the most performance possible out of a CPU, which is a perfect fit. He is the (co-)author of various sorting algorithms (e.g. pdqsort, driftsort, ipnsort), some of which are used in the Rust and Go standard libraries. He has also published fast hashing algorithms (foldhash, polymur-hash), and several other open-source Rust crates (e.g. slotmap).

Read more
Find Orson Peters at:

Date

Wednesday Mar 18 / 01:35PM GMT ( 50 minutes )

Location

Mountbatten (6th Fl.)

Share

From the same track

Session AI/ML

Navigating the Edge of Scale and Speed for Physics Discovery

Wednesday Mar 18 / 10:35AM GMT

Details coming soon.

Speaker image - Thea  Klaeboe Aarrestad

Thea Klaeboe Aarrestad

Particle Physics and Real-Time ML @CERN @ETH Zürich

Session

Teaching Your Compiler to Do the Heavy Lifting on Modern CPUs

Wednesday Mar 18 / 11:45AM GMT

Details coming soon.

Session

Using Data-Oriented Design to Minimize Cache Misses

Wednesday Mar 18 / 02:45PM GMT

Details coming soon.

Session

Continuous Profiling in Production: Finding the "Needle in the Haystack" Without Slowing Down the User

Wednesday Mar 18 / 03:55PM GMT

Details coming soon.