introduction.tex 4.99 KB
\section{Introduction}
\label{sec-introduction}

All modern computing devices---from smartphones to datacenters---must manage
energy consumption.
%
Energy-performance tradeoffs on mobile devices have existed for some time,
such as dynamic voltage and frequency scaling (DVFS) for CPUs and the choice
between more (Wifi) and less (mobile data) energy-efficient network
interfaces.
%
But as smartphone users continue to report battery lifetime as both their top
concern and a growing problem~\cite{jdpowerbatterylife-url}, smartphone
designs are providing even more energy-performance tradeoffs, such as
the heterogeneous cores provided by ARM's
\texttt{big.LITTLE}~\cite{arm-biglittle} architecture.
%
Still other hardware energy-performance tradeoffs are on the horizon, arising
from capabilities such as memory frequency scaling~\cite{david2011memory} and nanosecond-speed DVFS
emerging in next-generation hardware designs~\cite{6084810}. 

We envision a next-generation smartphone capable of scaling both voltage and
frequency of CPU and only frequency of memory.
%
While the addition of memory DVFS can be used to improve energy-constrained
performance, the larger frequency state space compared to CPU DVFS alone also
provides more incorrect settings that waste energy or degrade performance.
%
To better understand these systems, we characterize how the most performant
CPU and memory frequency settings change for multiple workloads under various
energy constraints.

Our work represents two advances over previous efforts.
%
First, while previous works have explored energy minimizations using DVFS
under performance constraints focusing on reducing slack~\cite{deng2012coscale}, we are the first to
study the potential DVFS settings under an energy constraint.
%
Specifying performance constraints for servers is appropriate, since they are
both wall-powered and have terms of service that must be met.
%
Therefore, they do not have to and cannot afford to sacrifice too much
performance.
%
However, for mobile systems it is more critical to save energy as battery
lifetime is the major concern.
%
Therefore, we argue that optimizing performance under given \textit{energy
constraint} is fitting for mobile systems.
%
We introduce a new metric \textit{inefficiency} that can be used to specify
energy constraints and it is both application and device independent---unlike
existing metrics.

Second, we are the first to characterize optimal frequency settings for
systems providing both CPU and memory DVFS.
%
We find that closely tracking the optimal settings during execution produces
many transitions and large frequency transition overhead.
%
However, by accepting a certain amount of performance loss, the number of
transitions and the corresponding overhead can be reduced.
%
We characterize the relationship between the amount of performance loss and
the rate of tuning for several benchmarks, and introduce the concepts of
\textit{performance clusters} and \textit{stable regions} to aid the process.

We make following four contributions:
%
\begin{enumerate}
%
\item We introduce a new metric, \textit{inefficiency}, that allows the
system to express the amount of extra energy that can be used to improve
performance.
%
\item We study the energy-performance trade-offs of systems that are capable
of both CPU and memory DVFS for multiple applications. We show that poor
frequency selection can both hurt performance and energy consumption.
%
\item We characterize the optimal frequency settings for multiple
applications and inefficiency budgets. We introduce \textit{performance
clusters} and \textit{stable regions} to reduce tuning overhead when a
small degradation in performance is allowed.
%
\item We study the implications of using performance clusters on energy
management algorithms.
%
\end{enumerate}

We use the \texttt{Gem5} simulator, the Android smartphone platform and Linux
kernel, and an empirical power model to (1) measure the inefficiency of
several applications for a wide range of frequency settings, (2) compute
performance clusters, and (3) study how they evolve.
%
We are currently constructing a complete system to study tuning algorithms
that can build on our insights to adaptively choose frequency settings at
runtime.

The rest of our paper is structured as follows.
Section~\ref{sec-inefficiency} introduces the inefficiency metric, while
Section~\ref{sec-sys-methodology} describes our system, energy model, and
experimental methodology.
%
Section~\ref{sec-ineff-speedup} studies the impact of CPU and memory
frequency scaling on the performance and energy consumption of multiple
applications, while Section~\ref{sec-opt-perf} characterizes the best
frequency settings for various phases of the applications.
%
As tracking the best settings is expensive, Section~\ref{sec-perf-clusters}
introduces \textit{performance clusters}, and \textit{stable regions} and
studies their characteristics.
%
Section~\ref{sec-algo-implications} presents implications of
using performance clusters on energy-management algorithms, and
Section~\ref{sec-conclusions} concludes.