Fair Threaded Task Scheduler Verified in TLA+

Vladislav Shpilevoy

- Hello, my name is Vlad, I am a C/C++ developer with 8 years of experience and right now work at a gamedev company Ubisoft, mostly with low-level networking and system programming. - In Ubisoft while doing a complete rewrite of networking stack in one of game engines I created a cool algorithm for doing so called "task scheduling" which very much improved perf of our online backend. - Today I share the algorithm in a form of the talk and an open-sourced C++ implementation. Although can also be done in some other language. Today we focus only on the algorithms. - There is a lot of content, so we will be going quick, and I ask you people to concentrate with all your might. ## For readers In the speaker notes the sign (>>) means you need to press 'Space' to go to the next frame.
Fair Threaded Task Scheduler Verified in TLA+ Vladislav Shpilevoy github.com/ubisoft/task-scheduler

Highload 2022: Fair threaded task scheduler verified in TLA+

By Vladislav Shpilevoy

Highload 2022: Fair threaded task scheduler verified in TLA+

Algorithm for a multithreaded task scheduler for languages like C, C++, C#, Rust, Java. C++ version is open-sourced. Features: (1) formally verified in TLA+, (2) even CPU usage across worker threads, (3) coroutine-like functionality, (4) almost entirely lock-free, (5) up to 10 million RPS per thread. Key points for the potential audience: fair task scheduling with multiple worker threads; open source; algorithms; TLA+ verified; up to 10 million RPS per thread; for backend programmers; algorithm for languages like C++, C, Java, Rust, C# and others.

  • 644