Elsevier

Future Generation Computer Systems

Volume 76, November 2017, Pages 407-417
Future Generation Computer Systems

Case of ARM emulation optimization for offloading mechanisms in Mobile Cloud Computing

https://doi.org/10.1016/j.future.2016.05.037Get rights and content

Highlights

  • We evaluate the computational performance of enabling MCC offloading mechanisms through detailed benchmarking of system virtualization, application virtualization, and ARM ISA emulation systems. 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 trade-offs.

  • We provide a proof of concept for performance enhancement in the case of SIMD instruction based applications. Our results show that three times higher performance can be achieved with efficient SIMD instruction translations.

Abstract

The Mobile Cloud Computing (MCC) paradigm depends on efficient offloading of computation from the resource constrained mobile device to the resource rich cloud server. The computational offloading is assisted by system virtualization, application virtualization, and process state migration. However, system and application virtualization techniques force unnecessary overhead on applications that require offloading to the cloud and applications that do not. Moreover, smartphones and cloud data centers are based on heterogeneous processor architectures, such as, ARM and x86. As a result, process migrated from a smartphone needs translation or emulation on the cloud server. Therefore, instruction emulation is a necessary criterion for a comprehensive MCC framework. In this paper, we evaluate the overhead of the system and application virtualization techniques and emulation frameworks that enable MCC offloading mechanisms. We find that the overhead of system and application virtualization can be as high as 4.51% and 55.18% respectively for the SciMark benchmark. Moreover, ARM to Intel device emulation overhead can be as high as 55.53%. We provide a proof of concept of emulation speedup by utilizing efficient Single Instruction, Multiple Data (SIMD) translations. We conclude that the overhead of virtualization and emulation techniques need to be reduced for efficient MCC offloading frameworks.

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 N pixels and ADD/SUB operation on the N 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)

  • A.R. Khan et al.

    A survey of mobile cloud computing application models

    IEEE Commun. Surv. Tutor.

    (2014)
  • M. Satyanarayanan et al.

    The case for VM-based cloudlets in mobile computing

    IEEE Pervasive Comput.

    (2009)
  • F. Camargos, G. Girard, B. Ligneris, Virtualization of linux servers, in: Proceedings of the Linux Symposium, vol....
  • A. Frumusanu, A closer look at android runtime (art) in android l. [Online], 2014. Available:...
  • A. Rindos et al.

    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)

    (2014)
  • S. Kosta et al.

    Thinkair: Dynamic resource allocation and parallel execution in the cloud for mobile code offloading

  • E. Cuervo et al.

    Maui: making smartphones last longer with code offload

  • D. Kakadia et al.

    Mecca: mobile, efficient cloud computing workload adoption framework using scheduler customization and workload migration decisions

  • A. Grazioli et al.

    Code migration in mobile clouds with the nam4j middleware

  • L. Batyuk et al.

    Developing and benchmarking native linux applications on android

  • F. Bellard, Qemu, a fast and portable dynamic translator. in: USENIX Annual Technical Conference, FREENIX Track, 2005,...
  • N. Binkert et al.

    The gem5 simulator

    ACM SIGARCH Comput. Archit. News

    (2011)
  • S.-Y. Fu, J.-J. Wu, W.-C. Hsu, Improving simd code generation in qemu, in: Proceedings of the 2015 Design, Automation &...
  • Cited by (16)

    • Smart City and IoT

      2017, Future Generation Computer Systems
    • Towards native code offloading based MCC frameworks for multimedia applications: A survey

      2016, Journal of Network and Computer Applications
      Citation 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 Experience
    View all citing articles on Scopus

    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.

    View full text