REEact: A Customizable Virtual Execution Manager for Multicore Platforms Wei Wang University of Virginia wwang@virginia.edu Tanima Dey University of Virginia td8h@virginia.edu Ryan W. Moore University of Pittsburgh rmoore@cs.pitt.edu Mahmut Aktasoglu Pennsylvania State University msa203@cse.psu.edu Bruce R. Childers University of Pittsburgh childers@cs.pitt.edu Jack W. Davidson University of Virginia jwd@virginia.edu Mary Jane Irwin Pennsylvania State University mji@cse.psu.edu Mahmut Kandemir Pennsylvania State University kandemir@cse.psu.edu Mary Lou Soffa University of Virginia soffa@virginia.edu Abstract With the shift to many-core chip multiprocessors (CMPs), a critical issue is how to effectively coordinate and manage the execution of applications and hardware resources to overcome performance, power consumption, and reliability challenges stemming from hardware and application variations inherent in this new computing environment. Effective resource and application management on CMPs requires consideration of user/application/hardware-specific requirements and dynamic adaption of management decisions based on the actual run-time environment. However, designing an algorithm to manage resources and applications that can dynami- cally adapt based on the run-time environment is difficult because most resource and application management and monitoring facil- ities are only available at the operating system level. This paper presents REEact, an infrastructure that provides the capability to specify user-level management policies with dynamic adaptation. REEact is a virtual execution environment that provides a frame- work and core services to quickly enable the design of custom management policies for dynamically managing resources and ap- plications. To demonstrate the capabilities and usefulness of REE- act, this paper describes three case studies—each illustrating the use of REEact to apply a specific dynamic management policy on a real CMP. Through these case studies, we demonstrate that REEact can effectively and efficiently implement policies to dynamically manage resources and adapt application execution. Categories and Subject Descriptors D.4.1 [Process Manage- ment]: Multiprocessing/multiprogramming/multitasking General Terms Performance, Management, Design Keywords Chip multiprocessor, Resource management, Run- time adaptation, Virtual Execution Environment Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. VEE’12, March 3–4, 2012, London, England, UK. Copyright c 2012 ACM 978-1-4503-1175-5/12/03. . . $10.00 1. Introduction As the core counts and sophistication of modern chip multiproces- sors (CMPs) increases, adaptive resource management techniques are needed to realize the full potential of these microarchitec- tural advances. There have been a flurry of such techniques pro- posed by the research community, such as cache contention man- agement [8, 17, 34], processor temperature management [31, 32], and process variation management [29, 30]. While these and other adaptive policies have shown significant promise, Users, such as system administrators, application developers, and other technical experts, are in need of a platform to create, customize, and de- ploy adaptive resource management policies that address a myr- iad of design goals and requirements. These policies must also be plug and play as user-specific, application-specific and hardware- specific goals change. For example, consider two users. The users are executing the same application on two identical machines (i.e., the same CMP architecture). However, the users have two distinct requirements. UserA has a tight power budget and prefers a management policy that focuses on minimizing power consumption. UserB desires a management policy that prioritizes performance over power con- sumption. These goals are contradictory and require distinct man- agement policies. Given the wide range of distinct requirements, it is desirable that management frameworks support flexibility as user requirements, or application requirements, or even hardware characteristics, change. Currently, most resource management policies are implemented in the operating system (OS) kernel. However, the OS is not well- suited for implementing and incorporating custom policies for two reasons: 1. The OS is not designed to take into account application-specific information when making management decisions. However, with application-specific information, user-level management policies can adjust the execution of applications in a way that is not possible with current OSes. For example, consider an application that uses work-stealing. Work-stealing allows the number of worker threads spawned by the application to be dy- namically adjusted. If details of the work-stealing design are known, the management policy can dynamically increase the number of the application’s worker threads when the system 27