Enabling Cross-ISA Offloading for COTS Binaries

Work offloading allows a mobile device, i.e., the client, to execute its computation-intensive code remotely on a more powerful server to improve its performance and to extend its battery life. However, the difference in instruction set architectures (ISAs) between the client and the server poses a great challenge to work offloading. Most of the existing solutions rely on language-level virtual machines to hide such differences. Therefore, they have to tie closely to the specific programming languages. Other approaches try to recompile the mobile applications to achieve the specific goal of offloading, so their applicability is limited to the availability of the source code. To overcome the above limitations, we propose to extend the capability of dynamic binary translation across clients and servers to offload the identified computation-intensive binary code regions automatically to the server at runtime. With this approach, the native binaries on the client can be offloaded to the server seamlessly without the limitations mentioned above. A prototype has been implemented using an existing retargetable dynamic binary translator. Experimental results show that our system achieves 1.93X speedup with 48.66% reduction in energy consumption for six real-world applications, and 1.62X speedup with 42.4% reduction in energy consumption for SPEC CINT2006 benchmarks.

[1]  Wei-Chung Hsu,et al.  Efficient memory virtualization for Cross-ISA system mode emulation , 2014, VEE '14.

[2]  Henri E. Bal,et al.  Cuckoo: A Computation Offloading Framework for Smartphones , 2010, MobiCASE.

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

[4]  Mobile Computing, Applications, and Services - Second International ICST Conference, MobiCASE 2010, Santa Clara, CA, USA, October 25-28, 2010, Revised Selected Papers , 2012, Mobile Computing, Applications, and Services.

[5]  Kun Yang,et al.  An adaptive multi-constraint partitioning algorithm for offloading in pervasive systems , 2006, Fourth Annual IEEE International Conference on Pervasive Computing and Communications (PERCOM'06).

[6]  Derek Bruening,et al.  Process-shared and persistent code caches , 2008, VEE '08.

[7]  Chien-Min Wang,et al.  HQEMU: a multi-threaded and retargetable dynamic binary translator on multicores , 2012, CGO '12.

[8]  Wang Zhenjiang,et al.  A Pattern Translation Method for Flags in Binary Translation , 2014 .

[9]  James E. Smith,et al.  Virtual machines - versatile platforms for systems and processes , 2005 .

[10]  Xiangyu Zhang,et al.  Precise Calling Context Encoding , 2010, IEEE Transactions on Software Engineering.

[11]  Cho-Li Wang,et al.  JESSICA2: a distributed Java Virtual Machine with transparent thread migration support , 2002, Proceedings. IEEE International Conference on Cluster Computing.

[12]  Huber Flores,et al.  Adaptive code offloading for mobile cloud applications: exploiting fuzzy sets and evidence-based learning , 2013, MCS '13.

[13]  Cheng Wang,et al.  Computation offloading to save energy on handheld devices: a partition scheme , 2001, CASES '01.

[14]  Herbert Bos,et al.  Paranoid Android: versatile protection for smartphones , 2010, ACSAC '10.

[15]  Xu Chen,et al.  COMET: Code Offload by Migrating Execution Transparently , 2012, OSDI.

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

[17]  Fabrice Bellard,et al.  QEMU, a Fast and Portable Dynamic Translator , 2005, USENIX Annual Technical Conference, FREENIX Track.

[18]  Scott A. Mahlke,et al.  Accelerating Mobile Applications through Flip-Flop Replication , 2015, MobiSys.

[19]  Guido Araujo,et al.  Trace execution automata in dynamic binary translation , 2010, ISCA'10.

[20]  Zhiyuan Li,et al.  Adaptive computation offloading for energy conservation on battery-powered systems , 2007, 2007 International Conference on Parallel and Distributed Systems.

[21]  Michael D. Smith,et al.  Persistent Code Caching: Exploiting Code Reuse Across Executions and Applications , 2007, International Symposium on Code Generation and Optimization (CGO'07).

[22]  Pan Hui,et al.  ThinkAir: Dynamic resource allocation and parallel execution in the cloud for mobile code offloading , 2012, 2012 Proceedings IEEE INFOCOM.

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

[24]  Kun Yang,et al.  On effective offloading services for resource-constrained mobile devices running heavier mobile Internet applications , 2008, IEEE Communications Magazine.

[25]  Derek Bruening,et al.  Efficient, transparent, and comprehensive runtime code manipulation , 2004 .

[26]  Chris Lattner,et al.  LLVM: AN INFRASTRUCTURE FOR MULTI-STAGE OPTIMIZATION , 2000 .

[27]  Satish Narayana Srirama,et al.  Mobile code offloading: should it be a local decision or global inference? , 2013, MobiSys '13.

[28]  Stephen McCamant,et al.  A General Persistent Code Caching Framework for Dynamic Binary Translation (DBT) , 2016, USENIX Annual Technical Conference.

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

[30]  Cheng Wang,et al.  Parametric analysis for adaptive computation offloading , 2004, PLDI '04.

[31]  Karim Habak,et al.  COSMOS: computation offloading as a service for mobile devices , 2014, MobiHoc '14.

[32]  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)..

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

[34]  Kyung-Ah Chang,et al.  Architecture-aware automatic computation offload for native applications , 2015, 2015 48th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).