Commit e58abf6de466a86fd6f7c0d5331f065247b9046f

Authored by Geoffrey Challen
1 parent 66b866ac

OK notes.

certainty.tex
... ... @@ -84,13 +84,13 @@ service tracks when alternative decisions change, runs \texttt{evaluate}
84 84 evaluation logic when appropriate, and returns testing results to the
85 85 \texttt{maybe} server.
86 86  
87   -Because unpredictable runtime variable changes could cause crashes or
88   -incorrect behavior, our prototype currently only changes variable values when
89   -they are set using a \texttt{maybe} statement. If the app wants to enable
90   -periodic readaptation of certain global variables, such as the interval
91   -controlling a timer, it can do so by periodically resetting the value using
92   -another \texttt{maybe} statement. This ensures that \texttt{maybe} variables
93   -only change when the developer expects them to.
  87 +\sloppypar{Because unpredictable runtime variable changes could cause crashes
  88 +or incorrect behavior, our prototype currently only changes variable values
  89 +when they are set using a \texttt{maybe} statement. If the app wants to
  90 +enable periodic readaptation of certain global variables, such as the
  91 +interval controlling a timer, it can do so by periodically resetting the
  92 +value using another \texttt{maybe} statement. This ensures that
  93 +\texttt{maybe} variables only change when the developer expects them to.}
94 94  
95 95 \subsubsection{Simulation or emulation}
96 96  
... ... @@ -116,14 +116,14 @@ Eventually code containing a number of \texttt{maybe} statements will be
116 116 deployed on thousands or millions of devices. At this point, large-scale
117 117 split testing and learning can begin. If the user community is large enough,
118 118 then it may be possible to collect statistically-significant results even for
119   -all possible permutations of \texttt{maybe} alternatives. For apps
120   -with a small number of users, or comparatively large number of \texttt{maybe}
121   -statements, we can collect data for variations of one \texttt{maybe} statement
122   -at a time while holding the others constant. As an adaptation policy is
123   -designed and deployed for the statement being tested, we begin to vary and
124   -measure the next \texttt{maybe} statement. We
125   -will provide a developer web interface allowing the developer to determine
126   -which \texttt{maybe} statements should be tested at any given time.
  119 +all possible permutations of \texttt{maybe} alternatives. For apps with a
  120 +small number of users, or comparatively large number of \texttt{maybe}
  121 +statements, we can collect data for variations of one \texttt{maybe}
  122 +statement while holding the others constant. As an adaptation policy is
  123 +designed and deployed for the statement being tested, we begin to vary and
  124 +measure the next \texttt{maybe} statement. We will provide a web interface
  125 +allowing the developer to determine which \texttt{maybe} statements should be
  126 +tested at any given time.
127 127  
128 128 Each time a \texttt{maybe} statement is reached or \texttt{maybe} variable is
129 129 set, the \texttt{maybe} system records:
... ...
introduction.tex
... ... @@ -100,20 +100,19 @@ them at runtime.}
100 100 In this paper, we present a novel a language construct for expressing
101 101 structured uncertainty: the \texttt{maybe} statement. Unlike previous
102 102 approaches to adaptation that relied on language support, \texttt{maybe} does
103   -not attempt to encourage the programmer to provide more information about
104   -their app to allow the compiler to improve performance or guarantee
105   -correctness. Rather, \texttt{maybe} allows the programmer to express and
106   -structure uncertainty by providing two or more different
107   -\textit{alternatives} implementing multiple approaches to runtime adaptation,
108   -possibly by making the same energy-performance or energy-accuracy tradeoffs
109   -described previously. Conceptually, \texttt{maybe} extends the process of
110   -compilation and optimization to include post-deployment testing while also
111   -enabling flexible adaptation that may produce per-user, per-device, or
112   -temporally-varying solutions.
  103 +not encourage programmers to provide more information about their app to
  104 +allow the compiler to improve performance or guarantee correctness. Rather,
  105 +\texttt{maybe} allows the programmer to express and structure uncertainty by
  106 +providing two or more different \textit{alternatives} implementing multiple
  107 +approaches to runtime adaptation, possibly by making the same
  108 +energy-performance or energy-accuracy tradeoffs described previously.
  109 +Conceptually, \texttt{maybe} extends the process of compilation and
  110 +optimization to include post-deployment testing while also enabling flexible
  111 +adaptation that may produce per-user, per-device, or time-varying solutions.
113 112  
114 113 Figure~\ref{fig-example-maybe} shows how our earlier example can be easily
115   -rewritten to use a \texttt{maybe} statement. Unlike the previous example
116   -\texttt{maybe} does not rely on the developer to implement a decision process
  114 +rewritten using a \texttt{maybe} statement. Unlike the previous example
  115 +\texttt{maybe}, does not rely on the developer to implement a decision process
117 116 or correctly anticipate the effects of each alternative. Instead, the
118 117 \texttt{maybe} system makes runtime choices about which alternative to use by
119 118 measuring the tradeoffs produced by each alternative and (in this case)
... ...
maybe.tex
... ... @@ -55,7 +55,7 @@ Code flow can also represent uncertainty. Examples include using multiple
55 55 algorithms to compute the same result or multiple code paths representing
56 56 different tradeoffs between performance, energy, and quality.
57 57 Figure~\ref{fig-example-maybe} shows the \texttt{maybe} statement in its
58   -simplest form controlling execution of multiple code blocks. If multiple
  58 +simplest form, controlling execution of multiple code blocks. If multiple
59 59 alternatives are specified, the system chooses one to execute; if only one
60 60 alternative is specified, the system chooses whether or not to execute it.
61 61 Single-alternative \texttt{maybe} statements can encapsulate or reorganize
... ... @@ -83,8 +83,8 @@ rewrite-based prototype, described next in Section~\ref{sec-certainty}, we
83 83 will revisit the question of nesting in future compiler-driven \texttt{maybe}
84 84 systems.
85 85  
86   -As a final remark, note that structured uncertainty is not randomness.
87   -Randomness weights multiple options statically---there is no right or wrong
88   -choice. In contrast, the \texttt{maybe} statement indicates that during any
89   -given execution one alternative may be the right choice---even if the
90   -developer or system cannot yet identify it.
  86 +\sloppypar{As a final remark, note that structured uncertainty is not
  87 +randomness. Randomness weights multiple options statically---there is no
  88 +right or wrong choice. In contrast, the \texttt{maybe} statement indicates
  89 +that during any given execution one alternative may be the right
  90 +choice---even if the developer or system cannot yet identify it.}
... ...
notes/OK-12242014.pdf 0 โ†’ 100644
No preview for this file type