Commit e9c9a29bbb2dfb4bd84ad35d582e044a8feec7bb

Authored by Geoffrey Challen
1 parent 48ed9276

Certainty section.

Showing 1 changed file with 40 additions and 48 deletions
certainty.tex
... ... @@ -86,7 +86,7 @@ ways for the developer to guide and control any step in the process.
86 86 \subsubsection{Runtime control}
87 87  
88 88 To begin, we briefly outline how our Android prototype implements the
89   -\texttt{maybe} statement. We (1) rewrite each \texttt{maybe} code block to an
  89 +\texttt{maybe} statement. We (1) rewrite each \texttt{maybe} statement to an
90 90 \texttt{if-else} statement controlled by a call into the \texttt{maybe}
91 91 system and (2) generate a similar setter for each \texttt{maybe} variable.
92 92 Variable values and code branches are now all under the control of a separate
... ... @@ -120,13 +120,12 @@ are difficult to know \textit{a priori}, particularly when new apps or
120 120 functionalities are being investigated. So in most cases we believe
121 121 post-deployment testing will be required.
122 122  
123   -However, pre-deployment testing may still be a valuable approach, particularly
124   -when a large amount of uncertainties are present and a correspondingly-large
125   -number of \texttt{maybe} statements are being used. Since this can explode
126   -the adaptation space, simulation may be able to help guide the developer's
127   -choices of which \texttt{maybe} statements may have a significant impact on
128   -performance and should be assessed first. Other \texttt{maybe} statements
129   -can be assessed later or eliminated altogether.
  123 +However, pre-deployment testing may still be a valuable approach,
  124 +particularly when a large number of \texttt{maybe} statements are being used.
  125 +Since this can explode the adaptation space, simulations may be able to help
  126 +guide the developer's choices of which \texttt{maybe} statements may have a
  127 +significant impact on performance and should be assessed first. Other
  128 +\texttt{maybe} statements can be assessed later or eliminated.
130 129  
131 130 \subsubsection{Split testing}
132 131  
... ... @@ -164,9 +163,8 @@ battery level; and so on.
164 163  
165 164 \end{itemize}
166 165 %
167   -This dataset is periodically uploaded to the \texttt{maybe} server by the
168   -\texttt{maybe} service and used to drive the adaptation approaches discussed
169   -next.
  166 +This dataset is periodically uploaded to the \texttt{maybe} server and used
  167 +to drive the adaptation approaches discussed next.
170 168  
171 169 \subsubsection{Simultaneous split testing}
172 170  
... ... @@ -174,24 +172,23 @@ While large-scale split testing is intended to provide good coverage over all
174 172 possible sources of uncertainty we have discussed, it still normally requires
175 173 that only one choice be made at any given time---implying that two
176 174 alternatives may \textit{never} be evaluated under identical conditions. For
177   -\texttt{maybe} code blocks, however, we are exploring the idea of performing
  175 +\texttt{maybe} statements, however, we are exploring the idea of performing
178 176 \textit{simultaneous} split testing. In this model the app forks at the top
179   -of the \texttt{maybe} block, executes and scores all alternatives, and then
  177 +of the \texttt{maybe} statement, executes and scores all alternatives, and then
180 178 continues with the outputs from the best alternative at the bottom of the
181 179 \texttt{maybe} statement. On single-core devices this can be done in serial,
182 180 while the growing number of multi-core smartphones provides the option of
183 181 doing this in parallel. The benefit of this approach is that each alternative
184 182 is executed under near-identical conditions. The drawbacks include the
185 183 overhead of the redundant executions and the possibility for interference
186   -between alternatives executing in parallel. However, we are excited to
187   -explore this option in our prototype.
  184 +between alternatives executing in parallel.
188 185  
189 186 \subsection{\texttt{\large maybe} Endgames}
190 187  
191 188 The entire \texttt{maybe} approach is predicated on the fact that there does
192 189 exist, among the alternatives, a right choice, even if it depends on many
193 190 factors and uncertainties. We continue by discussing how the dataset
194   -generated by post-deployment testing can be consumed to determine how to
  191 +generated by post-deployment testing can be used to determine how to
195 192 correctly choose \texttt{maybe} alternatives at runtime.
196 193  
197 194 \subsubsection{Simple cases}
... ... @@ -203,11 +200,10 @@ testing of that alternative and even automatically rewrite that portion of
203 200 code to remove the \texttt{maybe} statement. However, it is also possible
204 201 that the situation may change in the future when a new device, or Android
205 202 version, or battery technology is introduced, and so the programmer may also
206   -choose to preserve the alternatives to enable continuous adaptation as
207   -described in Section~\ref{subsec-continuous}.
  203 +choose to preserve the flexibility in case it is useful in the future.
