Process spawning performance in Rust | Kobzol’s blog
As part of my PhD studies, I’m working on a distributed task runtime called HyperQueue. Its goal is to provide an ergonomic and efficient way to execute task graphs on High-Performance Computing (HPC) distributed clusters, and one of its duties is to be able to spawn a large amount of Linux processes efficiently. HyperQueue is of course written in Rust1, and it uses the standard library’s Command API to spawn processes2. When I was benchmarking how quickly it can spawn processes on an HPC cluster, I found a few surprising performance bottlenecks, which I will describe in this post. Even though most of these bottlenecks are only significant if you literally spawn thousands of processes per second, which is not a very common use-case, I think that it’s still interesting to understand what causes them. Note that this is a rather complex topic, and I’m not sure if I understand all the implications of the various Linux syscalls that I talk about in this post. If you find something that I go
As part of my PhD studies, I’m working on a distributed task runtime called HyperQueue . Its goal is to provide an ergonomic and efficient way to execute task graphs on High-Performance Computing (HPC) distributed clusters, and one of its duties is to be able to spawn a large amount of Linux processes efficiently. HyperQueue is of course written in Rust 1 , and it uses the standard library’s Command API to spawn processes 2 . When I was benchmarking how quickly it can spawn processes on an HPC cluster, I found a few surprising performance bottlenecks, which I will describe in this post. Even t
Explore this link on the map →related reading
- Measuring Mutexes, Spinlocks and how Bad the Linux Scheduler Really is | Probably Danceprobablydance.com
- Rewriting Bun in Rust | Bun Blogbun.com
- Using Threads to Run Code Simultaneously - The Rust Programming Languagedoc.rust-lang.org
- Spinlocks Considered Harmfulmatklad.github.io
- Writing an OS in Rustos.phil-opp.com
- To Thread or Not to Thread: An In-Depth Look at Ruby’s Execution Models - Shopifyshopify.engineering
- Processes and Threads — PlanetScaleplanetscale.com
- Async Rust Is A Bad Languagebitbashing.io
- Concurrency Patterns in Embedded Rust - Ferrous Systemsferrous-systems.com
- Behind The Scenes of Bun Install | Bun Blogbun.com
- Is there a good read on different async runtimes? - help - The Rust Programming Language Forumusers.rust-lang.org
- Reddit - Please wait for verificationreddit.com