CloneCloud: Boosting Mobile Device Applications Through Cloud Clone Execution
Authors
Byung-Gon Chun, Sunghwan Ihm, Petros Maniatis, Mayur Naik
Date
26-Sep-2010 (arXiv)
Novel Idea
Migrating mobile application VMs to server execution at thread
granularity and without manual intervention by the programmer.
Main Results
The system offloads application VM to execute on Cloud servers, aiming
gains on performance. The approach doesn't require user intervention,
operates at thread-level and can use specialized resource system calls
from both the mobile device and from the server system.
Impact
The paper mentions that most smartphone applications are "low-margin",
so using automated mechanism to offload application is definitely more
viable to these situations.
Evidence
The paper first describes how the application is partitioned and what
are the issues involved. It describes how profile trees are created
for the applications, the associated cost assignment, and how the
optimization problem is formulated.
The evaluation consists of three applications subject to variations in
input size. The results show that when WiFi is available, the offload
tends to occur more frequently as compared to the 3G case (as the 3G
connectivity is slower, it has such impact on the optimization
calculation).
Prior Work + Competitive Work
The related work section is extensive. When discussing previous work
in partitioning, systems as Coign, Wishbone, Pleiades and MAUI are
cited. The paper also mentions systems for partitioning Java programs,
and others that concern on doing the same on other high-level
languages.
Concerning migration, they mention MERPATI (which they claim to assume
a cluster of homogeneous machines connected via a fast network).
Interestingly (!), they cite some distributed shared memory approaches
(Jessica, Java/DSM).
Finally, they discuss some approaches for remotely executing code.
Reproducibility
The paper doesn't provide a clear description of the applications
tested, but ones with similar characteristics could be found given the
overwhelming variety of those.
The server side of the evaluation section is poorly discussed, which
clearly compromises the reproducibility.
Questions + Criticism
[Criticism] I believe that the evaluation section focuses solely in
one dimension of the problem (namely speedup), and forgets the others.
The connectivity dimension is somewhat covered (WiFi vs 3G), but I
think this distinction is too coarse-grained: with different latencies
in the WiFi case (like the MAUI paper), interesting information
regarding whether the code is offloaded or not could provide a better
insight on the solver "fitness".
[Question] How the cost of migrating could be dynamically evaluated,
in order to be taken into account in the optimization framework?
On Mon, Nov 22, 2010 at 8:01 PM, Rodrigo Fonseca
<rodrigo...@gmail.com> wrote:
Authors: Byung-Gon Chun, Sunghwan Ihm, Petros Maniatis, and Mayur Naik
Date: 26 September 2010
Novel idea: A combination of static analysis and dynamic profiling can
be used to partition a mobile application effectively without any
explicit annotations from the developer. Additionally, we can migrate
entire threads efficiently and automatically from mobile device to
server.
Main results: The CloneCloud implementation uses Android and the
Dalvik VM and results in a 21x speedup for some applications.
Evidence: The authors tested CloneCloud with a virus scanner, image
search, and targeted-advertising. CloneCloud chose to keep local more
workloads when using 3G than when using Wifi.
Competitive work: Unlike MAUI, CloneCloud works on unmodified
executables and does not require the developer to explicitly annotate
"remoteable" functions.
Reproducibility: Although the implementation details are significantly
more detailed in this paper than in MAUI, there still does not seem to
be any source code available.
Criticism: The performance evaluation section could be stronger.
On Mon, Nov 22, 2010 at 8:01 PM, Rodrigo Fonseca
<rodrigo...@gmail.com> wrote:
>
CloneCloud:BoostingMobileDeviceApplications
ThroughCloudCloneExecution
Byung-GonChun, Sunghwan Ihm, Petros Maniatis, Mayur Naik
Paper Title |
|
Author(s) |
|
Date |
2010 |
Novel Idea |
This paper is interestingly similar to MAUI, but comes at it from a broader angle. It's nice to read two contemporary, directly competing papers and see how they differ. CloneCloud has two major differences from MAUI: It explicitly targets any and all resources that can be enhanced by migration to the cloud, not just battery life (though in their prototype they focus on execution time); and it wants to remove all effort from the programmer entirely. |
Main Result(s) |
As this is very similar to MAUI, about which I have just written a lot, I will take a page from MAUI and attempt to save bandwidth by simply computing the delta. The code and environment analysis portion of CloneCloud's approach is more in-depth than MAUI's, but also more brittle - since they run everything offline and store it in a table, they may not be able to correctly optimize for unforeseen conditions. However, they also thereby avoid a major source of overhead, which may compensate for this even in the worst scenarios (which should be uncommon if you did the analysis well). CloneCloud offloads entire threads, which in a single-threaded app isn't much different from what MAUI does as the points at which offload and reintegration can happen are still method entrance and exit. However, their model is more formal and abstract, which seems to have the concrete benefit of making it clear to them how to handle multi-threaded programs, which the MAUI authors seemed to struggle with. They do also employ a heap delta strategy to reduce migration bandwidth, but they seem to use a coarser-grained approach, taking a delta only from the original Android Zygote process rather than from constantly updated checkpoints. |
Impact | Again, hopefully lots soon! |
Evidence | Since their tested goal is execution time rather than battery life, it's hard to directly compare this section to MAUI, but it seems to be of comparable quality (though, as with everything in this paper, it takes a higher view -- MAUI got into the nitty-gritty of TCP slow start, these guys treat the network as a black box and just report final times). Their speedups are quite a bit greater, but they are also running very different kinds of applications. MAUI's evaluation section is maybe a little more honest, in that they choose examples (games, voice recognition, face recognition) that exemplify the largely user-facing nature of phone apps. CloneCloud's examples, while reasonable, avoid highly interactive user interfaces, with two of them, virus scanning and ad targeting, normally running entirely behind the scenes. |
Prior Work | Similar list of prior VM work, of which there is tons. |
Reproducibility | Significantly less than MAUI, I would say. Their implementation section is less than a page long, and while it tells you generally what they did, it doesn't go very far toward helping you do the same. |
Question | How bad is it if they get the shared-native-state annotations wrong? It seems like it would be pretty bad, since they don't migrate that state at all, and presumably things could need it to like, work. Why don't they address this? |
Criticism | This paper takes a much higher view than MAUI did, and as a result is at once more and less useful. It seems like they are building a more solid theoretical foundation for their work, but at the expense of attention to detail. There are a lot of things they gloss over: how the configurations and inputs to do dynamic analysis on are chosen; where all the partition binaries are stored (they can't all be on the phone, right? right??); |
Ideas for further work | I suppose the natural thing is a more side-by-side comparison of this and MAUI. Some questions to look into include: when does on-device profiling give you important flexibility? Can MAUI's model extend cleanly to multithreaded apps like CloneCloud does? |