Toolbox

Our Emperor Sponsors

  • InternetNZ
  • Google
  • IBM
  • HP

<-- Back to schedule

Using performance counters to optimize task placement on multi-core systems

Time:14:30 - 15:15
Day:Wednesday 20 January 2010
Location:Renouf 2 (MFC)

Multi-core platforms pose interesting challenges for software in how they efficiently utilize vast number of compute resources and work around the constraints. One particular challenge relates to task scheduling. The way in which OS places the application tasks on different cores of a multi-core system can affect the overall performance of the application. Currently, to achieve an optimal placement, application tasks may have to be bound to different cores by hand. This method is not always feasible and hence automatic optimization for task placement by OS scheduler is desirable.



We propose an approach to optimize task placement automatically in multi-core systems. In this approach, we use hardware performance counters to characterize the task's resource usage (CPU, L2/L3 cache etc). This information is then used to influence the load balancing decisions to achieve an optimal task placement. For example, with our approach, two memory hungry tasks would be automatically placed in two cores of different physical packages so that the contention on shared L2/L3 cache is minimized leading to greater memory bandwidth. Similarly two CPU hungry tasks will not be co-scheduled on two threads of the same multi-threaded CPU core.



We also look at the various contradictory goals that have to be met within the scheduler (for eg., optimal placement vs fairness) so that the approach works for most kind of workloads.



Co-authors:

  • Srivatsa Vaddagiri
  • Vaidyanathan S

Bharata B Rao

Bharata B Rao is working with IBM's Linux Technology Center as a kernel engineer concentrating primarily on scheduler. Earlier he has worked on file systems (Union Mount) and serviceability features for Linux like Dynamic Probes (the base from which the current kprobes has evolved) and Crash dumps(LKCD). He has also worked for a brief while in embedded Linux and Linux clusters(OpenSSI). Bharata graduated from The National Institute of Engineering, Mysore in 1999 and did his post graduation(MS) from BITS, Pilani in 2003.

In his spare time, Sanskrit language, Mountains and Mridangam (an Indian percussion instrument) keep him engaged.