Commit 60b370fdae9789f2dc6440ca1467de08ba7dc1fb
1 parent
1b1ce456
New.
Showing
5 changed files
with
37 additions
and
23 deletions
certainty.tex
| ... | ... | @@ -33,9 +33,6 @@ While the \texttt{score} value is used to evaluate the alternative, the |
| 33 | 33 | entire JSON object returned by the \texttt{evaluate} block is delivered to |
| 34 | 34 | the developer for later analysis. This allows \texttt{maybe} statements to be |
| 35 | 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 | 36 | We expect that some \texttt{evaluate} blocks may need to know which |
| 40 | 37 | alternative was executed to compute a score---for example, if the two |
| 41 | 38 | alternatives produce different quality output. We are exploring the use of | ... | ... |
introduction.tex
| ... | ... | @@ -98,21 +98,31 @@ them at runtime.} |
| 98 | 98 | \end{figure} |
| 99 | 99 | |
| 100 | 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 | 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 | 118 | \texttt{maybe} system makes runtime choices about which alternative to use by |
| 111 | 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 | 126 | Section~\ref{sec-maybe}. Section~\ref{sec-certainty} describes several |
| 117 | 127 | techniques for transforming development-time uncertainty into runtime |
| 118 | 128 | certainty. We continue by describing several example use cases in | ... | ... |
references.bib
| ... | ... | @@ -2,6 +2,15 @@ |
| 2 | 2 | @string{sosp = "SOSP"} |
| 3 | 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 | 14 | @inproceedings{foraging-mobisys07, |
| 6 | 15 | title={Simplifying cyber foraging for mobile devices}, |
| 7 | 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 | 33 | Recent approaches that allow mobile devices to effectively offload |
| 34 | 34 | computation by automating client-cloud partitioning are also related to the |
| 35 | 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 | 33 | \texttt{maybe} allows both alternatives to coexist safely while ensuring that |
| 34 | 34 | each user enjoys whichever approach is most effective for them. |
| 35 | 35 | |
| 36 | +\newpage | |
| 37 | + | |
| 36 | 38 | \subsection{\texttt{\large PhoneLab} Conductor} |
| 37 | 39 | |
| 38 | 40 | \PhoneLab{} is a large scale smartphone platform testbed at the University at | ... | ... |