Enhancing mobile devices through code offload

Advances in mobile hardware and operating systems have made mobile a first-class development platform. Activities such as web browsing, casual game play, media playback, and document reading are now as common on mobile devices as on full-sized desktop systems. However, developers are still constrained by the inherent resource limitations of mobile devices. Unlike desktop systems, mobile devices must sacrifice performance to accomodate smaller form factors and battery-backed operation. Opportunistic offloading of computation from a mobile device to remote server infrastructure (i.e., "code offload") offers a promising way to overcome these constraints and to expand the set of applications (i.e., "apps") that can run on devices. Deciding to offload requires a careful consideration of the costs and benefits of a range of possible program partitions. This cost-benefit analysis depends on external factors, such as network conditions and the resources availability, as well as internal app properties, such as component dependencies, data representations, and code complexity. Thus, benefiting from offload requires some assistance from developers, but requiring developers to adopt arcane or unnatural programming models will hinder adoption of regardless of the potential benefits. In this dissertation we characterize two frameworks that reduce the amount of developer effort required to improve the performance of mobile apps through code offload. The first, MAUI, is designed for computationally intensive general-purpose apps such as speech and facial recognition. The second, Kahawai, is designed for graphics-intensive apps like fast-action video games. MAUI continuously monitors the device, network, and app, and uses its measurements to compute an energy-efficient program partition. MAUI reduces the burden on developers by taking advantage of core features of the managed code environments common to mobile platforms: code portability, serialization, reflection, and type safety. These features allows MAUI to automatically instrument and potentially offload methods that the developer has tagged as suitable for offload. MAUI is particularly effective on applications composed by operations whose computational cost is large compared to the transfer cost of their input parameters and their output results. Kahawai is designed for graphics-intensive apps such as console-style games and takes advantage of two features of today's mobile gaming platforms: capable mobile GPUs and reusable game engines. Even though today's mobile devices cannot duplicate the sophisticated graphical detail provided by gaming consoles and high-end desktop GPUs, devices have seen rapid improvements in their GPU processing capabilities. Kahawai leverages a device's GPU to provide collaborative rendering. Collaborative rendering relies on a mobile GPU to generate low-fidelity output, which when combined with server-side GPU output allows a mobile device to display a high-fidelity result. The benefits of collaborative rendering are substantial: mobile clients can experience high-quality graphical output using relatively little bandwidth. Fortunately, because most modern games are built on top of reusable game engines, developers only have to identify the sources of non-determinism in the game logic to take advantage collaborative rendering. Together, MAUI and Kahawai demonstrate that code offload can provide substantial benefits for mobile apps without overburdening app developers.

[1]  Luca Cardelli,et al.  A language with distributed scope , 1995, POPL '95.

[2]  Mahadev Satyanarayanan,et al.  Tactics-based remote execution for mobile computing , 2003, MobiSys '03.

[3]  S. Hecht,et al.  INTERMITTENT STIMULATION BY LIGHT : I. THE VALIDITY OF TALBOT'S LAW FOR MYA , 1932 .

[4]  Iain E. G. Richardson,et al.  The H.264 Advanced Video Compression Standard , 2010 .

[5]  Mahadev Satyanarayanan,et al.  Self-tuned remote execution for pervasive computing , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

[6]  Landon P. Cox,et al.  Experimenting in mobile social contexts using JellyNets , 2009, HotMobile '09.

[7]  Paramvir Bahl,et al.  Anatomizing application performance differences on smartphones , 2010, MobiSys '10.

[8]  Joseph A. Paradiso,et al.  Energy scavenging for mobile and wireless electronics , 2005, IEEE Pervasive Computing.

[9]  R. A. Powers Batteries for low power electronics , 1995, Proc. IEEE.

[10]  Galen C. Hunt,et al.  The Coign automatic distributed partitioning system , 1999, OSDI '99.

[11]  Muli Ben-Yehuda,et al.  Tapping into the fountain of CPUs: on operating system support for programmable devices , 2008, ASPLOS.

[12]  Paramvir Bahl,et al.  The Case for VM-Based Cloudlets in Mobile Computing , 2009, IEEE Pervasive Computing.

[13]  Samuel T. King,et al.  ReVirt: enabling intrusion analysis through virtual-machine logging and replay , 2002, OPSR.

[14]  Marc Levoy Polygon-assisted JPEG and MPEG compression of synthetic images , 1995, SIGGRAPH.

