master
Lukasz Ziarek 2023-08-25 23:29:08 -04:00
parent 479b89f584
commit a960d26c02
4 changed files with 14 additions and 15 deletions

View File

@ -3,42 +3,42 @@
\begin{figure*}
\centering
\includegraphics[width=.90\linewidth]{figures/graph_jank_allapps.pdf}
\includegraphics[width=.87\linewidth]{figures/graph_jank_allapps.pdf}
\bfcaption{Display framedrop for apps under different CPU policies (10 runs, 90\% confidence)}
\label{fig:jank_allapps}
\end{figure*}
\begin{figure*}
\centering
\includegraphics[width=.90\linewidth]{figures/graph_energy_allapps.pdf}
\includegraphics[width=.87\linewidth]{figures/graph_energy_allapps.pdf}
\bfcaption{Energy usage for apps under different CPU policies (10 runs, 90\% confidence)}
\label{fig:energy_allapps}
\end{figure*}
\begin{figure*}
\centering
\includegraphics[width=.90\linewidth]{figures/graph_time_per_freq_yt.pdf}
\includegraphics[width=.87\linewidth]{figures/graph_time_per_freq_yt.pdf}
\bfcaption{Average time spent per CPU under the default policy for Youtube (Average of 10 runs, 90\% confidence)}
\label{fig:time_per_freq_yt}
\end{figure*}
\begin{figure*}
\centering
\includegraphics[width=.90\linewidth]{figures/graph_time_per_freq_spot.pdf}
\includegraphics[width=.87\linewidth]{figures/graph_time_per_freq_spot.pdf}
\bfcaption{Average time spent per CPU under the default policy for Spotify (Average of 10 runs, 90\% confidence)}
\label{fig:time_per_freq_spot}
\end{figure*}
\begin{figure*}
\centering
\includegraphics[width=.90\linewidth]{figures/graph_nonidletime_yt.pdf}
\includegraphics[width=.87\linewidth]{figures/graph_nonidletime_yt.pdf}
\bfcaption{CPU non-idle time for Youtube under different CPU policies (10 runs, 90\% confidence)}
\label{fig:nonidle_yt}
\end{figure*}
\begin{figure*}
\centering
\includegraphics[width=.90\linewidth]{figures/graph_nonidletime_spot.pdf}
\includegraphics[width=.87\linewidth]{figures/graph_nonidletime_spot.pdf}
\bfcaption{CPU non-idle time for Spotify under different CPU policies (10 runs, 90\% confidence)}
\label{fig:nonidle_spot}
\end{figure*}

View File

@ -3,7 +3,7 @@
\begin{figure}
\centering
\includegraphics[width=.90\linewidth]{figures/graph_missed_opportunities.pdf}
\includegraphics[width=.8\linewidth]{figures/graph_missed_opportunities.pdf}
\bfcaption{A trace of \schedutil's cpu frequency selections given in blue. The dotted red line shows a energy/latency optimal frequency choice ($\fenergy$).}
\label{fig:missed_opportunities}
\end{figure}

View File

@ -66,7 +66,7 @@ in memory-bound workloads (i.e., with frequent CPU stalls resulting from cache m
We note that we did not encounter any significant busy-waiting across all of the apps that we tested.
}.
By comparison, tasks blocked on IO or user input are removed from the runqueue entirely, allowing the CPU to enter an idle state.
By comparison, tasks blocked on IO or user input are removed from the runqueue, allowing the CPU to idle.
%\todo{add an experiment that shows that tasks blocked on IO or user input or something similar have similar energy profiles.?}
We note that CPU utilization is a measure of time spent idling or blocked on IO, and not the time the CPU spends running without doing useful work, supporting our second claim:
@ -93,7 +93,7 @@ All of the time spent in the areas marked Underperformance represents energy was
\begin{figure*}
\centering
\includegraphics[width=.90\linewidth]{figures/graph_time_per_freq_fb.pdf}
\includegraphics[width=.87\linewidth]{figures/graph_time_per_freq_fb.pdf}
\bfcaption{Time per CPU at a given frequency for Facebook, 25s with default policy. (Avg. of 10 runs, 90\% confidence)}
\label{fig:time_per_freq_fb}
\end{figure*}
@ -101,13 +101,12 @@ All of the time spent in the areas marked Underperformance represents energy was
\subsection{Truncated \schedutil}
To summarize, frequencies strictly below $\fenergy$ (excepting $\fidle$) consume more power per CPU cycle than $\fenergy$, and result in higher latencies.
Frequencies strictly below $\fenergy$ (excepting $\fidle$) consume more power per CPU cycle than $\fenergy$, and result in higher latencies.
In the absence of CPU stalls, spin-locks, and thermal throttling, frequencies in this range are strictly worse.
Based on this observation and two further insights, we now propose our first adjustment to the \schedutil governor.
First, recall that the only signal used by \schedutil is recent past CPU usage.
This signal conveys no information about CPU stalls, and so is not useful for deciding whether the CPU should be set to a frequency in this regime.
Second, we observe that workloads that trigger the relevant CPU behaviors are typically data-intensive and memory bound, or parallel workloads with high contention.
Such workloads are often offloaded to more powerful cloud compute infrastructures; When run at the edge (e.g., for federated learning), it is typically when the device has a stable power source.

View File

@ -3,7 +3,7 @@
\begin{figure*}
\centering
\includegraphics[width=.90\linewidth]{figures/graph_oscill_cycles.pdf}
\includegraphics[width=.87\linewidth]{figures/graph_oscill_cycles.pdf}
\bfcaption{Runtime and CPU cyclecount for a fixed compute under different CPU policies (10 runs, 90\% confidence)}
\label{fig:cycles_time}
\end{figure*}
@ -40,7 +40,7 @@ Armed with this knowledge, we realize the \systemname governor: a simple policy
\begin{figure*}
\centering
\includegraphics[width=.90\linewidth]{figures/graph_nonidletime_fb.pdf}
\includegraphics[width=.87\linewidth]{figures/graph_nonidletime_fb.pdf}
\bfcaption{CPU non-idle time for Facebook under different CPU policies (10 runs, 90\% confidence)}
\label{fig:nonidle_fb}
\end{figure*}
@ -48,7 +48,7 @@ Armed with this knowledge, we realize the \systemname governor: a simple policy
\begin{figure}
\centering
\includegraphics[width=.90\linewidth]{figures/graph_jank_perspeed_fb.pdf}
\includegraphics[width=.87\linewidth]{figures/graph_jank_perspeed_fb.pdf}
\bfcaption{Display framedrop for Facebook under different CPU policies (10 runs, 90\% confidence)}
\label{fig:screendrops_per_freq_fb}
\end{figure}
@ -121,7 +121,7 @@ However, even at the CPU's maximum frequency, more work is created than the CPU
\begin{figure}
\centering
\includegraphics[width=.95\linewidth]{figures/graph_u_fb.pdf}
\includegraphics[width=.87\linewidth]{figures/graph_u_fb.pdf}
\bfcaption{Energy consumed for a fixed set of interations, given compute at different speeds \fixme{fullrun set}}
\label{fig:u_micro_fb}
\end{figure}