algorithm_implications.tex 2.79 KB
\section{Algorithm Implications}
\label{sec-algo-implications}
%original (possibly with minor rewording?)
Higher cluster thresholds indeed result in lower transition
overheads by reducing the number of transitions required. One may wonder,
however, if the thresholds have an impact on the overhead of energy management
algorithms. In other words, how may higher thresholds reduce the overheads of
searching for the optimal settings or cluster of settings? We propose that at
higher cluster thresholds, algorithms can choose to not run their search at the
end of every interval. As shown in Section~\ref{sec-perf-clusters}, higher
cluster thresholds result in longer stable regions. Smart algorithms can
leverage these long stable regions by tuning less often during these time
intervals. We propose two ways in which this can be achieved.
%Rewording attempt -Dave
%Higher performance degradation thresholds indeed result in lower transition overhead by increasing
%the length of the stable regions, thereby reducing the number of transitions required. In order for
%this information to be useful in a real system, the algorithm must also be able to detect when these
%stable regions occur and how long they are. Without this information, the system would be unaware of
%whether or not it was in a stable region, meaning it would still have to tune often and it would
%fail to capitalize of the benefits of being in a stable region. Smart algorithms can leverage these
%long stable regions by tuning less often during these time intervals. We propose two ways in which
%this can be achieved.
\begin{enumerate}
\item \textit{Learning:} Algorithms can use learning based approaches to predict when to run again.
Isci. et. al~\cite{ieeemicro05-isci} propose simple ways in which algorithms can detect how long the
current application phase is going to be stable and only choose to tune at the end of predicted
phase for CPU performance. Similar approaches could be developed that extend this methodology to
detect stable regions of clusters containing both memory and CPU settings.

\item \textit{Offline Analysis:} Another approach that can be taken to reduce
the number of tuning events is offline analysis of the applications. An
application can be profiled offline to identify regions in which the
performance cluster is stable. The profile information of the stable region
lengths, positions, and available settings can then be used at run time to enable
the system to predict how long it can go without tuning.  Algorithms can also
extend the usage of the profiled information to new applications that may have
phases that match with existing profiled data. Previous work has already proposed
using offline analysis methods to detect application
phases~\cite{Lau:2006:CGO:phase}, which would be directly applicable here in our
system.

\end{enumerate}