[15]  Mahadev Satyanarayanan,et al.  Quantifying interactive user experience on thin clients , 2006, Computer.

[16]  Alan Messer,et al.  Adaptive offloading inference for delivering applications in pervasive computing environments , 2003, Proceedings of the First IEEE International Conference on Pervasive Computing and Communications, 2003. (PerCom 2003)..

[17]  Andrew Warfield,et al.  Live migration of virtual machines , 2005, NSDI.

[18]  Edward Wobber,et al.  Network objects , 1994, SOSP '93.

[19]  Sape J. Mullender,et al.  Protium, an infrastructure for partitioned applications , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

[20]  Mahadev Satyanarayanan,et al.  Data Staging on Untrusted Surrogates , 2003, FAST.

[21]  Jeffrey Richter,et al.  CLR via C , 2006 .

[22]  J. D. Day,et al.  A principle for resilient sharing of distributed resources , 1976, ICSE '76.

[23]  Alec Wolman,et al.  MAUI: making smartphones last longer with code offload , 2010, MobiSys '10.

[24]  Sivan Toledo,et al.  Wishbone: Profile-based Partitioning for Sensornet Applications , 2009, NSDI.

[25]  Feng Zhao,et al.  Fine-grained energy profiling for power-aware application design , 2008, PERV.

[26]  Eero P. Simoncelli,et al.  Image quality assessment: from error visibility to structural similarity , 2004, IEEE Transactions on Image Processing.

[27]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[28]  Byung-Gon Chun,et al.  Augmented Smartphone Applications Through Clone Cloud Execution , 2009, HotOS.

[29]  Peter Thiemann,et al.  From sequential programs to multi-tier applications by program transformation , 2005, POPL '05.

[30]  kc claffy,et al.  Bandwidth estimation: metrics, measurement techniques, and tools , 2003, IEEE Netw..

[31]  Hujun Bao,et al.  Real-Time Graphics Rendering Engine , 2011 .

[32]  Mahadev Satyanarayanan,et al.  Agile application-aware adaptation for mobility , 1997, SOSP.

[33]  Jason Nieh,et al.  Proceedings of the 5th Symposium on Operating Systems Design and Implementation , 2022 .

[34]  James D. Herbsleb,et al.  Simplifying cyber foraging for mobile devices , 2007, MobiSys '07.

[35]  Jason Flinn,et al.  Can deterministic replay be an enabling tool for mobile computing? , 2011, HotMobile '11.

[36]  Mahadev Satyanarayanan,et al.  Balancing performance, energy, and quality in pervasive computing , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[37]  Bi Wu,et al.  CrowdLab: An architecture for volunteer mobile testbeds , 2011, 2011 Third International Conference on Communication Systems and Networks (COMSNETS 2011).

[38]  Byung-Gon Chun,et al.  CloneCloud: elastic execution between mobile device and cloud , 2011, EuroSys '11.

[39]  Robert S. Gray,et al.  Agent Tcl: a Exible and Secure Mobile-agent System , 1996 .

[40]  Daniel Cohen-Or,et al.  Selective Pixel Transmission for Navigating in Remote Virtual Environments , 1997, Comput. Graph. Forum.

[41]  Robbert van Renesse,et al.  Amoeba A Distributed Operating System for the 1990 s Sape , 1990 .

[42]  Stefan Savage,et al.  Sting: A TCP-based Network Measurement Tool , 1999, USENIX Symposium on Internet Technologies and Systems.

[43]  Jason Flinn,et al.  Slingshot: deploying stateful services in wireless hotspots , 2005, MobiSys.

[44]  Fred Douglis,et al.  Transparent process migration: Design alternatives and the sprite implementation , 1991, Softw. Pract. Exp..

[45]  Jason Nieh,et al.  Limits of wide-area thin-client computing , 2002, SIGMETRICS '02.

[46]  Mahadev Satyanarayanan,et al.  Simplifying cyber foraging , 2006 .

[47]  Brian D. Noble,et al.  Safety, Visibility, and Performance in a Wide-Area File System , 2002, FAST.

[48]  Khalid Sayood Lossless Compression Handbook , 2003 .

[49]  Mahadev Satyanarayanan,et al.  The case for cyber foraging , 2002, EW 10.

[50]  Galen C. Hunt,et al.  Detours: binary interception of Win32 functions , 1999 .

[51]  M. Frans Kaashoek,et al.  Rover: a toolkit for mobile information access , 1995, SOSP.