arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2009.05504cs.DC
收藏

Kvik:一个基于任务的可组合调度策略中间件

Kvik: A task based middleware with composable scheduling policies

Saurabh Raje, Frédéric Wagner

摘要:

在本文中,我们提出了Kvik:一个基于任务的“中间件”的实现共享内存并行编程的Rust语言建立在Rayon库的顶部。我们设计了一个系统,允许几个任务分解的机器人进行微调的最终用户。其中,我们提出了一个自适应调度器的实现减少任务创建(分裂)到最低限度的链接任务分裂窃取请求。另一个重要的调度程序,允许把计算序列的并行操作的描述。这个算子证明了它对可中断计算特别有用。我们展示了不同的代码示例,非常适合不同类型的编译器。我们用一组大量使用可组合性的基准来结束我们的工作。特别是,我们提出了一个并行的稳定排序实现高达1.5倍的加速比相比,最先进的并行排序实现。

英文摘要:

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 the state-of-the-art parallel sorting implementation.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