space edits

master
Lukasz Ziarek 2023-08-25 16:59:01 -04:00
parent 91132af4f3
commit 62207ec3ed
7 changed files with 29 additions and 29 deletions

View File

@ -1,4 +1,4 @@
\documentclass[sigconf,anonymous,10pt,review]{acmart}
\documentclass[sigconf,10pt,anonymous,review]{acmart}
%\documentclass[sigconf,10pt]{acmart}
\usepackage{todonotes}

View File

@ -3,15 +3,15 @@
\begin{figure}
\centering
\includegraphics[width=.95\linewidth]{figures/graph_freqtime_micro.pdf}
\bfcaption{Intermittent workloads hurt runtime 2 ways: diretly, by sleeping and indirectly, by inducing slower CPU speeds}
\includegraphics[width=.90\linewidth]{figures/graph_freqtime_micro.pdf}
\bfcaption{Intermittent workloads hurt runtime 2 ways: directly, by sleeping and indirectly, by inducing slower CPU speeds}
\label{fig:speed_time_delay}
\end{figure}
%\subsection{The cost and problems of complex speed micromanagement}
%\label{complexity_cost}
Controlling CPU speed on phones stems from a set of fairly intricate subsystems -- the scheduler, idle policy, drivers, as well as the governor iteself.
Controlling CPU speed on phones stems from a set of fairly intricate subsystems -- the scheduler, idle policy, drivers, as well as the governor itself.
Under common circumstances, they adjust the speed constantly.
Despite the complexity, the system often makes bad choices and picks speed that hurt both energy and performance.
This is because past CPU utilization -- the bedrock metric of all dynamic governors -- has little to do with the ideal present CPU speed.
@ -30,7 +30,7 @@ The \schedutil policy sets the CPU speed based on a rolling window of recent run
On a phone, workloads typically do not saturate the CPUs but vary constantly in demand.
With history-driven dynamic policies such as \schedutil, this triggers constantly changing speeds\cite{nuessle2019benchmarking}.
Figure \ref{fig:missed_opportunities} shows how ramp-up already time hurts performance.
However,previous studies have additionally noted that intermittent workloads makes this problem significantly worse.\cite{nuessle2019benchmarking}
However, previous studies have additionally noted that intermittent workloads makes this problem significantly worse.\cite{nuessle2019benchmarking}
Figure \ref{fig:speed_time_delay} illustrates this: We ran the same fixed workload with and without intermittent 5ms sleeps.
With no sleep intervals, the top graph shows the workload takes $\sim$7.1s to complete.
Adding 1000 5ms sleeps (the bottom graph) induces the governor to keep the speed much lower, hovering around 40\% of maximum throughout the run.

View File

@ -3,50 +3,50 @@
\begin{figure*}
\centering
\includegraphics[width=.95\linewidth]{figures/graph_jank_allapps.pdf}
\bfcaption{Display framedrop proportion for several apps under different CPU policies (10 runs, 90\% confidence)}
\includegraphics[width=.90\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=.95\linewidth]{figures/graph_energy_allapps.pdf}
\bfcaption{Energy usage for several apps under different CPU policies (10 runs, 90\% confidence)}
\includegraphics[width=.90\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=.95\linewidth]{figures/graph_time_per_freq_yt.pdf}
\bfcaption{Average time spent per CPU at a given frequency under the default policy for a :30 scripted Youtube interaction (Average of 10 runs, 90\% confidence)}
\includegraphics[width=.90\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=.95\linewidth]{figures/graph_time_per_freq_spot.pdf}
\bfcaption{Average time spent per CPU at a given frequency under the default policy for a :30 scripted Spotify interaction (Average of 10 runs, 90\% confidence)}
\includegraphics[width=.90\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=.95\linewidth]{figures/graph_nonidletime_yt.pdf}
\bfcaption{CPU non-idle time for a scripted Youtube interaction under different CPU policies (10 runs, 90\% confidence)}
\includegraphics[width=.90\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=.95\linewidth]{figures/graph_nonidletime_spot.pdf}
\bfcaption{CPU non-idle time for a scripted Spotify interaction under different CPU policies (10 runs, 90\% confidence)}
\includegraphics[width=.90\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*}
\begin{figure*}
\centering
\includegraphics[width=\linewidth]{figures/graph_idlejank_heavyload.pdf}
\bfcaption{The effect of additional background loads on user experience, for given CPU policies}
\includegraphics[width=.90\linewidth]{figures/graph_idlejank_heavyload.pdf}
\bfcaption{The effect of additional background loads on user experience for given CPU policies}
\label{fig:idlejank}
\end{figure*}

View File

@ -4,7 +4,7 @@
\begin{figure}
\centering
\includegraphics[width=.95\linewidth]{figures/graph_missed_opportunities.pdf}
\bfcaption{An example trace of \schedutil's cpu frequency selections for a fixed workload (solid blue). The dotted red line shows a energy/latency optimal frequency choice ($\fenergy$).}
\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

@ -2,7 +2,7 @@
\begin{figure}
\centering
\includegraphics[width=.95\linewidth]{figures/optimize_goal_cpu_speed.pdf}
\includegraphics[width=.90\linewidth]{figures/optimize_goal_cpu_speed.pdf}
\bfcaption{How CPU speed should flow from the current CPU goal}
\label{fig:optimize_goal_cpu_speed}
\end{figure}

View File

@ -12,7 +12,7 @@
\begin{figure*}
\centering
\includegraphics[width=.95\linewidth]{figures/graph_u_fixedlen_multicore.pdf}
\includegraphics[width=.90\linewidth]{figures/graph_u_fixedlen_multicore.pdf}
%
%\begin{subfigure}{0.45\textwidth}
%\centering
@ -93,7 +93,7 @@ All of the time spent in the areas marked Underperformance represents energy was
\begin{figure*}
\centering
\includegraphics[width=.95\linewidth]{figures/graph_time_per_freq_fb.pdf}
\includegraphics[width=.90\linewidth]{figures/graph_time_per_freq_fb.pdf}
\bfcaption{Average time spent per CPU at a given frequency under the default policy for a 25s scripted Facebook interaction (Average of 10 runs, 90\% confidence)}
\label{fig:time_per_freq_fb}
\end{figure*}

View File

@ -3,14 +3,14 @@
\begin{figure*}
\centering
\includegraphics[width=.95\linewidth]{figures/graph_oscill_cycles.pdf}
\includegraphics[width=.90\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*}
\begin{figure*}
\centering
\includegraphics[width=.95\linewidth]{figures/graph_energy_perf_coldstart_spot.pdf}
\includegraphics[width=.90\linewidth]{figures/graph_energy_perf_coldstart_spot.pdf}
\bfcaption{Energy and latency of coldstarting Spotify under different policies (5 runs, 90\% confidence)}
\label{fig:coldstart_time_spot}
\end{figure*}
@ -40,16 +40,16 @@ Armed with this knowledge, we realize the \systemname governor: a simple policy
\begin{figure*}
\centering
\includegraphics[width=.95\linewidth]{figures/graph_nonidletime_fb.pdf}
\bfcaption{CPU non-idle time for a scripted Facebook interaction under different CPU policies (10 runs, 90\% confidence)}
\includegraphics[width=.90\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*}
\begin{figure}
\centering
\includegraphics[width=.95\linewidth]{figures/graph_jank_perspeed_fb.pdf}
\bfcaption{Display framedrop proportion for a :30 Facebook interaction under different CPU policies (10 runs, 90\% confidence)}
\includegraphics[width=.90\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}