A Machine Learning Based Meta-Scheduler for Multi-Core Processors

A Machine Learning Based Meta-Scheduler for Multi-Core Processors

Jitendra Kumar Rai, Atul Negi, Rajeev Wankar, K. D. Nayak
DOI: 10.4018/978-1-4666-0255-7.ch014
(Individual Chapters)
No Current Special Offers


Sharing resources such as caches and memory buses between the cores of multi-core processors may cause performance bottlenecks for running programs. In this paper, the authors describe a meta-scheduler, which adapts the process scheduling decisions for reducing the contention for shared L2 caches on multi-core processors. The meta-scheduler takes into account the multi-core topology as well as the L2 cache related characteristics of the processes. Using the model generated by the process of machine learning, it predicts the L2 cache behavior, i.e., solo-run-L2-cache-stress, of the programs. It runs in user mode and guides the underlying operating system process scheduler in intelligent scheduling of processes to reduce the contention of shared L2 caches. In these experiments, the authors observed up to 12 percent speedup in individual as well as overall performance, while using meta-scheduler as compared to default process scheduler (Completely Fair Scheduler) of Linux kernel.
Chapter Preview

Metric To Characterize L2 Cache Behaviour

The meta-scheduler uses the solo-run-L2-cache-stress of programs to characterize their L2 cache behaviors. Solo-run-L2-cache-stress of a program is the number of misses and pre-fetches of L2 cache per instruction, experienced by that program while not sharing the L2 cache with programs running on other core.

The L2 cache stress observed (using the hardware performance counters) for a program running on a core is different from its solo-run-L2-cache-stress, if there is another program running on other core sharing the L2 cache with first. This is so because the observed L2 cache stress results from the interaction of their individual cache access patterns and working sets based on their locality. The meta-scheduler uses regression model to deduce the solo-run-L2 cache stress of running programs. The regression model was built off-line through the process of training machine learning algorithm.

Complete Chapter List

Search this Book: