COMET: code offload by migrating execution transparently

  • Authors:
  • Mark S. Gordon;D. Anoushe Jamshidi;Scott Mahlke;Z. Morley Mao;Xu Chen

  • Affiliations:
  • EECS Department, University of Michigan, Ann Arbor, MI;EECS Department, University of Michigan, Ann Arbor, MI;EECS Department, University of Michigan, Ann Arbor, MI;EECS Department, University of Michigan, Ann Arbor, MI;AT&T Labs-Research

  • Venue:
  • OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper we introduce a runtime system to allow unmodified multi-threaded applications to use multiple machines. The system allows threads to migrate freely between machines depending on the workload. Our prototype, COMET (Code Offload by Migrating Execution Transparently), is a realization of this design built on top of the Dalvik Virtual Machine. COMET leverages the underlying memory model of our runtime to implement distributed shared memory (DSM) with as few interactions between machines as possible. Making use of a new VM-synchronization primitive, COMET imposes little restriction on when migration can occur. Additionally, enough information is maintained so one machine may resume computation after a network failure. We target our efforts towards augmenting smartphones or tablets with machines available in the network. We demonstrate the effectiveness of COMET on several real applications available on Google Play. These applications include image editors, turn-based games, a trip planner, and math tools. Utilizing a server-class machine, COMET can offer significant speed-ups on these real applications when run on a modern smartphone. With WiFi and 3G networks, we observe geometric mean speed-ups of 2.88× and 1.27× relative to the Dalvik interpreter across the set of applications with speed-ups as high as 15× on some applications.