Open Access Subscription Access
OCRA: Offloading of Code of Recursive Algorithm from Smartphone to Cloud to Enhance Performance
Developments in mobile computing have changed user preference for computing in modern era. However, Smartphones have limited resources - smaller memory and cache, less powerful processors, limited screen size, etc. Therefore, it take too much time for computational intensive jobs. One way of improving performance of Smartphones is to offload its computation intensive tasks to more powerful servers, keeping the GUI to the phones. As the Smartphone and the backend server have different Software and Hardware Architectures and different Memory address Space, to migrate an executing process we need to clone the Stack, Heap and Process Control Block. In case of Recursive algorithms, additionally, we need to migrate the Data and the Control Stacks. A network monitor should check the network condition and take a decision dynamically for offloading. This paper introduces a system prototype named OCRA that shows such an offloading scheme using the Tower of Hanoi (TOH) as an example. The Smartphone is connected to the server through Wi-Fi. The system can perform multiple back and forth offloading between the server and the Smartphone. The system uses URLClass Loader to load the TOH class once into the JVM from Network at the beginning of the offload and uses Java Reflection API to instantiate and dynamically invoke the Tower of Hanoi methods by examining Stack Object. The system was tested and achieved more than 50% improvement in performance for higher values of N (no. of disks) as compared to execution on Smartphone alone.
Cloud Computing, JVM, Network Monitoring, Smart Phone.
- Das PK, Shome S, Sarkar AK. APPS: Accelerating Performance and Power Saving in Smartphones using code offload. 6th IEEE International Advance Computing Conference; 2016 Feb.
- Android.widget.EditText class. Available from: http://developer.android.com/reference/android/widget/EditText.html
- java.net.URLClassLoader class. https://docs.oracle.com/javase/7/docs/ api/java/net/URLClassLoader.html
- java.lang.reflect.Method class. Available from: https://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html
- java.lang.reflect.Field class. Available from: https://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Field.html
- java serialization/deserialization library: Gson. Available from: https:// github.com/google/gson
- Android Studio Apk build process. Available from: http://developer.android.com/sdk/installing/studio-build.html
- Tower of Hanoi. Available from: https://en.wikipedia.org/wiki/Tower_of_ Hanoi
- Cuervo E, Balasubramanian A, Cho D, Wolman A, Saroju S, Chandra R, Bahl P. Maui: Making Smartphone last linger with code offload. Mobisys ’10 Procedings of 8th International Conference on Mobile System, Application and Services; 2010 Jun.
- Chun BG, Ihm S, Maniatis P, Naik M, Patti A.Clonecloud: Elastic execution between mobile devices and cloud. Eurosys ’11 Proceedings of Sixth Conference on Computer System, 2011. p. 301–14.
- Kemp R, Palmer N, Kielmann T, Bal H. Cuckoo: A computation offloading framework for smartphone. MOBICASE ’10 Mobile computing, Applications, and Services 2010.
- Kosta S, Aucinas A, Hui P, Mortier R, Zhang X. ThinkAir: Dyanamic Resource allocation and parallel execution in the cloud for mobile code offloading. INFOCOM IEEE Proceedings; Orlando, FL. 2012 Mar 25-30. p. 945–53.
- Khan A, Othman M, Madani S, Khan S. A survey of mobile cloud computing application models. Communication Surveys Tutorials, IEEE. 2013; 16(1):393–413.
- Zhang Y, Huang G, Liu X, Zhang W, Mei H, Yang S. Refactoring Android Java code for on demand computation offloading. OOPSLA ’12 Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications; 2012. p. 233–48.
Abstract Views: 497
PDF Views: 162