Heterogeneous multicores offer flexibility in the form of different core types and Dynamic Voltage and Frequency Scaling (DVFS), defining a vast configuration space. The optimal configuration choice is not always straightforward, even for single applications, and becomes a very difficult problem for dynamically changing scenarios of concurrent applications with unpredictable spawn and termination times and individual performance requirements. This article proposes an integrated approach for runtime decision making for energy efficiency on such systems. The approach consists of a model that predicts performance and power for any possible decision and low-complexity heuristics that use this model to evaluate a subset of possible decisions to choose the best. The model predicts performance by projecting standalone application profiling data to the current status of the system and power by using a set of platform-specific parameters that are determined only once for a given system and are independent of the application mix. Our approach is evaluated with a plethora of dynamic, multi-application scenarios. When considering best effort performance to be adequate, our runtime achieves on average 3% higher energy efficiency compared to the powersave governor and 2× better compared to the other linux governors. Moreover, when also considering individual applications' performance requirements, our runtime is able to satisfy them, giving away 18% of the system's energy efficiency compared to the powersave, which, however, misses the performance targets by 23%; at the same time, our runtime maintains an efficiency advantage of about 55% compared to the other governors, which also satisfy the performance constraints. Authors' addresses: S. Tzilis, P. Trancoso, and I. Sourdis, CSE Department, Chalmer University of Technology, 412 96 Gothenburg Sweden; emails: {tzilis, ppedro, sourdis}@chalmers.se. 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. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from permissions@acm.org. Snapdragon [19] processors. They employ multiple types of cores (power-efficient and high performance), and multiple voltage-frequency pairs per cluster of cores. In this manner, they can potentially adapt to the fluctuating system workload and its needs at runtime. Such runtime variations stem from the number, type, and performance requirements of the workloads running at any given time on the system. Adapting the system to these dynamic changes can balance smooth application operation and performance with energy efficiency. In this context, choosing the optimal system configuration is often not straightforward. Executing an application on a power-efficient core might prolong execution enough to reduce energy efficiency, while choosing a high-performance core poses the opposite risk-an increase of power consumption outweighing performance gains. DVFS adds more complexity to this problem, as it is unclear how a high-performance core at a low frequency and a power-efficient core at a high frequency compare in terms of energy efficiency [26] . Interference between applications sharing system resources, i.e., levels of the memory hierarchy, makes the runtime decision even harder. In conclusion, today's Chip Multiprocessors (CMPs) offer great potential for performance and energy efficiency, which is not fully utilized due to the difficulty of choosing optimal configurations [6, 11, 13, 28] . In the past, the challenge of the system load being dynamic and unpredictable has been answered in the following two ways. Some solutions make an one-off decision whenever an event happens, such as an application spawning or termination. They predict the impact of such events using offline application characterization coupled with existing system monitoring information. Subsequently, they choose a new system configuration aiming to maximize energy efficiency, requiring little to no corrective action until the next event. However, predicting the performance of different applications running concurrently and competing for shared resources, is extremely complex. This leads to other solutions that avoid this challenge by following a trial-and-error approach. They begin with a naïve, even random, placement of applications and subsequently use online monitoring to gradually converge to a more energy-efficient system configuration, i.e., choice of cluster frequencies and/or application placements [5, 7] . Such approaches may require a long time to converge to a satisfactory configuration and may suffer from poor scaling of response time when system size increases. In this work, elements of both above approaches are combined. In response to an event (application spawning or termination), the space of possible system configurations is partially searched, predicting the energy efficiency of different options and selecting the best one. Subsequently, this decision can be revisited when more accurate system monitoring information becomes available. However, our main focus is on the initial prediction and decision step to minimize any need for subsequent adjustments. Gradually adapting the system can be a slow and costly process, especially when the initially selected configuration is inefficient. Thus, it is important that the first response to an event is an efficient one. The two main challenges of this approach are (i) creating a model that accurately predicts performance and power for arbitrary candidate system configurations and (ii) developing a fast and scalable decision algorithm, since it is not practical to evaluate all possible configurations at runtime. In an attempt to face these challenges, this article makes the following novel contributions:
Tzilis et al. REF uses profiling data to predict the performance and energy consumption of a singlethreaded application co-scheduled with another applications, and decides on application placement and frequency settings.
Energy-Efficient Runtime Management of Heterogeneous Multicores using Online Projection
TACO
Computer Science