  Mobile applications are becoming increasingly ubiquitous and provide ever
richer functionality on mobile devices. At the same time, such devices often
enjoy strong connectivity with more powerful machines ranging from laptops and
desktops to commercial clouds. This paper presents the design and
implementation of CloneCloud, a system that automatically transforms mobile
applications to benefit from the cloud. The system is a flexible application
partitioner and execution runtime that enables unmodified mobile applications
running in an application-level virtual machine to seamlessly off-load part of
their execution from mobile devices onto device clones operating in a
computational cloud. CloneCloud uses a combination of static analysis and
dynamic profiling to optimally and automatically partition an application so
that it migrates, executes in the cloud, and re-integrates computation in a
fine-grained manner that makes efficient use of resources. Our evaluation shows
that CloneCloud can achieve up to 21.2x speedup of smartphone applications we
tested and it allows different partitioning for different inputs and networks.
