Empirical Analysis of Rayon Usage in Rust
W.F. Rosellon Prakoso (TU Delft - Electrical Engineering, Mathematics and Computer Science)
M.A. Costea – Mentor (TU Delft - Electrical Engineering, Mathematics and Computer Science)
R.W. Backx – Mentor (TU Delft - Electrical Engineering, Mathematics and Computer Science)
P. Pawelczak – Graduation committee member (TU Delft - Electrical Engineering, Mathematics and Computer Science)
More Info
expand_more
Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.
Abstract
Rust provides performance, memory safety, and the promise of “fearless concurrency,” owing to its robust ownership system. Rayon has become a widespread library for data parallelism within Rust, enabling programmers to incorporate concurrency into their programs seamlessly.
This work presents the most common Rayon usages across the top 1000 open-source Rust repositories on Github, measured by stargazer count and filtered for usage of Rayon. We perform a manual analysis on 5 repositories, identifying themes within selected instances.
We contextualise these themes to characterize how Rayon is used for complex workloads, where unsafe code is combined with Rayon, and where parallel iterators are insufficient.