diff --git a/certainty.tex b/certainty.tex index 83d4794..144e23b 100644 --- a/certainty.tex +++ b/certainty.tex @@ -33,9 +33,6 @@ While the \texttt{score} value is used to evaluate the alternative, the entire JSON object returned by the \texttt{evaluate} block is delivered to the developer for later analysis. This allows \texttt{maybe} statements to be connected with end-to-end app performance metrics not visible on the device. -\texttt{evaluate} blocks may also want to query the user directly, and we are -exploring ways to make this possible. - We expect that some \texttt{evaluate} blocks may need to know which alternative was executed to compute a score---for example, if the two alternatives produce different quality output. We are exploring the use of diff --git a/introduction.tex b/introduction.tex index 6361723..d4e1156 100644 --- a/introduction.tex +++ b/introduction.tex @@ -98,21 +98,31 @@ them at runtime.} \end{figure} In this paper, we present a novel a language construct for expressing -structured uncertainty: the \texttt{maybe} statement. \texttt{maybe} allows -the programmer to express and structure their uncertainty by providing two or -more different \textit{alternatives} which together implement multiple -approaches to runtime adaptation, possibly by making the same -energy-performance or energy-accuracy tradeoffs described previously. +structured uncertainty: the \texttt{maybe} statement. Unlike previous +approaches to adaptation that relied on language support, \texttt{maybe} does +not attempt to encourage the programmer to provide more information about +their app to allow the compiler to improve performance or guarantee +correctness. Rather, \texttt{maybe} allows the programmer to express and +structure uncertainty by providing two or more different +\textit{alternatives} implementing multiple approaches to runtime adaptation, +possibly by making the same energy-performance or energy-accuracy tradeoffs +described previously. Conceptually, \texttt{maybe} extends the process of +compilation and optimization to include post-deployment testing while also +enabling flexible adaptation that may produce per-user, per-device, or +temporally-varying solutions. + Figure~\ref{fig-example-maybe} shows how our earlier example can be easily -rewritten to use a \texttt{maybe} statement. However, unlike the previous -example \texttt{maybe} does not rely on the developer to implement a decision -process or correctly anticipate the effects of each alternative. Instead, the +rewritten to use a \texttt{maybe} statement. Unlike the previous example +\texttt{maybe} does not rely on the developer to implement a decision process +or correctly anticipate the effects of each alternative. Instead, the \texttt{maybe} system makes runtime choices about which alternative to use by measuring the tradeoffs produced by each alternative and (in this case) -activating an energy-saving alternative when appropriate. +activating an energy-saving alternative when appropriate. All the developer +has to do is provide alternatives when they are unsure what to do; the +\texttt{maybe} system does the rest. -How that choice is made is discussed in the remainder of our paper. We begin -by providing a more complete description of the \texttt{maybe} statement in +The rest of our paper is structured as follows. We begin by providing a more +complete description of the \texttt{maybe} statement in Section~\ref{sec-maybe}. Section~\ref{sec-certainty} describes several techniques for transforming development-time uncertainty into runtime certainty. We continue by describing several example use cases in diff --git a/references.bib b/references.bib index 6a5e649..2a7b3f1 100644 --- a/references.bib +++ b/references.bib @@ -2,6 +2,15 @@ @string{sosp = "SOSP"} @string{osdi = "OSDI"} +@inproceedings{maui-mobisys10, + title={MAUI: making smartphones last longer with code offload}, + author={Cuervo, Eduardo and Balasubramanian, Aruna and Cho, Dae-ki and Wolman, Alec and Saroiu, Stefan and Chandra, Ranveer and Bahl, Paramvir}, + booktitle={Proceedings of the 8th international conference on Mobile systems, applications, and services}, + pages={49--62}, + year={2010}, + organization={ACM} +} + @inproceedings{foraging-mobisys07, title={Simplifying cyber foraging for mobile devices}, author={Balan, Rajesh Krishna and Gergle, Darren and Satyanarayanan, Mahadev and Herbsleb, James}, diff --git a/related.tex b/related.tex index 015a09c..d979f7c 100644 --- a/related.tex +++ b/related.tex @@ -33,12 +33,8 @@ powerful by allowing programmers to express uncertainty. Recent approaches that allow mobile devices to effectively offload computation by automating client-cloud partitioning are also related to the \texttt{maybe} statement. Systems such as Tactics~\cite{tactics-mobisys03} -and MAUI~\cite{FIXME} used a variety of approaches to enabling this form of -adaptation but are narrowly-focused on harnessing opportunities for remote -execution. While \texttt{maybe} statements can enable simple decisions about -whether to offload portions of an app, the \texttt{maybe} approach is not yet -rich enough to consider how much of the execution should be performed -remotely or deal with server failures. At present \texttt{maybe} focuses on -single-device adaptation, but we are interested in exploring the ability to -use uncertainty to distribute computation between multiple devices as future -work. +and MAUI~\cite{maui-mobisys10} used a variety of approaches to enabling this +form of adaptation but are narrowly-focused on harnessing opportunities for +remote execution. At present \texttt{maybe} focuses on single-device +adaptation, but we are interested in exploring the ability to use uncertainty +to distribute computation between multiple devices as future work. diff --git a/usage.tex b/usage.tex index 2c3b59d..b1d7a40 100644 --- a/usage.tex +++ b/usage.tex @@ -33,6 +33,8 @@ may never outperform the app-specific algorithm, in which cases \texttt{maybe} allows both alternatives to coexist safely while ensuring that each user enjoys whichever approach is most effective for them. +\newpage + \subsection{\texttt{\large PhoneLab} Conductor} \PhoneLab{} is a large scale smartphone platform testbed at the University at