<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Minimizing Energy Under Performance Constraints on Embedded Platforms Resource Allocation Heuristics for Homogeneous and Single-ISA Heterogeneous Multi-Cores</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Connor</forename><surname>Imes</surname></persName>
							<email>ckimes@cs.uchicago.edu</email>
							<affiliation key="aff0">
								<orgName type="institution">University of Chicago</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Henry</forename><surname>Hoffmann</surname></persName>
							<email>hankhoffmann@cs.uchicago.edu</email>
							<affiliation key="aff1">
								<orgName type="institution">University of Chicago</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">Minimizing Energy Under Performance Constraints on Embedded Platforms Resource Allocation Heuristics for Homogeneous and Single-ISA Heterogeneous Multi-Cores</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">7365B4D2D6E468DA49FBCD3C6D0C0CD3</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T07:38+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Modeling Techniques; I.2.8 [Problem Solving</term>
					<term>Control Methods</term>
					<term>Search]: Heuristic Methods</term>
					<term>Scheduling Experimentation</term>
					<term>Measurement</term>
					<term>Performance Power-aware computing</term>
					<term>energy-aware computing</term>
					<term>resource allocation</term>
					<term>optimization</term>
					<term>heterogeneous architectures</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This paper explores the problem of energy optimization in embedded platforms. Specifically, it studies resource allocation strategies for meeting performance constraints with minimal energy consumption. We present a comparison of solutions for both homogeneous and single-ISA heterogeneous multi-core embedded systems. We demonstrate that different hardware platforms have fundamentally different performance/energy tradeoff spaces. As a result, minimizing energy on these platforms requires substantially different resource allocation strategies. Our investigations reveal that one class of systems requires a race-to-idle heuristic to achieve optimal energy consumption, while another requires a never-idle heuristic to achieve the same. The differences are dramatic: choosing the wrong strategy can increase energy consumption by over 2× compared to optimal.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">INTRODUCTION</head><p>Embedded systems require predictable performance such as real-time or quality-of-service guarantees to meet their design requirements. At the same time, these systems are often limited by available energy. Embedded systems designers must therefore contend with the constrained optimization problem of meeting performance guarantees while minimizing energy consumption.</p><p>To support systems designers, embedded processors are becoming increasingly configurable. These processors expose a number of components which can be managed in software to change the system's performance/power tradeoffs. Embedded operating systems could potentially reduce the burden of energy minimization by automatically scheduling resource usage to meet the performance constraint and minimize energy.</p><p>Unfortunately, scheduling multiple resources, each with their own unique power and performance tradeoffs, is a difficult problem. In practice, most designers turn to heuristic solutions that ensure the performance targets are met and approximate the minimal energy solution. The race-to-idle heuristic, in particular, is often employed because it is easy to implement and has achieved acceptable results in practice. This heuristic simply makes all resources available to an application until it completes and then idles the system, taking advantage of low-power states.</p><p>As the diversity of embedded systems increases, it is increasingly unlikely that any single heuristic will perform well across all systems. In this paper, we investigate heuristics for scheduling on configurable embedded architectures to meet application performance constraints and minimize energy. We first discuss a formulation of the scheduling problem as a linear program which is general enough to capture scheduling across a variety of configurable systems. We then discuss two heuristics and describe their relationship to the linear program. Specifically, we compare race-to-idle to never-idle, which tries to keep the system busy until the task deadline. We capture empirical data from four benchmarks on two embedded systems and derive an oracle representing optimal energy consumption for each benchmark and system. We then model the energy consumption of the race-to-idle and never-idle heuristics and compare them to the oracles.</p><p>Our two systems are: a Sony Vaio tablet, with an Intel Haswell processor, and an ODROID development board, with an ARM big.LITTLE processor. Our results indicate that no single heuristic is effective on both platforms, and the differences are striking. On the Vaio, the race-to-idle heuristic is near optimal, while the never-idle heuristic consumes 28% more energy than optimal on average. In contrast, on the ODROID, never-idle is within 15% of optimal, while race-to-idle consumes 2.43× more energy. These results hold despite the fact that the ODROID's idle power consumption is only a small fraction of the Vaio's. Although counter-intuitive, the race-to-idle approach is actually better on the system with higher idle power. Our study indicates that a general, portable resource allocator for embedded systems must be flexible enough to match the resource allocation strategy to the characteristics of the hardware.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">BACKGROUND</head><p>Energy optimization under performance constraints is a widely studied problem both in theory and in practice.</p><p>Embedded hardware platforms support energy management by exposing configurable components. For example, dynamic voltage and frequency scaling (DVFS) gives software control over processor speed <ref type="bibr" target="#b19">[20,</ref><ref type="bibr" target="#b21">22]</ref>, which can then be tuned to ensure that performance targets are met while energy is minimized. Theoretical results have produced optimal uniprocessor scheduling algorithms for DVFS <ref type="bibr" target="#b0">[1]</ref>.</p><p>As energy reduction has become increasingly important, processors have become increasingly configurable. For example, some processors augment DVFS with a sleep state, allowing a system with no work to reduce power consumption <ref type="bibr" target="#b11">[12]</ref>. For even a single core system with a low-power idle state and DVFS, optimal energy scheduling is intractable, but approximation algorithms have been developed that are within a bounded distance from optimal <ref type="bibr" target="#b1">[2]</ref>.</p><p>Despite this difficulty, embedded systems now include not only DVFS and idle states, but also multiple processing cores and even heterogeneous multi-cores, each with different capabilities <ref type="bibr" target="#b12">[13,</ref><ref type="bibr" target="#b13">14]</ref>. Even for a single application, scheduling for multiple cores, core types, DVFS settings, and idle states is challenging, but worth pursuing. Empirical evidence has repeatedly shown that configuring across multiple resources provides greater energy efficiency than working with only a single component <ref type="bibr" target="#b6">[7,</ref><ref type="bibr" target="#b8">9,</ref><ref type="bibr" target="#b9">10,</ref><ref type="bibr" target="#b16">17,</ref><ref type="bibr" target="#b17">18]</ref>.</p><p>Case studies done in the early and middle part of the 2000s found that the complexity of theoretically optimal schedulers provided little to no benefit in practice <ref type="bibr" target="#b2">[3,</ref><ref type="bibr" target="#b15">16,</ref><ref type="bibr" target="#b18">19,</ref><ref type="bibr" target="#b20">21]</ref>. Instead, these studies indicated the well-known race-to-idle heuristic, which allocates all resources to complete a task and then idles until the next task is ready, is often close to optimal. More recent studies, however, suggest that this trend is starting to reverse; they call into question the efficacy of the race-to-idle heuristic <ref type="bibr" target="#b4">[5,</ref><ref type="bibr" target="#b7">8,</ref><ref type="bibr" target="#b14">15]</ref>. These contradictory results suggest that it is time to re-evaluate resource allocation approaches and re-examine the potential energy savings of more sophisticated algorithms while keeping in mind practical implications.</p><p>In this paper, we express the problem of allocating resources in a configurable system as a linear optimization which minimizes energy subject to a performance constraint. We then consider two common heuristic solutions to the problem and compare their performance on two different embedded systems. Our results indicate that the effectiveness of the heuristics is entirely system dependent. Therefore, a generalized approach that works across a range of systems will need to be more sophisticated than either heuristic alone.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">ENERGY OPTIMIZATION</head><p>Our goal is to generalize the problem of allocating system resources to complete a task by a deadline while minimizing energy. We assume a task consists of some amount of work to be accomplished. We assume that the system is configurable -a configuration represents an assignment of resources to a task. In a heterogeneous system, for example, a configuration could represent the assignment of a core type and clockspeed. As more resources can be assigned to a task, the number of possible configurations increases. Each configuration produces a different performance and power consumption. We assume that tasks can be assigned time with different system configurations. The energy optimization problem, then, is to assign a time to each possible configuration such that the total work accomplished is equal to the task's work and the total energy consumption is minimized. Some configurations may be assigned zero time, meaning the task will not make use of them.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Problem Formulation</head><p>We build on prior work that expressed this problem as a linear program <ref type="bibr" target="#b7">[8]</ref>. We assume that a task starts at time 0, has a workload of W work units, and a deadline at time t. The system has C configurations such that c ∈ {0, . . . , C − 1}. Each configuration has a performance (work rate) rc and a power consumption pc. By convention, we denote c = 0 to be the system idle state with r0 = 0 and p0 = p idle . This idle power consumption is a constant property of the system. Also by convention, we denote c = C −1 as the configuration that allocates all resources to the task. For example, in a two core system with four different clock speeds, there are nine configurations (2cores × 4speeds + idle), and c = 8 is the assignment of all cores at the highest speed.</p><p>We schedule time tc in each configuration where 0 ≤ tc ≤ t, ∀c. Each configuration contributes tc • rc work and consumes tc • pc energy. Energy minimization under a performance constraint can then be formulated as the following linear program:</p><formula xml:id="formula_0">minimize c tc • pc<label>(1)</label></formula><p>subject to</p><formula xml:id="formula_1">c tc • rc = W (2) c tc = t (3) t ≥ tc ≥ 0, for c = 0, . . . , C − 1 (4)</formula><p>Equation 1 is the objective function representing total energy consumption. Equation <ref type="formula">2</ref>is the constraint that all work is completed, while Equations 3 and 4 ensure the deadline is respected. This is an entirely general formulation of the problem. It is applicable to any configurable system, deadline, and workload. The issue is that as system complexity (i.e., the number of configurable components) grows, the number of configurations increases exponentially. Thus, this problem is often difficult to solve in practice. The great irony is that solving this problem would reduce energy consumption, but embedded systems are often too resource constrained to tackle such a difficult problem in the first place.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Heuristic Scheduling Strategies</head><p>Given the difficulty of solving this problem in practice, we consider heuristic solutions. Interestingly, several wellknown heuristics map directly onto the structure of this op-timization problem. These heuristic solutions meet the constraints -they complete the work by the deadline -but may consume more energy than the true optimal solution. Specifically, this paper considers two heuristics:</p><p>• race-to-idle: Also known as race-to-complete or raceto-halt, this heuristic makes all resources available (i.e., schedules all time in configuration c = C − 1) until the task completes and then idles (i.e., schedules remaining time in c = 0) until the next task arrives. Formally, the time spent in each configuration is:</p><formula xml:id="formula_2">tC−1 = W rC−1<label>(5)</label></formula><formula xml:id="formula_3">t idle = t − tC−1 (6) tc = 0, ∀c = C − 1, idle<label>(7)</label></formula><p>• never-idle: This heuristic attempts to keep the system busy (but perhaps not fully utilized) and complete the work just at the deadline. This strategy schedules time in two configurations: the lowest power state that is just faster than necessary, hi, and the most efficient state that is slower than necessary, lo:</p><formula xml:id="formula_4">hi = arg min k∈C {p k |r k ≥ W/t} (8) lo = arg max k∈C {r k /p k |r k &lt; W/t}<label>(9)</label></formula><p>The time spent in each state is then:</p><formula xml:id="formula_5">t hi = W − r lo • t r hi − r lo<label>(10)</label></formula><formula xml:id="formula_6">t lo = r hi • t − W r hi − r lo<label>(11)</label></formula><formula xml:id="formula_7">tc = 0, ∀c = hi, lo<label>(12)</label></formula><p>These two strategies place different burdens on implementers. Race-to-idle is exceptionally easy to implement. It simply allocates all resources and then transitions to the idle state when the work completes as defined in Equations 5 and 6. Implementing race-to-idle requires no insight into the performance or power delivered by the system -it only requires recognizing when the task has finished. This heuristic is also portable -the same strategy can be easily implemented on any system. In contrast, the never-idle heuristic requires more insight into the application's performance and system power in different configurations. Specifically, it requires selecting the hi and lo states and it may be harder to port from system to system as the interfaces to different configurations may change. In addition, some configurable components may not be available on different systems.</p><p>The next section evaluates these heuristics.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">EMPIRICAL EVALUATION</head><p>In this section we describe two embedded platforms and our approach to characterizing their properties. We then analyze the results and discover that the two platforms have contrasting performance/energy tradeoff spaces that require different heuristics to achieve optimal energy efficiency.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Evaluation Platforms</head><p>Two different embedded platforms are evaluated -one with homogeneous multi-cores and the other with single-ISA, heterogeneous multi-cores. The homogeneous system To measure power on the Vaio we use the Haswell processor's Model-Specific Register (MSR) which tracks energy consumption. The ODROID has four integrated sensors <ref type="bibr" target="#b10">[11]</ref> that we use to monitor the A15 cluster, the A7 cluster, the DRAM, and the GPU. Table <ref type="table" target="#tab_0">1</ref> presents the power characteristics captured from both devices, including the idle power as well as the minimum and maximum power usage during execution. The cpufrequtils interface is used to control the DVFS settings on each device.</p><p>We use four benchmark applications from PARSEC [4]bodytrack, ferret, swaptions, and x264. These benchmarks represent a variety of applications with performance requirements that one can reasonably expect to use on an embedded system. Both bodytrack and x264 process video data and could be required to match the performance of an on-board camera. Ferret is a content-based search engine for non-text data types. Swaptions is a financial pricing application that is often run with performance and energy constraints to ensure that the prices it outputs are timely while minimizing the electricity cost of producing them.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Methodology</head><p>For these experiments, a configuration is a unique combination of system components and their settings. Table <ref type="table" target="#tab_1">2</ref> presents the configuration parameters for each system. In total there are 44 configurations on the Vaio and 68 on the ODROID. On both platforms a clockspeed setting is applied to all active cores concurrently, meaning there are no configurations that include different clockspeeds on different cores. The reason there are not more configurations on the ODR-OID is because the system does not support executing on  the big and LITTLE clusters simultaneously.</p><p>To collect performance and power metrics, we modify the Heartbeats API <ref type="bibr" target="#b9">[10]</ref> to capture energy readings in addition to performance statistics. Each benchmark is then edited to produce heartbeats at intervals appropriate for their respective tasks. The modified Heartbeats library captures energy readings from the MSR on the Vaio and uses the ODROID's embedded power sensors to calculate energy consumption. The fact that one device records energy while the other offers power measurements already demonstrates some complexity in designing a general-purpose solution for meeting performance targets with power/energy constraints. Indeed, this additional complexity compelled us to abstract the component that reads (or calculates) energy from the rest of the Heartbeats library in order to build a more generic system capable of capturing these metrics on diverse platforms.</p><p>By varying the settings in Table <ref type="table" target="#tab_1">2</ref>, we execute the four benchmarks in all possible configurations on each system. For each benchmark the number of worker threads is fixed to match the maximum number of virtual cores (four in both cases). This choice is predicated on the assumption that the software either has a predetermined number of threads to match the platform it is designed for, or the software is able to determine the hardware configuration prior to performing its main task. In each execution, the Heartbeats library records the performance and power.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">Performance/Energy Tradeoff Spaces</head><p>As mentioned previously, the four benchmarks are exe-cuted in all configurations on each device, and we measure power and performance. Our goal is to understand the relationship between energy efficiency and performance for each device.</p><p>In Figure <ref type="figure" target="#fig_1">1</ref> we plot the performance vs. energy efficiency curves for the two devices on the same chart for each benchmark. To make the charts readable, any state that delivers less performance for the same energy efficiency is discarded (so there are fewer points than configurations in the figures). The X-axis (Speedup) describes the performance improvement for each state, normalized to the lowest performing state along each curve. Using the x264 benchmark as an example, the amount of work to be done is the number of frames to process and the performance (work rate) is measured in frames per second (FPS). The Y-axis (Energy Efficiency) is defined as performance/power and is normalized to the least energy-efficient state for each curve. In the x264 benchmark, energy efficiency is categorized as the number of frames processed per Joule of energy ( F P S W atts = f rames Joule ). For both axes, larger values are better.</p><p>In each chart of Figure <ref type="figure" target="#fig_1">1</ref> the Vaio's energy efficiency increases over the baseline along with its performance. In contrast, the ODROID's energy efficiency drops as it moves to higher performing states. The area without points approximately halfway through the ODROID curve on each plot is a result of the big.LITTLE architecture and the disconnect in performance and energy efficiency between the ODROID's smaller and larger cores. Clearly, these devices have completely different performance and energy efficiency tradeoffs, so each will need a different resource allocation strategy to minimize energy.</p><p>The next section demonstrates how much energy can be saved by picking the right strategy.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.4">Energy Optimization Using Heuristics</head><p>Using the prior results we derive an oracle that, given a performance target, calculates the minimum amount of energy required to complete each benchmark on each system. Energy consumption is then modeled for the never-idle and race-to-idle heuristics on both platforms for each of the benchmarks. Figure <ref type="figure" target="#fig_2">2</ref> presents the results for a performance target of 50% of each device's maximum performance on each benchmark. Energy is normalized to the oracle's minimum energy consumption for each benchmark and platform. Lower values are better.</p><p>Figure <ref type="figure" target="#fig_2">2a</ref> indicates that the race-to-idle heuristic is nearoptimal for the Vaio tablet. Figure <ref type="figure" target="#fig_2">2b</ref> shows that the ODR-OID is more energy efficient using the never-idle heuristic than race-to-idle. Therefore, the ODROID requires a different approach to completing these tasks on time. These results follow from the tradeoffs spaces in Figure <ref type="figure" target="#fig_1">1</ref>. On the Vaio, speeding up increases energy efficiency, so it is better to complete work faster using race-to-idle. On the ODR-OID, slowing down increases energy efficiency, so it is better to complete the work just at the deadline. This relationship holds despite the fact the ODROID has much lower idle power.</p><p>The effects of choosing the right strategy are dramatic. On the Vaio, race-to-idle is only slightly worse than optimal for all benchmarks., but the never-idle strategy consumes 28% more energy than optimal on average. On the ODROID, never-idle consumes 14% more energy than optimal, but race-to-idle increases energy consumption by 2.43× on average. These results indicate that choosing the wrong strategy is not a trivial issue, but severely impacts energy consumptions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.5">Sensitivity to Performance Target</head><p>In the previous section we set a performance target of 50% of each system's performance capacity. This section evaluates each heuristic's sensitivity to this target.</p><p>For simplicity, we begin by considering two simple theo-retical systems. All else being equal, the energy efficiency of the first system scales proportionally to its resource consumption, and the energy efficiency of the second scales inversely to its resource consumption. Both of these theoretical systems obviously require different strategies for minimizing energy usage while meeting performance targets. For maximum energy efficiency, the first system will want to use its relatively efficient high-power states as long as possible, so it benefits from using race-to-idle. Conversely, the second system prefers to use its relatively efficient low-power states as long as possible, so it benefits from using never-idle.</p><p>For both theoretical systems, as the performance target increases toward capacity and a race-to-idle heuristic is used, more time is required in high-power execution states to complete the task. Less time is then spent in the low-power idle state. This is already known to be optimal for the first system. The second system, however, now spends less time in its relatively energy-inefficient low-power idle state, and a higher energy efficiency is achieved than at lower performance targets where more time is spent idling. Likewise, if a never-idle heuristic is used on both systems, a larger percentage of each system's resources are required in order to meet the performance target. The gap between the utilized resources and total available resources closes, resulting in fewer resources being unused. This is already known to be optimal for the second system. Now the first system uses its relatively energy-efficient high-power states and thus achieves a higher energy efficiency than at lower performance targets where less energy-efficient execution states are used. For both race-to-idle and never-idle heuristics, there is less opportunity to save energy at higher performance targets. We then conclude that the heuristic strategy becomes less crucial as the performance target increases toward system capacity.</p><p>To verify this conclusion, we model the energy usage for a variety of performance targets across the range of attainable targets for the Vaio and ODROID, each of which we believe exhibit similar properties to one of the two theoretical systems. Using the x264 benchmark as an example, Figure <ref type="figure" target="#fig_3">3</ref> presents the energy used by each heuristic relative to the oracle for performance targets ranging from 5% to 95% of each system's performance capacity (lower values are better). It is obvious again which heuristic is better for each system - the Vaio benefits from race-to-idle and the ODROID from never-idle. We see for both systems that the lower performance targets suffer the most excess energy consumption over the baseline when an inefficient heuristic is used. As the performance target approaches capacity, the two heuristics converge at the optimal energy usage for that target, as anticipated.</p><p>Results for the other three benchmarks follow the same trends, but are omitted for space. This sensitivity analysis demonstrates that our conclusions hold across a range of performance targets. Picking the right strategy is essential for any system except those that are always fully utilized.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">CONCLUSIONS</head><p>This paper evaluates two embedded platforms that demonstrate a diversity in performance and energy efficiency tradeoff spaces. One platform improves in energy efficiency as it moves to higher performance states while the other experiences a reduction in energy efficiency as its performance increases. Applying a race-to-idle heuristic to the first achieves near-optimal energy consumption, but a never-idle heuristic achieves comparable results on the other. Different resource allocation strategies are clearly necessary for platforms exhibiting these differing characteristics in order to attain optimal energy efficiency while meeting performance targets. These results indicate that a general-purpose solution to this problem must be able to support inherently different performance/energy tradeoff spaces.</p><p>It is also reasonable to expect that, even on a single platform, applications with different processing requirements may have different performance/energy tradeoff spaces. Therefore, a single heuristic may not be near-optimal for all applications on that platform. In such a scenario, a generalpurpose solution must also support different behavior for various applications. Future work will identify applications and systems that exhibit behavior different than those presented here. We will then evaluate whether new behaviors require new heuristics or whether the heuristics are robust for a given platform.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Speedup and normalized energy efficiency for different benchmarks on the Vaio and ODROID.</figDesc><graphic coords="4,75.84,223.79,225.95,135.76" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Never-idle and race-to-idle heuristics for the Vaio and ODROID with a performance target of 50% of their respective maximums. The Y-axis is normalized to optimal.</figDesc><graphic coords="5,75.84,63.76,225.95,135.76" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: Normalized energy for various performance targets using the x264 benchmark.</figDesc><graphic coords="6,75.84,63.76,225.95,135.76" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 :</head><label>1</label><figDesc>System power characteristics.</figDesc><table><row><cell>System</cell><cell cols="3">Idle Power Min Power Max Power</cell></row><row><cell>Vaio</cell><cell>2.50 W</cell><cell>3.04 W</cell><cell>12.20 W</cell></row><row><cell>ODROID</cell><cell>0.12 W</cell><cell>0.17 W</cell><cell>10.16 W</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 2 :</head><label>2</label><figDesc>System configurations.</figDesc><table><row><cell></cell><cell>Vaio</cell><cell></cell></row><row><cell>Configuration</cell><cell cols="2">Settings Max Speedup</cell></row><row><cell>clock speed</cell><cell>11</cell><cell>2.72</cell></row><row><cell>cores hyperthreads</cell><cell>2 2</cell><cell>1.81 1.10</cell></row><row><cell cols="2">ODROID</cell><cell></cell></row><row><cell>Configuration</cell><cell cols="2">Settings Max Speedup</cell></row><row><cell>big cores big core speeds</cell><cell>4 9</cell><cell>6.10 1.97</cell></row><row><cell>LITTLE cores LITTLE core speeds</cell><cell>4 8</cell><cell>3.94 2.40</cell></row><row><cell cols="3">is a Sony VAIO SVT11226CXB Tablet PC with a dual core</cell></row><row><cell cols="3">Intel Haswell processor with hyperthreading that supports</cell></row><row><cell cols="3">eleven DVFS settings ranging from 600 MHz to 1.501 GHz.</cell></row><row><cell cols="3">The heterogeneous system is an ODROID-XU+E [6], an</cell></row><row><cell cols="3">ARM big.LITTLE development platform with the Samsung</cell></row><row><cell cols="3">Exynos5 Octa SoC containing Cortex-A15 and Cortex-A7</cell></row></table><note>quad core CPUs. The Cortex-A15, the big cluster, supports nine DVFS settings ranging from 800 MHz to 1.6 GHz, while the Cortex-A7, the LITTLE cluster, supports eight DVFS settings ranging from 500 MHz to 1.2 GHz. Both devices run Ubuntu Linux 14.04 LTS, with the Vaio using Linux kernel 3.13.0 and the ODROID using Linux kernel 3.4.91.</note></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Algorithms for Dynamic Speed Scaling</title>
		<author>
			<persName><forename type="first">S</forename><surname>Albers</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">STACS</title>
				<imprint>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="1" to="11" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Race to idle: new algorithms for speed scaling with a sleep state</title>
		<author>
			<persName><forename type="first">S</forename><surname>Albers</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Antoniadis</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SODA</title>
		<imprint>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">The Case for Energy-Proportional Computing</title>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">A</forename><surname>Barroso</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Hölzle</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Computer</title>
		<imprint>
			<biblScope unit="volume">40</biblScope>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">The PARSEC Benchmark Suite: Characterization and Architectural Implications</title>
		<author>
			<persName><forename type="first">C</forename><surname>Bienia</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2008">2008</date>
			<publisher>PACT</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Mobile Multicores: Use Them or Waste Them</title>
		<author>
			<persName><forename type="first">A</forename><surname>Carroll</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Heiser</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2013 Workshop on Power Aware Computing and Systems (HotPower&apos;13)</title>
				<meeting>the 2013 Workshop on Power Aware Computing and Systems (HotPower&apos;13)<address><addrLine>Farmington, PA, USA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2013">2013</date>
			<biblScope unit="page">12</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title/>
		<author>
			<persName><surname>Hardkernel</surname></persName>
		</author>
		<ptr target="http://www.hardkernel.com/main/products/prdt\_info.php?g\_code=G137463363079" />
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<title level="m" type="main">The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines</title>
		<author>
			<persName><forename type="first">U</forename><surname>Hoelzle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">A</forename><surname>Barroso</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2009">2009</date>
			<publisher>Morgan and Claypool Publishers</publisher>
		</imprint>
	</monogr>
	<note>1st</note>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<title level="m" type="main">Racing vs. Pacing to Idle: A Comparison of Heuristics for Energy-aware Resource Allocation</title>
		<author>
			<persName><forename type="first">H</forename><surname>Hoffmann</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2013">2013</date>
			<publisher>HotPower</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Self-aware computing in the Angstrom processor</title>
		<author>
			<persName><forename type="first">H</forename><surname>Hoffmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">DAC</title>
				<imprint>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">A Generalized Software Framework for Accurate and Efficient Managment of Performance Goals</title>
		<author>
			<persName><forename type="first">H</forename><surname>Hoffmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">EMSOFT</title>
				<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">T</forename><surname>Instruments</surname></persName>
		</author>
		<ptr target="http://www.ti.com/product/ina231" />
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Algorithms for Power Savings</title>
		<author>
			<persName><forename type="first">S</forename><surname>Irani</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Trans. Algorithms</title>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="issue">4</biblScope>
			<date type="published" when="2007-11">Nov. 2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Big.LITTLE system architecture from ARM: saving power through heterogeneous multiprocessing and task context migration</title>
		<author>
			<persName><forename type="first">B</forename><surname>Jeff</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">DAC</title>
				<imprint>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="1143" to="1146" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Processor Power Reduction Via Single-ISA Heterogeneous Multi-Core Architectures</title>
		<author>
			<persName><forename type="first">R</forename><surname>Kumar</surname></persName>
		</author>
		<idno type="DOI">10.1109/L-CA.2003.6</idno>
	</analytic>
	<monogr>
		<title level="j">Computer Architecture Letters</title>
		<idno type="ISSN">1556-6056</idno>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="2" to="2" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Slow Down or Sleep, That is the Question</title>
		<author>
			<persName><forename type="first">E</forename></persName>
		</author>
		<author>
			<persName><forename type="first">Le</forename><surname>Sueur</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Heiser</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2011 USENIX Annual Technical Conference</title>
				<meeting>the 2011 USENIX Annual Technical Conference<address><addrLine>Portland, OR, USA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Real-energy: A New Framework and a Case Study to Evaluate Power-aware Real-time Scheduling Algorithms</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">D</forename><surname>Lin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ISLPED</title>
				<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Power Optimization in Embedded Systems via Feedback Control of Resource Allocation</title>
		<author>
			<persName><forename type="first">M</forename><surname>Maggio</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Trans. on Control Systems Technology</title>
		<imprint>
			<biblScope unit="volume">21</biblScope>
			<biblScope unit="issue">1</biblScope>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<title level="m" type="main">Power management of online data-intensive services</title>
		<author>
			<persName><forename type="first">D</forename><surname>Meisner</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2011">2011</date>
			<publisher>ISCA</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title level="m" type="main">Critical Power Slope: Understanding the Runtime Effects of Frequency Scaling</title>
		<author>
			<persName><forename type="first">A</forename><surname>Miyoshi</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
	<note type="report_type">ICS</note>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">The simulation and evaluation of dynamic voltage scaling algorithms</title>
		<author>
			<persName><forename type="first">T</forename><surname>Pering</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ISLPED</title>
				<imprint>
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Practical voltage-scaling for fixed-priority RT-systems</title>
		<author>
			<persName><forename type="first">S</forename><surname>Saewong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Rajkumar</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">RTAS</title>
		<imprint>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<monogr>
		<title level="m" type="main">Scheduling for reduced CPU energy</title>
		<author>
			<persName><forename type="first">M</forename><surname>Weiser</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1996">1996</date>
			<publisher>Mobile Computing</publisher>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
