Commit 60b370fdae9789f2dc6440ca1467de08ba7dc1fb

Authored by Geoffrey Challen
1 parent 1b1ce456

New.

certainty.tex
@@ -33,9 +33,6 @@ While the \texttt{score} value is used to evaluate the alternative, the @@ -33,9 +33,6 @@ While the \texttt{score} value is used to evaluate the alternative, the
33 entire JSON object returned by the \texttt{evaluate} block is delivered to 33 entire JSON object returned by the \texttt{evaluate} block is delivered to
34 the developer for later analysis. This allows \texttt{maybe} statements to be 34 the developer for later analysis. This allows \texttt{maybe} statements to be
35 connected with end-to-end app performance metrics not visible on the device. 35 connected with end-to-end app performance metrics not visible on the device.
36 -\texttt{evaluate} blocks may also want to query the user directly, and we are  
37 -exploring ways to make this possible.  
38 -  
39 We expect that some \texttt{evaluate} blocks may need to know which 36 We expect that some \texttt{evaluate} blocks may need to know which
40 alternative was executed to compute a score---for example, if the two 37 alternative was executed to compute a score---for example, if the two
41 alternatives produce different quality output. We are exploring the use of 38 alternatives produce different quality output. We are exploring the use of
introduction.tex
@@ -98,21 +98,31 @@ them at runtime.} @@ -98,21 +98,31 @@ them at runtime.}
98 \end{figure} 98 \end{figure}
99 99
100 In this paper, we present a novel a language construct for expressing 100 In this paper, we present a novel a language construct for expressing
101 -structured uncertainty: the \texttt{maybe} statement. \texttt{maybe} allows  
102 -the programmer to express and structure their uncertainty by providing two or  
103 -more different \textit{alternatives} which together implement multiple  
104 -approaches to runtime adaptation, possibly by making the same  
105 -energy-performance or energy-accuracy tradeoffs described previously. 101 +structured uncertainty: the \texttt{maybe} statement. Unlike previous
  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.
  113 +
106 Figure~\ref{fig-example-maybe} shows how our earlier example can be easily 114 Figure~\ref{fig-example-maybe} shows how our earlier example can be easily
107 -rewritten to use a \texttt{maybe} statement. However, unlike the previous  
108 -example \texttt{maybe} does not rely on the developer to implement a decision  
109 -process or correctly anticipate the effects of each alternative. Instead, the 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
  117 +or correctly anticipate the effects of each alternative. Instead, the
110 \texttt{maybe} system makes runtime choices about which alternative to use by 118 \texttt{maybe} system makes runtime choices about which alternative to use by
111 measuring the tradeoffs produced by each alternative and (in this case) 119 measuring the tradeoffs produced by each alternative and (in this case)
112 -activating an energy-saving alternative when appropriate. 120 +activating an energy-saving alternative when appropriate. All the developer
  121 +has to do is provide alternatives when they are unsure what to do; the
  122 +\texttt{maybe} system does the rest.
113 123
114 -How that choice is made is discussed in the remainder of our paper. We begin  
115 -by providing a more complete description of the \texttt{maybe} statement in 124 +The rest of our paper is structured as follows. We begin by providing a more
  125 +complete description of the \texttt{maybe} statement in
116 Section~\ref{sec-maybe}. Section~\ref{sec-certainty} describes several 126 Section~\ref{sec-maybe}. Section~\ref{sec-certainty} describes several
117 techniques for transforming development-time uncertainty into runtime 127 techniques for transforming development-time uncertainty into runtime
118 certainty. We continue by describing several example use cases in 128 certainty. We continue by describing several example use cases in
references.bib
@@ -2,6 +2,15 @@ @@ -2,6 +2,15 @@
2 @string{sosp = "SOSP"} 2 @string{sosp = "SOSP"}
3 @string{osdi = "OSDI"} 3 @string{osdi = "OSDI"}
4 4
  5 +@inproceedings{maui-mobisys10,
  6 + title={MAUI: making smartphones last longer with code offload},
  7 + author={Cuervo, Eduardo and Balasubramanian, Aruna and Cho, Dae-ki and Wolman, Alec and Saroiu, Stefan and Chandra, Ranveer and Bahl, Paramvir},
  8 + booktitle={Proceedings of the 8th international conference on Mobile systems, applications, and services},
  9 + pages={49--62},
  10 + year={2010},
  11 + organization={ACM}
  12 +}
  13 +
5 @inproceedings{foraging-mobisys07, 14 @inproceedings{foraging-mobisys07,
6 title={Simplifying cyber foraging for mobile devices}, 15 title={Simplifying cyber foraging for mobile devices},
7 author={Balan, Rajesh Krishna and Gergle, Darren and Satyanarayanan, Mahadev and Herbsleb, James}, 16 author={Balan, Rajesh Krishna and Gergle, Darren and Satyanarayanan, Mahadev and Herbsleb, James},
related.tex
@@ -33,12 +33,8 @@ powerful by allowing programmers to express uncertainty. @@ -33,12 +33,8 @@ powerful by allowing programmers to express uncertainty.
33 Recent approaches that allow mobile devices to effectively offload 33 Recent approaches that allow mobile devices to effectively offload
34 computation by automating client-cloud partitioning are also related to the 34 computation by automating client-cloud partitioning are also related to the
35 \texttt{maybe} statement. Systems such as Tactics~\cite{tactics-mobisys03} 35 \texttt{maybe} statement. Systems such as Tactics~\cite{tactics-mobisys03}
36 -and MAUI~\cite{FIXME} used a variety of approaches to enabling this form of  
37 -adaptation but are narrowly-focused on harnessing opportunities for remote  
38 -execution. While \texttt{maybe} statements can enable simple decisions about  
39 -whether to offload portions of an app, the \texttt{maybe} approach is not yet  
40 -rich enough to consider how much of the execution should be performed  
41 -remotely or deal with server failures. At present \texttt{maybe} focuses on  
42 -single-device adaptation, but we are interested in exploring the ability to  
43 -use uncertainty to distribute computation between multiple devices as future  
44 -work. 36 +and MAUI~\cite{maui-mobisys10} used a variety of approaches to enabling this
  37 +form of adaptation but are narrowly-focused on harnessing opportunities for
  38 +remote execution. At present \texttt{maybe} focuses on single-device
  39 +adaptation, but we are interested in exploring the ability to use uncertainty
  40 +to distribute computation between multiple devices as future work.
usage.tex
@@ -33,6 +33,8 @@ may never outperform the app-specific algorithm, in which cases @@ -33,6 +33,8 @@ may never outperform the app-specific algorithm, in which cases
33 \texttt{maybe} allows both alternatives to coexist safely while ensuring that 33 \texttt{maybe} allows both alternatives to coexist safely while ensuring that
34 each user enjoys whichever approach is most effective for them. 34 each user enjoys whichever approach is most effective for them.
35 35
  36 +\newpage
  37 +
36 \subsection{\texttt{\large PhoneLab} Conductor} 38 \subsection{\texttt{\large PhoneLab} Conductor}
37 39
38 \PhoneLab{} is a large scale smartphone platform testbed at the University at 40 \PhoneLab{} is a large scale smartphone platform testbed at the University at