Case of ARM emulation optimization for offloading mechanisms in Mobile Cloud Computing
Introduction
Smartphones and mobile devices have experienced an exponential growth in computational power over the last decade. As a result, context-aware and computationally intensive smartphone applications have gained popularity. Popular mobile applications are feature rich and enable users to perform complex tasks ranging from video processing, speech recognition, and personal health monitoring [1]. However, mobile devices will always remain resource-constrained as compared to server counterparts in terms of computation cycles, memory size, and battery lifetime [2]. Therefore, applications that are categorized as compute-intensive, such as, augmented reality, natural language translation, and object recognition, require offloading to a resource rich entity. The offloading mechanisms save the battery life of smartphones and enable them to function for longer intervals. On the other hand, the near infinite resources of cloud computing present an ideal candidate for computational offloading. Cloud Data Centers (CDCs) are put together with thousands of compute and store nodes that are connected with each other and the userfacing web interfaces [3]. CDCs provide a flexible pricing and utilization model over the internet that can be utilized by resource constrained mobile devices. The amalgam of mobile computing and Cloud Computing (CC) has led to the birth of Mobile Cloud Computing (MCC) paradigm [4], [5].
A number of possible techniques can enable offloading of data, application, or the complete mobile workspace to the cloud over the internet. These MCC offloading techniques include [6],
- •
System virtualization: A virtual host can reside and migrate between multiple heterogeneous physical hosts, such as a smartphone and a cloud server.
- •
Application virtualization: Application virtualization, such as Android Dalvik runtime, enables mobile applications to be platform-independent.
- •
ARM ISA emulation: Process state and compiled code can be migrated and emulated from ARM based mobile devices to Intel based cloud servers.
System virtualization based virtual machine (VM) migration has been proposed to offload a VM instance from the mobile device to the cloud [7]. Although system virtualization is beneficial in high performance server devices, it is performance prohibitive for resource constrained mobile devices. Moreover, commonly used mobile OSes such as, Android and Windows Mobile do not support system virtualization techniques. Most virtualization solutions, such as KVM, have at least 10% lesser performance relative to a non-virtualized systems for various compute intensive tasks [8], [9]. Applications written in platform-independent languages, such as Java, can facilitate remote execution of tasks over heterogeneous platforms. Application virtualization solutions are available in most smartphones in the form of the Dalvik VM (Android OS) and .Net runtime environments (Windows Mobile OS). An application executing in an application VM can be offloaded to a similar virtual instance over the cloud [1], [10]. However, this approach puts a restriction on application development language and execution environment. Moreover, applications executing in the application VM suffer from performance overhead. For instance, the overhead of a Java application can be twice as high as native C application [11], [12].
Process migration is another approach to computational offloading in MCC [15]. As compared to VM device and application virtualization, the amount of data to be offloaded is very less in process migration. Process code executing on a mobile device cannot be run as it is over a server as 90% of the mobile devices are equipped with ARM processors while Intel x86 processors dominate the server market [3]. Instruction Set Architecture (ISA) emulation is required while offloading process state between heterogeneous processors. In such a scenario, emulated mobile instances are widely used to support offloading [17]. The most commonly used ARM ISA emulators are Qemu [18] and gem5 [19]. However, ISA emulation is inherently slow due to instruction translation overhead. Moreover, existing emulators have been largely developed with the objective to test mobile applications on x86 architectures. Therefore, performance of emulators is not considered in the development process. Parallel execution of emulation threads and efficient translation of Floating Point (FP) and Single Instruction, Multiple Data (SIMD) instructions can result in enhanced performance of emulators. SIMD instructions are redundantly found in signal processing and multimedia applications. SIMD instructions are a hardware capability that allows execution of the same operation on multiple data points simultaneously. For example, the change in brightness of a picture requires retrieving of pixels and ADD/SUB operation on the pixels. Significant performance loss is incurred when emulators, such as Qemu, translate SIMD instructions to simple scalar instructions [20].
We try to validate the case for ARM emulation optimization for MCC offloading mechanisms in this article by evaluating their performance through benchmarking. Firstly, we benchmark system and application virtualization techniques to characterize their overheads. Afterwards, we benchmark ARM ISA emulators and discuss the opportunities of optimization in the respective systems. To the best of our knowledge, this article is the first effort to evaluate the computational overheads of the MCC offloading techniques. This study helps researchers in understanding the limitations and the main causes of performance degradation in current emulator designs. Moreover, the study can help cloud service providers in the selection of offloading mechanism for resource constrained mobile devices. The main contributions of this article are as follows:
- •
We evaluate the performance of enabling MCC offloading mechanisms through detailed benchmarking of system virtualization, application virtualization, and ARM ISA emulation techniques. As a result, this study depicts a complete picture of the computational overhead of MCC offloading techniques. We utilize open-source benchmarks so that the results are reproducible and verifiable.
- •
Based on the performance evaluation of MCC offloading techniques that portrays significant computational overhead, we debate optimization solutions and their tradeoffs.
- •
We provide a proof of concept for performance enhancement in the case of SIMD instruction based applications. Results show that three times higher performance can be achieved with efficient SIMD instruction translations.
The rest of the paper is structured as follows. Section 2 will comprehensively list the related work corresponding to offloading solutions for MCC and the performance evaluation of techniques enabling offloading, i.e., system virtualization, application virtualization, and ARM ISA emulation. In Section 3, we will provide details about our experimental framework and various benchmarks utilized for evaluation of MCC offloading techniques. Section 4 will detail the results of the performance overhead of various virtualization and emulation techniques against standard and off-the-shelf benchmarks. In Section 5, we provide a detailed discussion on the current state of MCC offloading mechanisms and highlight the future research directions. Section 6 will conclude our arguments for the case of ARM ISA emulation optimization in MCC offloading frameworks.
Section snippets
Related work
MCC offloading schemes mainly utilize three techniques to offload a computing instance from the mobile to the cloud. An overall performance evaluation of MCC offloading mechanisms is not available in the literature. However, research works are present that focus a particular direction, such as, system and application virtualization overhead [21]. Table 1 list the MCC offloading frameworks and their general characteristics. In the below subsections, we will discuss the earlier work on
Experimental framework
In this section we go into the details of the experimental framework for this study. To evaluate the MCC offloading techniques, we utilized various smartphones, a server device, and multiple benchmarks. We performed experiments to analyze the computational overhead of three common MCC offloading mechanisms: (a) system virtualization based VM migration, (b) application virtualization based managed code migration, and (c) compiled code based process migration. We utilized different experimental
Experimental results
In this section, we will present our experimental results in three different directions. Firstly, we present results of Type-2 system virtualization overhead while benchmarking a single Virtualbox instance. Secondly, we measure the performance of Dalvik VM and compare it with Native C and various versions of Android. We also evaluate the reduction in Dalvik overhead with the upstream Android API’s. Thirdly, we evaluate ARM ISA and Android emulators through boot time, system call emulation, and
Discussion and future directions
In this study, we analyzed the computational performance overhead of the MCC offloading techniques. System virtualization suffers from performance overhead that is 4% for computational tasks while more than 70% for network related tasks. The overhead as compared to native execution is due to the virtualization layer that manages resources and instruction execution over real hardware. Similarly, application virtualization can lead to a 66% overhead at the minimum due to application sandboxing in
Conclusion
In this article we put forward the case for ARM emulation optimization for MCC offloading techniques. We evaluated techniques that enable MCC offloading, namely, system virtualization, application virtualization, and ARM ISA emulation. We benchmarked each of the aforementioned techniques and calculated their performance overhead. In most of the cases, such as, application virtualization through Dalvik VM, the overhead can be as high as 70% as compared to native performance for various
Acknowledgment
This work is partially funded by the Malaysian Ministry of Education under the High Impact Research Grant of University of Malaya UM.C/625/1/HIR/MOE/FCSIT/03.
Junaid Shuja is a Ph.D. student at the Faculty of Computer Science and Information Technology, University of Malaya, Kuala Lumpur, Malaysia. He completed his B.S. in Computer and Information Science from PIEAS, Islamabad, in 2009 and M.S. in Computer Science from CIIT Abbottabad, in 2012. His research interests include mobile virtualization, ARM based servers, and ARM emulation optimization.
References (46)
- et al.
Application optimization in mobile cloud computing: Motivation, taxonomies, and open challenges
J. Netw. Comput. Appl.
(2015) - et al.
Seamless application execution in mobile cloud computing: Motivation, taxonomy, and open challenges
J. Netw. Comput. Appl.
(2015) - et al.
Experimental framework for mobile cloud computing system
Procedia Comput. Sci.
(2015) - et al.
Scalable cloudlet-based mobile computing model
Procedia Comput. Sci.
(2014) - et al.
A survey on virtual machine migration and server consolidation frameworks for cloud data centers
J. Netw. Comput. Appl.
(2015) - et al.
Network-centric performance analysis of runtime application migration in mobile cloud computing
Simul. Model. Pract. Theory
(2015) - et al.
Cloudexp: A comprehensive cloud computing experimental framework
Simul. Model. Pract. Theory
(2014) - et al.
Clonecloud: elastic execution between mobile device and cloud
A brief history of cloud offload: A personal journey from odyssey through cyber foraging to cloudlets
ACM SIGMOBILE Mob. Comput. Commun. Rev.
(2015)- et al.
Survey of techniques and architectures for designing energy-efficient data centers
IEEE Syst. J.
(2016)
A survey of mobile cloud computing application models
IEEE Commun. Surv. Tutor.
The case for VM-based cloudlets in mobile computing
IEEE Pervasive Comput.
The virtual computing lab (vcl): an open source cloud computing solution designed specifically for education and research
Int. J. Serv. Sci. Manag. Eng. Technol. (IJSSMET)
Thinkair: Dynamic resource allocation and parallel execution in the cloud for mobile code offloading
Maui: making smartphones last longer with code offload
Mecca: mobile, efficient cloud computing workload adoption framework using scheduler customization and workload migration decisions
Code migration in mobile clouds with the nam4j middleware
Developing and benchmarking native linux applications on android
The gem5 simulator
ACM SIGARCH Comput. Archit. News
Cited by (16)
Dependent task offloading with deadline-aware scheduling in mobile edge networks
2023, Internet of Things (Netherlands)Smart City and IoT
2017, Future Generation Computer SystemsTowards native code offloading based MCC frameworks for multimedia applications: A survey
2016, Journal of Network and Computer ApplicationsCitation Excerpt :However, system virtualization based MCC frameworks require gigabytes of memory to be transferred over mobile networks that leads to undesirable latency in application execution (Shuja et al., 2016; Seifaddini et al., 2014). Similarly, due to the performance overhead of application virtualization solutions, compute-intensive applications and multimedia kernels are better off coded in native C (Shuja et al., 2016; Mitra et al., 2013; Lee et al., 2015). Therefore, native code offloading and process migration is preferred due to their lower computational and communicational overhead over system and application virtualization based MCC offloading frameworks.
Edge computing: A systematic mapping study
2023, Concurrency and Computation: Practice and ExperienceDeadline-aware heuristics for reliability optimization in ubiquitous mobile edge computing
2023, International Journal of Data Science and AnalyticsMobility-aware computational offloading in mobile edge networks: a survey
2021, Cluster Computing
Junaid Shuja is a Ph.D. student at the Faculty of Computer Science and Information Technology, University of Malaya, Kuala Lumpur, Malaysia. He completed his B.S. in Computer and Information Science from PIEAS, Islamabad, in 2009 and M.S. in Computer Science from CIIT Abbottabad, in 2012. His research interests include mobile virtualization, ARM based servers, and ARM emulation optimization.
Abdullah Gani is an Associate Professor and Dean at the Department of Computer System and Technology, Faculty of Computer Science and Information Technology, University of Malaya, Malaysia. His academic qualifications were obtained from the University of Hull, UK for bachelor and master degrees (1989), and the University of Sheffield, UK for Ph.D. He has vast teaching experience in various educational institutions locally and abroad—schools, teaching college, ministry of education, and universities. His interest of research includes self-organized system, reinforcement learning, and mobile cloud computing. He is a senior member of IEEE.
Anjum Naveed did his Ph.D. from School of Computer Science and Engineering, University of New South Wales, Sydney, Australia in the year 2009. His thesis was about Optimal Channel Assignment in Multi-radio Multi-channel Wireless Mesh Networks (WMN). Currently he is serving as Senior Lecturer at FSKTM, UM, Malaysia. His research interests include Routing, Topology Control and Channel Assignment in Multi-radio Multi-Channel WMN, and Mobile Cloud Computing.
Ejaz Ahmed is a research associate at the University of Malaya. Before that, he worked as a research associate at CogNet (Cognitive Radio Research Lab) SEECS, NUST Pakistan, and CoReNet (Centre of Research in Networks and Telecom), MAJU, Islamabad, Pakistan. Currently, he is an active researcher at the Centre for Mobile Cloud Computing Research (C4MCCR), University of Malaya, Kuala Lumpur, Malaysia. His areas of interest include software-defined networks, cognitive radio networks, and mobile cloud computing.
Ching-Hsien Hsu is a professor in the Department of Computer Science and Information Engineering at Chung Hua University, Taiwan, and distinguished chair Professor in the School of Computer and Communication Engineering at Tianjin University of Technology, China. His research includes high performance computing, cloud computing, parallel and distributed systems, big data analytics, ubiquitous/pervasive computing and intelligence. He has published 200 papers in refereed journals, conference proceedings and book chapters in these areas.