A Linux kernel scheduler extension for multi-core systems
Document typeConference report
PublisherBarcelona Supercomputing Center
Rights accessOpen Access
Current runtime systems take care of getting the mostofeachsystemcorebydistributingworkamongthemultiple CPUs of a machine but they are not aware of when one of their threads (workers) perform blocking calls (e.g. I/O operations). When such a blocking call happens, the processing core is stalled, leading to performance loss. In this project, we present two new and independent methods to minimize the effect of I/O operations: The ﬁrst one is a Linux kernel extension denoted User-Monitored Threads (UMT) and the second one is a userspace library named libsio2aio. Our Linux kernel extension allows a user-space application to be notiﬁed of the blocking and unblocking of its threads, making it possible for a core to execute another worker thread while the other is blocked. The libsio2aio library intercepts the family of read/write system calls, interchanges them by its asynchronous version, and returns control back to the runtime while the I/O operation is being resolved. In both cases we use the Nanos6 runtime to test the new methods.
CitationRoca, A.; Beltran, V.; Marquet, K. A Linux kernel scheduler extension for multi-core systems. A: BSC Severo Ochoa International Doctoral Symposium (5th: 2018: Barcelona). "Book of abstracts". Barcelona: Barcelona Supercomputing Center, 2018, p. 54-55.