Title
A Linux Kernel Scheduler Extension for Multi-core Systems
Abstract
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.
Year
DOI
Venue
2019
10.1109/HiPC.2019.00050
2019 IEEE 26th International Conference on High Performance Computing, Data, and Analytics (HiPC)
Keywords
DocType
ISSN
Linux Kernel Scheduler,Task-Based Programming Models,I/O,HPC
Conference
1094-7256
ISBN
Citations 
PageRank 
978-1-7281-4536-5
0
0.34
References 
Authors
0
5
Name
Order
Citations
PageRank
Aleix Roca Nonell100.68
Samuel Rodríguez200.34
Albert Segura300.34
Kevin Marquet4668.13
Vicenç Beltran58213.74