Phase-guided Auto-Tuning for Improved Utilization of Performance-Asymmetric Multicore Processors







Deposit Papers 


Sondag, Tyler and Rajan, Hridesh (2009) Phase-guided Auto-Tuning for Improved Utilization of Performance-Asymmetric Multicore Processors. Technical Report 08-14a, Computer Science, Iowa State University.

Full text available as:Adobe PDF

There is a later version of this eprint available: Click here to view it.


The latest trend towards performance asymmetry among cores on a single chip of a multicore processor is posing new software engineering challenges for developers. A key challenge is that for effective utilization of these performance-asymmetric multicore processors, application threads must be assigned to cores such that the resource needs of a thread closely matches resource availability at the assigned core. Determining this assignment manually is tedious, error prone, and it significantly complicates software development. We contribute a transparent and fully-automatic analysis technique, which we call phase-guided auto-tuning, to solve this problem. Phase-guided auto-tuning adapts an application to effectively utilize performance-asymmetric cores of a processor. Our technique does not require any changes in the compiler or operating system, thus it is easy to deploy in existing tool chains. It does not require any input from the programmer except the application. Furthermore, it is independent of the characteristics (performance-asymmetry) of the target multicore processor, which has two benefits. First, it avoids the need to create multiple customizations of the binary for each target architecture, and second it relieves the programmer of the burden of anticipating the target architecture. Last but not least, our technique significantly improves performance. Compared to the stock Linux scheduler, our best technique shows 116% improvement in throughput and 29% average process speedup, while maintaining fairness and with negligible overheads.

Keywords:static program analysis, heterogeneous multi-core processors, thread-to-core assignment, phase behavior
Subjects:Software: SOFTWARE ENGINEERING (K.6.3): Coding Tools and Techniques
Software: OPERATING SYSTEMS (C): Performance (C.4, D.2.8, I.6)
ID code:00000596
Deposited by:Tyler Sondag on 16 March 2009

Available Versions of This Paper

Contact site administrator at: