当前位置: X-MOL 学术arXiv.cs.OS › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A Linux Kernel Scheduler Extension for Multi-core Systems
arXiv - CS - Operating Systems Pub Date : 2020-04-14 , DOI: arxiv-2004.06354
Aleix Roca, Samuel Rodr\'iguez, Albert Segura, Kevin Marquet, Vicen\c{c} Beltran

The Linux kernel is mostly designed for multi-programed environments, but high-performance applications have other requirements. Such applications are run standalone, and usually rely on runtime systems to distribute the application's workload on worker threads, one per core. However, due to current OSes limitations, it is not feasible to track whether workers are actually running or blocked due to, for instance, a requested resource. For I/O intensive applications, this leads to a significant performance degradation given that the core of a blocked thread becomes idle until it is able to run again. In this paper, we present the proof-of-concept of a Linux kernel extension denoted User-Monitored Threads (UMT) which tackles this problem. Our extension allows a user-space process to be notified of when the selected threads become blocked or unblocked, making it possible for a runtime to schedule additional work on the idle core. We implemented the extension on the Linux Kernel 5.1 and adapted the Nanos6 runtime of the OmpSs-2 programming model to take advantage of it. The whole prototype was tested on two applications which, on the tested hardware and the appropriate conditions, reported speedups of almost 2x.

中文翻译:

用于多核系统的 Linux 内核调度程序扩展

Linux 内核主要是为多程序环境设计的,但高性能应用程序还有其他要求。此类应用程序独立运行,通常依赖运行时系统将应用程序的工作负载分配到工作线程上,每个内核一个。但是,由于当前操作系统的限制,例如由于请求的资源,跟踪工作程序是实际运行还是被阻止是不可行的。对于 I/O 密集型应用程序,这会导致性能显着下降,因为阻塞线程的核心在能够再次运行之前变为空闲状态。在本文中,我们提出了一个 Linux 内核扩展的概念验证,称为用户监控线程 (UMT),它解决了这个问题。我们的扩展允许用户空间进程在所选线程被阻塞或解除阻塞时收到通知,从而使运行时可以在空闲核心上安排额外的工作。我们在 Linux Kernel 5.1 上实现了扩展,并调整了 OmpSs-2 编程模型的 Nanos6 运行时以利用它。整个原型在两个应用程序上进行了测试,在测试的硬件和适当的条件下,报告的速度提高了近 2 倍。
更新日期:2020-04-15
down
wechat
bug