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,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 |