Mobile devices have less computational power and poorer Internet connections than other computers. Computation offload, in which some portions of an application are migrated to a server, has been proposed as one way to remedy this deficiency. Yet, partition-based offload is is challenging because it requires applications to accurately predict whether mobile or remote computation will be faster, and it requires that the computation be large enough to overcome the cost of shipping state to and from the server. Further, offload does not currently benefit network-intensive applications.

Tango is a novel system that accelerates mobile applications by replicating their execution on a remote server. By displaying output to the user from the replica that is currently leading the execution, Tango reduces the latency seen by users. To accomplish this speedup, we developed a technique called flip-flop replication, in which the leadership role floats to the replica that is currently faster, with the other replica following the execution through deterministic replay. Tango works for unmodified applications that run on the Dalvik VM on Android devices. You can find more details on Tango in our MobiSys’15 paper:

Mark Gordon, David Ke Hong, Peter Chen, Jason Flinn, Scott Mahlke, and Z. Morley Mao. Accelerating Mobile Applications through Flip-Flop Replication. In Proc. ACM MobiSys. May 18-22, 2015. Florence, Italy. (PDF)

The code base for Tango is available for download and in docker container.