Mobile devices are equipped with limited processing power and battery charge. With mobile computation offloading, it is possible to provide better user experience in terms of computation time and energy consumption .
Since 2012, we have been working on a mobile computation offloading framework that is lightweight and that can be exploited by users without specific involvemenent of application developers and without requiring to root the mobile device. We named the solution ULOOF (User Level Online Offloading Framework).
ULOOF is equipped with a machine learning logic and a smart decision engine to minimize both execution time and energy consumption of mobile Android applications, while not requiring any modification in underlying device operating system. ULOOF objective is to provide offloading functionality to any existing android application, by inspecting, decompiling and recompiling it.
A high-level representation of the framework is in the following figure. A Virtual Machine (VM) emulating a remote Android device is called for the remote execution when a local decision engine, exploiting machine learning on the consumed energy and execution time on a per-method level. Additional post-processing tasks on the primitive APK may be run on the VM rather than on the device. Instead of the VM, another Android device (to support device-to-device computation offloading) or bare-metal machine could also be used.
Additional details are in the related publications below.
The ULOOF framework consists of a smart decision engine which predicts execution time and energy consumption of a mobile computation. The decision engine measures the potential gain in terms of the two aspects and decide whether to offload a certain computation.
To demonstrate our framework, we set up two proof-of-concept android applications:
- one computing Fibonacci numbers;
- one computing shortest routes, corresponding to a navigation application.
To download ULOOFed applications, see below. To test the whole framework, the complete frameowkr code is accessible at https://github.com/ULOOF-Framework/ULOOF. You can use one of the following ULOOF servers for your tests: 18.104.22.168, 22.214.171.124.
The following video shows how ULOOF works with the Fibonacci application.
Our post-compiler scans an Android mobile application and creates an offloading-enabled application, which is functionally equivalent, but with the capability to offload computations to a remote server. The granularity of the offloading decision is the application method.
It is achieved this by a careful automated analysis to detect which methods can be executed on the server consistently and by marginally modifying those methods code to execute them in a remote server.
The post-compiler retrieves the information from the application and analyse each class and method found in the application. It detects the structure of application and and inspects each class found from the initial structure scan. Classses are soclassified into offloadable and non-offloable classes.
The methods in the offloadable classes are further inspected with additional tests to determine whether they are suitable for an offloading, as represented in the following figure.
Our post-compiler can optimize every method detected from the previous method selection algorithm into a Jimple pseudocode. The optimized methods can be executed on a remote server at runtime regardless of the type of parameters passed as input arguments and whether the method is static or non-static.
The post-compiler also equipped with a dynamic object management between the mobile application and the remote server. Each time we execute the remote computation, we make sure every instance involved in offloading is kept up-to-date regardless of where the computation is executed.
José L. NETO, Se-young YU, Daniel F. MACEDO, José M. NOGUEIRA, Rami LANGAR, Stefano SECCI, "ULOOF: a User Level Online Offloading Framework for Mobile Edge Computing", IEEE Transactions on Mobile Computing, Vol. 17, No. 11, pp: 2660-2674, Nov. 2018. hal-01547036.
Alessandro ZANNI, Se-young YU, Paolo BELLAVISTA, Rami LANGAR, Stefano SECCI, "Automated Selection of Offloadable Tasks for Mobile Computation Offloading in Edge Computing", Proc. of 2017 Conference on Network and Service Management (CNSM 2017), Nov. 26-30, 2017, Tokyo, Japan.
Alessandro ZANNI, Se-young YU, Stefano SECCI, Rami LANGAR, Paolo BELLAVISTA, Daniel MACEDO, "Automated Offloading of Android Applications for Computation/Energy-usage Optimizations", in Proc. of IEEE Int. Conference on Computer Communications (INFOCOM), May 1-4, 2017, Atlanta, USA.
The fully-fledged ULOOF framework project is open sourced at https://github.com/ULOOF-Framework/ULOOF.
You can download the demonstration applications apks that will offload method calls to a VM running in Paris, based on your network latency with our servers.
NB: you will need to authorize installing APK not coming from Google play.
This work was initiated in the frame of the French-Brazilian CNRS - FAP exchange collaborative project WINDS (Systems for Mobile Cloud Computing), between LIP6/University Pierre and Marie Curie - Sorbonne (UPMC, Paris, France) and Federal University of Minas Gerais (UFMG, Belo Horizontal, Brazil) and the ANR ABCD project. It is then further supported by the FUI PODIUM project. Since 2018 the project continues and is hostede at the computer science and communications lab (Cedric) of Cnam, Paris, France.
José Leal (UFMG, visiting student, now in Google Inc),
Daniel Macedo, José Nogueira (UFMG, visiting professors).
Se-young Yu (postdoc on ULOOF, now postdoc in Northwestern University, IL, USA),
Alessandro Zanni (Ph.D. student, now at Altran),
Paolo Bellavista (UNIBO, visiting professor),
Alessio Diamanti (Cnam/Orange),
Alessio Mora (master intern, graduate student at UNIBO),
Rami Langar (UPEM),
Stefano Secci (Cnam).
If you want to join the team or help, please drop us an e-mail.
For any suggestions, comments or special requests do not hesitate to contact us.
stefano.secci AT cnam.fr
2 rue Conté, Paris, France
rami.langar AT u-pem.fr
UPEM, University of Paris Est Marne-la-Vallee, France