208 204  
209 205 The slightly more complicated case is when testing reveals that alternatives
210   -provide stable tradeoffs between energy and performance---one block always
  206 +provide stable tradeoffs between energy and performance---one alternative always
211 207 saves energy at the cost of performance. In this case the system only has to
212 208 determine whether to prioritize energy or performance. While this decision
213 209 seems simple, it is itself complicated by differences in battery capacity,
... ... @@ -226,11 +222,10 @@ second, somewhat easier case.
226 222  
227 223 If the alternative is determined through static adaptation then the correct
228 224 choice is a function of some unchanging (or very-slowly changing) aspect of
229   -the deployed environment. Examples include the model of the device, overall
230   -network conditions in the country in which the device is being used, the
231   -other apps installed on the device, or some slowly-changing user
232   -characteristic such as gender, age, or charging habits. In this case it is
233   -possible that the correct alternative can be determined through some
  225 +the deployed environment. Examples include the device model, average network
  226 +conditions, the other apps installed on the device, or some slowly-changing
  227 +user characteristic such as gender, age, or charging habits. In this case it
  228 +is possible that the correct alternative can be determined through some
234 229 clustering based on these features, and once determined will remain the best
235 230 choice over long time intervals.
236 231  
... ... @@ -243,37 +238,34 @@ single alternative can be chosen even for a single user. Instead, the
243 238 \texttt{maybe} system allows developers to evaluate one or more strategies to
244 239 drive the runtime alternative selection process.
245 240  
246   -Note that \texttt{evaluate} blocks are \textit{not} intended to accomplish this
247   -kind of adaptation. First, they run after the \texttt{maybe} block has been
248   -executed, not before. Second, a single strategy defeats the flexibility
249   -inherent to the \texttt{maybe} approach and would devolve into the same
250   -fragile decision-making logic we are trying to avoid.
251   -
252   -Instead, the \texttt{maybe} system allows developers to experiment with and
253   -evaluate a variety of different dynamic adaptation strategies deployed in a
254   -companion library, with the choice guided by post-deployment testing. For
255   -example, if the performance of an alternative is discovered to be correlated
256   -with the presence of a network link with over a certain bandwidth, then that
257   -adaptation strategy can be connected with that particular \texttt{maybe}
258   -block.
  241 +Note that \texttt{evaluate} blocks are \textit{not} intended to accomplish
  242 +this kind of adaptation. First, they run after the \texttt{maybe} statement
  243 +has been executed, not before. Second, per-\texttt{maybe} strategy defeats
  244 +the flexibility inherent to the \texttt{maybe} approach and would devolve
  245 +into the fragile decision-making we are trying to avoid. Instead, the
  246 +\texttt{maybe} system allows developers to experiment with and evaluate a
  247 +variety of different dynamic adaptation strategies deployed in a companion
  248 +library, with the choice guided by post-deployment testing. For example, if
  249 +the performance of an alternative is discovered to be correlated with a link
  250 +providing a certain amount of bandwidth, then that adaptation strategy can be
  251 +connected with that particular \texttt{maybe} statement.
259 252  
260 253 Observe that in some cases of dynamic adaptation, what begins as a
261   -\texttt{maybe} statement may end as effectively \texttt{if-else} block
262   -switching on some of the same static thresholds that we attacked to motivate
  254 +\texttt{maybe} statement may end as effectively \texttt{if-else} statement
  255 +switching on a static threshold---the same approach we attacked to motivate
263 256 our system. However, through the process of arriving at this point we have
264   -determined several things that were initially unknown: What the alternatives
  257 +determined several things that were initially unknown: what the alternatives
265 258 accomplish, that a single threshold works for all users, and what that
266   -threshold is. And if the developer chooses to maintain that statement as a
267   -\texttt{maybe} block, they can continue to perform testing and modify their
268   -adaptation strategy as devices and users change.
  259 +threshold is. And by maintaining the choice as a \texttt{maybe} statement,
  260 +they can continue the adaptation process as devices, users, and networks
  261 +change.
269 262  
270 263 Another benefit of this approach is that time-varying decisions can be
271 264 outsourced to developers with expertise in the particular area driving
272   -adaptation policy decisions. For example, if the developer chooses to make a
273   -energy-performance tradeoff dynamically based on the energy conditions at
274   -that time, they can connect that \texttt{maybe} statement to a sophisticated
275   -machine learning algorithm written by an expert in energy adaptation, instead
276   -of being forced to implement their own simplistic approach.
  265 +adaptation policy decisions. For example, by exposing an energy-performance
  266 +tradeoff through a \texttt{maybe} statement, a developer allows it to be
  267 +driven by a sophisticated machine learning algorithm written by an expert in
  268 +energy adaptation, instead of their own ad-hoc approach.
277 269  
278 270 \subsubsection{Manual adaptation}
279 271  
... ...