Kvik: A task based middleware with composable scheduling policies
Saurabh Raje, Fr\'ed\'eric Wagner

TL;DR
Kvik is a task-based middleware in Rust that offers customizable scheduling policies, including adaptive and sequence-oriented schedulers, enabling efficient shared memory parallel programming with demonstrated performance improvements.
Contribution
The paper introduces Kvik, a flexible middleware with novel schedulers that optimize task splitting and execution, enhancing parallel performance in Rust applications.
Findings
Up to 1.5x speedup in parallel stable sort
Effective adaptive scheduler reduces task creation overhead
Composable schedulers improve parallel programming flexibility
Abstract
In this paper we present Kvik: an implementation of a task-based "middleware" for shared memory parallel programming in the Rust language built on top of the Rayon library. We devise a system allowing several task-splitting schedulers to be finely tuned by the end users. Among these, we propose an implementation of an adaptive scheduler reducing tasks creations (splits) to bare minimum by linking tasks splitting to steal requests. Another important scheduler that allows turning computations into sequences of parallel operations is described. This operator proves itself particularly useful for interruptible computations. We exhibit different code examples well suited for different types of schedulers. We conclude our work with a set of benchmarks making heavy use of composability. In particular we present a parallel stable sort implementation with up to 1.5x more speedup when compared to…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems · Distributed systems and fault tolerance
