1 s2.0 S1084804515001320 Main
1 s2.0 S1084804515001320 Main
1 s2.0 S1084804515001320 Main
www.elsevier.com/locate/jnca
PII: S1084-8045(15)00132-0
DOI: http://dx.doi.org/10.1016/j.jnca.2015.05.018
Reference: YJNCA1414
Cite this article as: Minhaj Ahmad Khan, A Survey of Computation Offloading
Strategies for Performance Improvement of Applications Running on Mobile
Devices, Journal of Network and Computer Applications, http://dx.doi.org/10.1016/j.
jnca.2015.05.018
This is a PDF file of an unedited manuscript that has been accepted for
publication. As a service to our customers we are providing this early version of
the manuscript. The manuscript will undergo copyediting, typesetting, and
review of the resulting galley proof before it is published in its final citable form.
Please note that during the production process errors may be discovered which
could affect the content, and all legal disclaimers that apply to the journal
pertain.
A Survey of Computation Offloading Strategies for Performance
Improvement of Applications Running on Mobile Devices
Abstract
Handheld mobile devices have evolved from simple voice communication devices to general pur-
pose devices capable of executing complex applications. Despite this evolution, the applications
executing on the mobile devices suffer due to their constrained resources. The constraints such
as limited battery lifetime, limited storage and processing capabilities produce an adverse impact
on the performance of applications executing on the mobile devices.
Computation offloading addresses the issue of limited resources by transferring the compu-
tation workload to other systems having better resources. It may be oriented towards extending
battery lifetime, enhancing storage capacity or improving the performance of an application. In
this paper, we perform a survey of the computation offloading strategies correlated with perfor-
mance improvement for an application. We categorize these approaches in terms of their work-
load distribution and offloading decisions. We also describe the evolution of the computation
offloading based environment as well as a categorization of application partitioning mechanisms
adopted in various contributions. Furthermore, we present a parameter-wise comparison of au-
tomated frameworks, the application domains that benefit from computation offloading and the
future challenges impeding the evolution of computation offloading.
Keywords:
Computation Offloading, Mobile Computing, Performance Improvement, Mobile Cloud
Computing, Cyberaging
1 1. Introduction
2 With the advent of smartphone technologies, the mobile devices have become ubiquitous.
3 These devices are no longer constrained to providing only communication services. Instead,
4 these devices are capable of executing applications with diverse requirements. The processing
5 required by these applications may range from simple mathematical computations performed by
6 a calculator to a very complex voice recognition system.
7 The execution of complex applications requires the mobile devices to possess powerful re-
8 sources. The scarcity of these resources has adverse effects on the ever-growing usage of the
9 mobile devices. For instance, the statistics according to StatCounter show that about 30.66%
2
54 2. Offloading Taxonomy: Architectures and Effectiveness
55 Many clients such as mobile phones or low power laptops require computation to be offloaded
56 to powerful server machines. The decision of offloading may not always be beneficial to leverage
57 the performance or energy requirements as a significant overhead is involved while offloading
58 computations. This section describes succinctly the general architectures for which offloading
59 may be required and the parameters that impact its effectiveness.
BTS
M SC
BSC
Laptop,W IFI& D SL
H igh Perform ance M achines
67 Similarly, in a more complex form, the users with mobile devices first connect to a wire-
68 less network through devices such as Base Transceiver Station (BTS), Base Station Controller
69 (BSC), and Mobile Switching Center (MSC) to transfer data to public data networks. The com-
70 munication data is then transferred through gateways to any local network on which the high
71 performance machines are hosted.
72 After establishing a connection with the high performance machines, the mobile devices may
73 perform a lookup operation to search for services that may be provided by the high performance
74 server machines. This may also be termed as the first operation initiated by the application. The
75 application may however opt to perform the lookup operation at a later time during execution
3
76 depending upon the time at which the offloading decision is made and the requirement of the ap-
77 plication. The client machines in these environments are usually low power mobile devices, and
78 consequently, the computation offloading strategies take into account the cost/benefit analysis in
79 terms of the execution time and energy requirements. The server machines are mostly the high-
80 end standalone servers, or machines connected to form a grid, cluster, cloud or a combination of
81 these. The computers in a grid are loosely coupled, whereas those in a cluster are tightly coupled
82 with highly efficient interconnection interfaces such as Myrinet. A cloud system, in contrast,
83 uses virtualization to enable multiple operating systems so that remote users can access services
84 offered by the cloud platform.
Or = T d + T o , (1)
where, T d is the time for data transfer and T o is the time taken for offloading code (performing
offloading decision, partitioning and the code transfer). Let T s be the time to execute code on
the server machine and T m be the time to execute code on the mobile device. The computation
offloading is considered effective for minimization of execution time, if we have,
T s + Or < T m . (2)
Similarly, for energy reduction, let E d represent the energy for data transfer and E o repre-
sent the energy required for offloading. Let E m represent the energy required for execution of
entire application on the mobile device and E r be the energy required for runtime activities. The
computation offloading is effective for reducing requirements if
Er < Em , (3)
where E r is represented as
Er = Ed + Eo . (4)
91 The term ”offloading” has been used widely since year 1995. Its usage has evolved together
92 with the evolution of distributed and parallel computing paradigms. Figure 2 shows the number
93 of publications each year 1 citing the term offloading.
94 Similarly, the research work referring to the terms ”data offloading” and ”computation of-
95 floading” is also increasing gradually, as shown in Figure 3. Most of the data offloading systems
96 aim at storage of data to remote servers with large storage repositories. One of the objectives of
97 the recently evolved Mobile Cloud Computing (MCC) is to provide storage facilities to the users.
98 The synchronization of data with that existing on the cloud storage repository is also provided by
4
Figure 2: Offloading Usage Trend
99 MCC. Similar to data offloading, the computation offloading has also evolved to be incorporated
100 in MCC. In general, it aims at energy minimization and performance improvement.
101 Figure 4 shows a quantitative and chronological evolution of several parameters related to
102 wireless technology. The smartphones have evolved to contain multi-core based processors.
103 Similarly, with the implementation of 3G and 4G based networks, the wireless technology is
104 now able to offer more bandwidth than the previous generations. The orientation of offload-
105 ing research has evolved from defining manual mechanisms to automated transparent offloading
106 mechanisms. The energy requirements (Joules) as given in [34] for 50 KB data transfer (down-
107 load with intervals of 20 seconds) through GSM, 3G and Wi-Fi are also shown. The Wi-Fi based
108 data transmission requires the highest amount of energy.
1 Statistics obtained from the ACM Digital Library for duration up to July 2014
5
1990−1995 1995−2000 2000−2005 2005−2010 2011−2014
W ireless 2G 3G 4G
Technology ~50 Kbps to 250 Kbps ~200 Kbps to ~100 M bps
Evolution 14.7 M bps to 1 G bps
D ata Transfer 16
Energy (Joules)For50 KB
Energy
R equirem ent 12
Data Transfer
8
0
GSM 3G W IFI
6
113 As shown in Figure 5, the static offloading approach makes use of performance prediction
114 models or offline profiling to estimate the performance [26, 27, 35, 36, 37, 38]. The application
115 is then partitioned into client and server partitions which may subsequently be executed.
116 A comparison of different static offloading strategies is shown in Table 1. The comparison is
117 performed in terms of core components (the basic component on which processing takes place),
118 the parameters considered for offloading decision, the offloading approach and the benchmarks
119 for which the strategy is shown to be beneficial.
120 The approach suggested in [26] first generates a cost graph for the application. The cost
121 graph takes into account the computation time and the data to be transferred. The suggested
122 approach then distributes the program into client and server subtasks. The data communication
123 among the tasks being executed by hosts takes place using the primitives of push and pull. The
124 primitives correspond to sending and receiving the modified data. The application is modelled
125 to produce the cost graphs representing energy consumption and data communication. The sum
126 of both these parameters is minimized by suggesting a branch-and-bound algorithm and a prun-
127 ing heuristic that reduces the search space to provide a near-optimal solution. The suggested
128 approach produces a significant improvement in execution time and energy consumption for
129 benchmarks from Mediabench suite and gnugo game.
130 An adaptive approach presented in [27] performs computation offloading by using an initial
131 profile obtained by executing the program. If the program does not run to completion within
132 a specified timeout, the offloading takes place and the rest of the computations are performed
133 on some server. The minimum time required for executing the code on the mobile system is
134 computed using the energy consumption on the local mobile processor. With the reduced energy
135 consumption, a significant improvement in the performance is achieved for image processing
136 benchmarks.
137 A framework called Roam which may be used for offloading of applications is suggested
138 in [35]. The framework enables partitioning of an application into several components that may
139 then be migrated to any other platform. This architecture supports heterogeneity in that the appli-
140 cation components may be migrated to another system having a different execution environment.
141 The approach of application offloading incorporates adaptation of three different types. The first
142 one, dynamic instantiation based adaptation, partitions an application into several device depen-
143 dent components. Each component has implementation for multiple platforms. The approach
144 then takes into account the capabilities of the target system in order to select the components to
145 be migrated. The second type, offloading computation, makes the applications use distributed
146 resources by offloading components to remote servers. It is mainly required for offloading the
147 application logic based code. The third type trasformation makes the user interface components
148 compatible with the target device at runtime. The decision of partitioning is however static and
149 is made at the time of designing the application.
150 The application partitioning algorithm suggested in [39] divides the application into two main
151 parts. The first part contains the partition that can not be offloaded and will execute on the mo-
152 bile device locally. The second part contains k partitions that can be offloaded to surrogates. The
153 partitions are formed by modelling the computation and communication costs of the application
154 components as a dynamic multi-cost graph. A special tightest and lightest vertex solution algo-
155 rithm is then used to select a vertex in a partition. The algorithm considers the edge weights and
156 vertex weights for partitioning. On the IBM laptop X31 and using two desktop PCs as surrogates,
157 the application partitioning is shown to improve the performance for PI calculation, MP4 player
158 and MP4 audio/video generation benchmarks.
159 A prototype platform AIDE suggested in [40] makes use of three modules for profiling the
7
Framework Core Offloading Candidate
Parameters
Contribution Component Approach Applications
Computation and data
[26] Cost graph Static Mediabench & gnugo
transfer time
Energy consumption
[27] Execution profile and time required for Static Image processing
execution
Application Components
[35] Static General applications
components categorization
Computation and Audio and video
[39] Multi-cost graph Static
communication costs applications
Communication cost
Text editor, Biomer
[40] Execution profile and connectivity of Static
and Voxel
nodes
[41] Java bytecode Configuration based Static SciMark benchmark
Power consumption
[42] Jobs for execution and data Static General applications
transfer
Execution,
Image processing,
Control flow communication,
[31] Static speech recognition
graph scheduling and
and compression
bookkeeping costs
Communication and
[43] 3D rendering Static Games processing
computation costs
Mobile phone Energy, latency and
[44] Static Social behavior
sensor samples data traffic
Natural language,
Functions based
[45] Configuration based Static speech processing
modules
and computer vision
Execution Computation cost and Virus scanning and
[46] Static
profiles migration cost image search
[47] Analytical model Surrogates coverage Static General applications
Performance
[48] Prediction errors Static General applications
history
Object relation bandwidth, execution
[32] static Dacapo benchmark
graph cost and data transfer
8
160 application execution, partitioning and migration of code. Initially, a Java application is parti-
161 tioned by providing a set of min-cut partitioning. All the partitions are then evaluated by placing
162 one node in first partition and all others in second partition. The nodes of second partition having
163 the highest connectivity are moved to first partition iteratively. Subsequently, the minimum cut
164 represents partitioning with the lowest inter-partition weight with respect to the communication
165 cost between two partitions. For a diverse set of benchmarks including the JavaNote (text editor),
166 Biomer (molecular editor) and Voxel (fractal landscape), the AIDE platform is shown to reduce
167 the execution time significantly.
168 The framework DiET [41] is able to make modification to Java bytecode to support offload-
169 ing of methods. The mobile users request to execute an application available through service
170 providers. The client part of the application is downloaded to the mobile device. The complex
171 computation based methods are modified with remote procedure calls in the client part. The
172 server reads the requests and executes the code. Moreover, the automated offloading mechanism
173 is portable and requires no special JVM dependent instructions. For the SciMark benchmark, the
174 suggested approach is able to produce up to 59% of speedup for MonteCarlo integration method.
175 In [42], the authors target offloading in a wireless network from a mobile device to the mobile
176 support station (MSS). It estimates the power consumption by the CPU in case of local execu-
177 tion and power consumption for data/results transfer to/from the remote server together with the
178 response time for executing on the local machine and the MSS. If it is found beneficial to use the
179 MSS, the jobs are offloaded. Consequently, there is a significant improvement in response time
180 for execution of different jobs offloaded to the MSS.
181 The strategy proposed in [31] implements computation offloading by partitioning the code
182 in client and server parts. A polynomial time algorithm is suggested to achieve optimal parti-
183 tioning of code for a given set of input data. For a program, a control flow graph is built where
184 each vertex is a basic block and each edge represents dependencies. A point-to analysis is then
185 performed to identify the memory addresses or locations during data transfer. For distribution,
186 various constraints are used to ensure data consistency. A cost analysis that takes into account
187 the costs required for execution, scheduling, bookkeeping and communication is used to model
188 the problem as a minimization problem. The problem is then represented as the min-cut net-
189 work flow problem and is solved using an option-clustering heuristic. On an IPAQ 3970, and a
190 Pentium-IV based server, the suggested offloading approach is able to reduce execution time for
191 photo processing, graphics compression/de-compression, speech recognition and graph drawing
192 benchmarks.
193 In [43], an approach for adapting the rendering settings for games in a mobile cloud is de-
194 scribed. A static analysis is initially performed to select optimal settings for 3D rendering. These
195 settings correspond to different adaptation levels where each level is associated with a total of
196 communication and computation costs. During execution, an algorithm works to adjust the ren-
197 dering settings in conformance with the existing communication and computation costs. For the
198 game PlaneShift being played on a netbook, and using game server having GPU, the experimen-
199 tal results show an improvement in the performance in terms of the Game Mean Opinion Score
200 (GMOS) corresponding to the gaming user experience.
201 A mobile phone based framework to capture the users’ social behavior in a working environ-
202 ment is specified in [44]. The quantitative information such as the most sociable person in the
203 environment and the number of interactions between two users have been useful for increasing
204 productivity of organizations. To obtain such information, the mobile phone sensors are used
205 to capture the behavior. The sensors sample the data at a specific rate. The samples are then
206 processed to infer the required information. Due to the limited capability of the mobile devices,
9
207 the processing is distributed among several devices. The decision of performing the computation
208 locally or remotely is made by considering the parameters of energy, latency and data traffic. The
209 overall task with these parameters is first divided into subtasks and a configuration for processing
210 the task is found using the multi-criteria decision theory. With a Nokia 6120 mobile phone as a
211 client and an Intel Xeon based server, the suggested approach is efficiently able to process the
212 data and infer the required information.
213 An approach to partition the application for offloading using a language Vivendi is suggested
214 in [45]. The language Vivendi is developed to describe the relevant specification of the application
215 whose computation is to be offloaded. A file in the Vivendi language may contain the prototypes
216 of functions that can be executed remotely. The next part of the approach incorporates Chroma
217 [49] to monitor resources and predict the behavior. Subsequently, the stubs may be generated
218 using the Vivendi stub generator and all function calls at corresponding points are replaced by
219 calls to stubs. All the modules are then compiled and linked to generate an executable applica-
220 tion. The suggested approach is able to support offloading for diverse applications including the
221 natural language, speech and computer vision based applications.
222 The framework CloneCloud [46] facilitates the execution of a mobile application on the
223 cloud. The CloneCloud initially partitions the application to make its parts execute on the mo-
224 bile device and the cloud servers. A static offline analysis is performed to identify the partition.
225 A dynamic profiler then generates profiles corresponding to different inputs. Consequently, a
226 profile tree representing the execution traces is constructed. For each call of code, the computa-
227 tion cost and the migration cost in the case of local, remote or hybrid execution are computed.
228 The optimization problem is then solved by minimizing these costs using an integer linear pro-
229 gramming (ILP) solver. On an Android phone used as a client, and an Intel Xeon based server
230 running mobile clones, the experimental results of clone execution show up to 20 times speedup
231 for the applications including the virus scanning, image search and behavior profiling.
232 In [47], an analytical model is presented for analyzing the performance of offloading systems.
233 The model takes into account the distribution of surrogates and shows that in the areas well
234 covered by surrogates, the offloading may result in speedup in the performance. In contrast, the
235 areas with less coverage of surrogates, the offloading does not improve the performance.
236 The framework NWSLite [48] is used for predicting the costs of location and remote execu-
237 tion. Its prediction model uses a non-parametric approach. The NWSLite framework incorporates
238 a large number of models each with different parameterization. It forecasts measurements based
239 on the performance history. The predictors are ranked with respect to the prediction errors and
240 the best prediction model having the smallest prediction error. The NWSLite prediction models
241 are executed in parallel thereby making it more efficient than the previously suggested LSQ [50]
242 and RPF [51].
243 The authors in [32] aim at improving the execution performance by using the branch-and-
244 bound and min-cut based approaches for partitioning mobile applications. It works by perform-
245 ing a static analysis & profiling, followed by the generation of a weighted object relation graph
246 (WORG), which is used to represent the objects and relations between objects. The bandwidth
247 parameter is then used together with the WORG to partition an application into client and server
248 parts. The branch-and-bound based algorithm produces optimal partitioning results for small ap-
249 plications, whereas, the min-cut based approach works for large applications. Using a ThinkPad
250 notebook for customized and the Dacapo suite benchmarks, the branch-and-bound and the min-
251 cut based approaches produce speedups of 44.17% and 37.44%, respectively.
10
Figure 6: Dynamic Offloading Mechanism
12
276 putation and communication costs. The problem of finding optimal partitioning is modelled as
277 the min-cut network flow problem. The modules of the application distributed on the mobile
278 device of the server depending upon the current value of runtime parameters. A program is first
279 divided into modules or tasks that are executed on the server or the mobile device exclusively. A
280 cost analysis then takes into account the computation, communication, task scheduling, and data
281 registration costs and formulates the optimal partitioning as a single-source single-sink min-cut
282 network flow problem. Using the mobile client HP IPAQ 3970, and a server machine having P4
283 processor, the results show that an effective partitioning significantly impacts the performance
284 of several applications such as FFT, encode and decode from Mediabench and Minbench bench-
285 marks.
286 An architecture of an inference engine is proposed in [57] for deciding the time of offloading
287 and the application partition to be offloaded. The inference engine employs a fuzzy model and
288 is implemented in the AIDE framework [40]. Each class of a Java application is represented
289 as a node in a weighted graph. Each class is annotated with a flag describing whether or not
290 the class may be offloaded to a server. The inference engine uses a min-cut based algorithm to
291 find all 2-way cuts of the weighted graph. The nodes in the graph that may not be migrated
292 to the surrogate are merged in the partition which will be executed on the mobile device. The
293 other nodes are merged taking into account the dependencies and the metrics of network traffic,
294 function call delay and memory size. The experiments performed for evaluation of an image
295 editor, a text editor and a molecular editor show that the suggested approach minimizes the
296 traffic requirements while working with a very small offloading overhead.
297 An automated approach of partitioning a Java application for remote execution is presented
298 in [58]. A platform called J-orchestra is developed to perform replacement of the object code i.e.
299 bytecode of method calls with the remote invocation. It divides an application into a client-server
300 based model whose most of the I/O operations are performed on the client machine and the rest
301 of the execution takes place on the server machine. With an iPAQ PDA, the J-orchestra has been
302 shown to automatically distribute applications such as speech synthesis and MS PowerPoint.
303 The approach presented in [59] provides an adaptable offloading mechanism based on the
304 application’s execution behavior. A history of the execution pattern is maintained and is later
305 used for making offloading decision. The static offloading policy offloads the most used classes,
306 whereas the dynamic offloading moves only the invoked classes. The decision of offloading, i.e.
307 static, dynamic, no action, or profile is made for each resource. Subsequently, the most common
308 decision is opted for implementation. On PDAs, the offloading approach makes the application
309 execute faster than local execution and is beneficial for applications with large execution times.
310 An offloading service for mobile handsets which may be used during mobility is presented
311 in [60]. Initially, the resource information is collected and is followed by partitioning of appli-
312 cation execution on the local system and the surrogate. The discovery of a suitable surrogate is
313 made using the instantiation of classes for remote execution. The instrumented classes are then
314 offloaded to the surrogates. The application partitioning uses a multi-cost graph, each of whose
315 vertices is a class. The problem of graph partitioning is then solved by using a k + 1 partitioning
316 algorithm. The proposed algorithm takes into account the weight of one class together with the
317 weights of one-hop weights while minimizing the communication cost. On an HP iPAQ PDA, the
318 suggested approach is applied to the autoTranslator software to recognize text in German lan-
319 guage and translate it to English. The approach performs 3 to 5 times better than the randomly
320 selected and the highest transfer rate based algorithms.
321 In [29], an approach for object recognition and tracing is presented, which may be used in
322 the real-time surveillance systems. The approach performs computation offloading on the basis
13
323 of real-time constraints. These constraints use various ranges of network bandwidth and server
324 speed to make the offloading decision of executing code locally on a robot or remotely on a
325 server.
326 The MAUI framework [30] supports fine-grained offloading of code in an automated way. To
327 accomplish the portability of applications, two versions are created corresponding to execution
328 on the mobile phone and the server. The MAUI architecture contains decision engine, proxy
329 and profiler on both client and the server. The server part also contains the coordinator compo-
330 nent to create an instance of the partitioned application. Initially, the methods to be offloaded
331 are annotated by the programmer. These methods are identified by MAUI through Reflection
332 API. Subsequently, the state of the application required for transfer or return to/from the server
333 is identified. The MAUI profile provides feedback regarding energy consumption, bandwidth
334 and latency etc. to the MAUI solver that in turn decides whether or not the code should be of-
335 floaded to the server. The solver models it as an optimization problem for minimizing the energy
336 consumption subject to various latency constraints. Using MAUI, the code offloading for face
337 recognition, video game and chess game is shown to improve the execution time.
338 The application partitioning by performing code analysis is suggested in [61]. The subtasks
339 that are safe for remote execution are first identified. Subsequently, an analysis is performed to
340 estimate the actual gains after offloading. Finally, two versions corresponding to execution on
341 local and remote machine are generated. The suggested approach is implemented in the SUIF2
342 compiler [64], and is able to achieve almost 13 times and 15 times speedup in the performance
343 of face recognition code on Skiff and iPAQ mobile appliances.
344 In [62], the architecture of a framework Spectra is presented. The Spectra framework does
345 not require the application to describe the resources to be used, instead, it can predict the appli-
346 cation behavior for future execution. It is implemented as part of the Aura framework [65] and
347 uses the application fidelities as parameters to decide to perform execution on local and remote
348 machines exclusively or hybridly. The CPU availability, network bandwidth, battery energy and
349 data access costs are estimated by monitors to predict the application behavior. The Spectra
350 framework then selects the best location and fidelity for application execution while taking as in-
351 put the application description and the application behavior parameters. Using a Pocket PC with
352 an SA-1100 processor as a client and an IBM T20 Laptop as a server, the Spectra framework is
353 shown to select the best option for local, remote or hybrid execution.
354 In [63], two strategies of service discovery for offloading applications are presented. These
355 strategies are based on flooding and unicasting. Every device is represented by a node and
356 is associated to a lookup server that is used to store service description. When a service is
357 required by a node, a service lookup is performed. The scope of the search (in terms of the
358 area) for the server machine is increased gradually if no response is received from the lookup
359 server. With flooding, the lookup message is broadcast, in contrast to unicast, which is useful for
360 large environments. The experimental results show that the service discovery based approach for
361 cyberaging applications is able to reduce the latency of the service lookup operation.
362 An approach for deciding offloading between the local and the remote system by making
363 use of the bandwidth parameter is provided in [28]. The problem of estimating the local and
364 remote execution costs is modelled as a statistical decision problem. The remote execution cost
365 is computed as a function of the bandwidth available for transfer of data between the local and
366 the remote systems. The Bayesian approach is then used to solve the problem and make the
367 prediction regarding the offloading decision.
14
368 5. Application Partitioning For Computation Offloading
369 Together with the evolution of wireless technology, the research in the field of computation
370 offloading has also evolved vigorously. As discussed earlier, an effective computation offloading
371 technique may significantly impact the performance. The computation offloading incorporates
372 various steps and analyses to ensure performance gain. One of the major steps used in compu-
373 tation offloading is application partitioning which distributes code for local and remote execu-
374 tion. The application partitioning may be categorized into static (application specific, framework
375 based and offline profile based) and dynamic as shown in Table 3, and elaborated in this section.
430 Table 4 describes a comparison of the automated offloading frameworks in terms of the pa-
431 rameters of automation, optimization problem solving, replication granularity, fine-grained of-
432 floading and native method call support. For automation, the frameworks CloneCloud, Spectra,
433 Roam and J-Orchestra provide offloading in a highly automated manner. This requires less inter-
434 action of the programmer as compared to those having low automated offloading support. Sim-
435 ilarly, the frameworks CloneCloud, AIDE, and J-Orchestra solve the optimization problem in a
436 highly asynchronous manner with regards to execution of the application. The replication gran-
437 ularity refers to the main component that is replicated or transferred for remote execution. The
438 fine-grained component support is provided in the CloneCloud and MAUI frameworks. More-
439 over, a few frameworks including the CloneCloud, framework in [110], AIDE and J-Orchestra
440 also support native method calls.
441 A comparison of the working mechanism in terms of the analysis performed, dynamic profil-
442 ing, late binding and trusted execution of the automated frameworks is given in Table 5. All the
443 frameworks make use of a static analysis which is performed before execution of the application.
444 The frameworks CloneCloud, MAUI, Roam and AIDE incorporate dynamic profiling to obtain
16
Native
Automa- Optimization Replication Fine-
Framework Method
tion Problem Solving Granularity grained
Call
Highly
CloneCloud [46] High Partial Threads Yes Yes
Asynchronous
Low Low-level
MAUI [30] Low Yes No
Asynchronous (fine-grained)
SociableSense [44] Low Asynchronous Module-level No No
Spectra [62] High Asynchronous Task-level No No
Framework in [110] Medium Asynchronous Components No Yes
Compo-
Roam [35] High Asynchronous No No
nent/Roamlet
Highly
AIDE [40] Medium Class No Yes
Asynchronous
DiET [41] Medium Asynchronous Class methods No No
Highly
J-Orchestra [58] High Class methods No Yes
Asynchronous
Table 4: Comparison of the automation, optimization problem solving, replication granularity, fine-grained and native
method call support based characteristics of the offloading frameworks
Late
Static Dynamic Trusted
Framework binding
Analysis Profiling execution
(offloading)
CloneCloud [46] Yes Yes Yes No
MAUI [30] Yes Yes Yes No
SociableSense [44] Yes No Yes No
Spectra [62] Yes No No No
Framework in [110] Yes No Yes No
Roam [35] Yes Yes Yes No
AIDE [40] Yes Yes Yes No
DiET [41] Yes No No No
J-Orchestra [58] Yes No No No
Table 5: Comparison of the static analysis, dynamic profiling, late binding and trusted execution based characteristics of
the offloading frameworks
17
Trade-off Optimization Dynamic
Framework Applications
Parameters Strategy Adaptation Strategy
Execution speed,
Integer Linear
CloneCloud [46] Scientific energy and data Profile tree based
Programming (ILP)
transfer
Energy & execution
MAUI [30] Scientific speed with data 0-1 ILP Call graph based
transfer
Accuracy, energy,
Multi-criteria
SociableSense [44] Social Interaction latency and data Learning based
decision theory
traffic
Latency, battery life
Spectra [62] Voice recognition Fidelity solver None
and fidelity
Language
Response time,
translation & (k + 1) partitioning
Framework in [110] communication, CPU Speedup based
Character algorithm
and memory
recognition
Capabilities of target Target device
Component-based
Roam [35] Games & Graphics devices and user capabilities based
partitioning
interface design mechanism
Processor load,
Image and text Min-cut based Execution graph
AIDE [40] memory and
processing heuristic based
communication
Mathematical User configuration User configuration
DiET [41] User directives based
applications based based
User directives based
General Input/output, disk
J-Orchestra [58] parameters of I/O None
applications processing and GUI
usage
Table 6: Comparison of the applications, trade-off parameters, optimization and dynamic adaptation mechanisms of the
offloading frameworks
445 information during execution of the application and perform adaptation accordingly. The late
446 binding for offloading refers to the offloading implemented at a later time during execution of the
447 application. It is performed by the CloneCloud, MAUI, SociableSense, [110], Roam and AIDE
448 frameworks. Currently, none of these frameworks ensures a trusted execution to provide secure,
449 reliable and authenticated access for offloaded applications.
450 Table 6 provides a comparison of the offloading frameworks in terms of their applications,
451 trade-off parameters, optimization and dynamic adaptation strategies. The CloneCloud, MAUI,
452 DiET and J-Orchestra are useful for general scientific applications, whereas the frameworks
453 Roam and AIDE are shown to be effective for image and graphics processing. Similarly, the
454 framework in [110] and Spectra are shown to work on voice and character recognition based
455 applications. The SociableSense is specific for applications requiring processing on social inter-
456 action in an organization. The trade-off parameters are the elements considered while optimizing
457 the offloading decision. In general, most of the frameworks use the execution time, energy con-
458 sumption and communication overhead as the main trade-off parameters. While optimizing the
459 decision problem, different heuristics based on the min-cut, k+1 partitioning, and integer lin-
460 ear programming (ILP) are used in most of the offloading frameworks. The frameworks also
461 require dynamic adaptation for offloading decisions during execution of the application. The
462 CloneCloud, MAUI and AIDE frameworks use execution pattern for runtime adaptation. Simi-
463 larly, the framework in [110] performs adaptation using the speedup obtained through offload-
464 ing. The Roam framework uses the target device platform based runtime adaptation, whereas the
18
Multimedia [26], [54], [39]
Games [26], [35], [30], [43]
Graphics and image processing [27], [52], [48], [40], [57], [60], [31], [43], [45], [46]
Mathematical computations [54], [52], [53], [39], [41], [31]
Artificial Intelligence based applications [52], [58], [60], [29], [30], [61], [31], [62], [45], [46]
Health & Social applications [111], [112], [44]
Database, file system or GPS Processing [52], [53], [82]
467 The computation offloading has proved to be beneficial for a large number of applications
468 lying in several domains. A domain-wise categorization of research work is shown in Table 7. A
469 large part of the research work has targeted the applications lying in the domains of mathematics
470 and graphics/image processing. Likewise, the games and multimedia based applications are also
471 targeted and their number continues to grow together with the evolution of wireless technology.
472 The applications related to Artificial Intelligence and social behavior are also being offloaded as
473 they involve complex learning based computations. The applications with database processing,
474 file system and GPS processing have also been implemented through offloading to improve their
475 performance.
477 Despite the long term evolution of the offloading techniques, several issues are yet to be
478 resolved. The most challenging issues including partitioning, automated transparency & porta-
479 bility, security, and application requirements are discussed below together with their possible
480 solutions.
19
491 8.2. Automated Transparency & Portability
492 The frameworks implemented for computation offloading yet lack the automated transparency
493 so that the surrounding environment is detected and the computation offloading takes place in a
494 seamless manner [12, 4, 11, 100, 84]. This is a complex task as it requires an implementation of
495 a standard protocol that will perform lookup services and other functionalities depending upon
496 the environment while taking into account its constraints. An implementation of the standard
497 protocol for a diverse collection of devices and environments will render it portability as well.
515 9. Conclusion
516 This paper presents a comprehensive survey of the research work conducted on computation
517 offloading which aims at performance improvement of applications executing on the resource
518 constrained mobile devices. The limited resources of mobile devices require the intensive com-
519 putations to be offloaded in order to mitigate the issues of slow execution and low energy. Some
520 of the offloading strategies work in a fixed static manner while others are able to perform of-
521 floading in accordance with the dynamic behavior of the application. We perform a comparative
522 analysis of these strategies as well as the automated frameworks implemented to support compu-
523 tation offloading.
524 We also survey the evolution of mobile technologies and also compare different partitioning
525 mechanisms used for distributing code between local and remote machines. The research work
526 is also categorized in terms of the application domains for which the computation offloading is
527 shown to be effective. Moreover, the main issues related to computation offloading: partitioning,
528 automated transparency & portability, security, and application requirements are discussed, and
529 their possible solutions are also proposed.
530 [1] StatCounter, Comparison from 2011 to 2014 — StatCounter – Global Stats (2014).
531 URL http://gs.statcounter.com/#desktop+mobile+tablet-comparison-ww-yearly-2011-2014
20
532 [2] H. T. Dinh, C. Lee, D. Niyato, P. Wang, A survey of mobile cloud computing: architecture, applications, and ap-
533 proaches, Wireless Communications and Mobile Computing 13 (18) (2013) 1587–1611. doi:10.1002/wcm.1203.
534 URL http://dx.doi.org/10.1002/wcm.1203
535 [3] K. Kumar, Y.-H. Lu, Cloud computing for mobile users: Can offloading computation save energy?, Computer
536 43 (4) (2010) 51–56.
537 [4] Z. Sanaei, S. Abolfazli, A. Gani, R. Buyya, Heterogeneity in mobile cloud computing: Taxonomy and open chal-
538 lenges, Communications Surveys Tutorials, IEEE 16 (1) (2014) 369–392. doi:10.1109/SURV.2013.050113.00090.
539 [5] R. Fontana, K. Mparmpopoulou, P. Grosso, K. Van der Veldt, Monitoring greenclouds: Evaluating the trade-off
540 between performance and energy consumption in das-4 (2013).
541 [6] A. Juntunen, M. Kemppainen, S. Luukkainen, Mobile computation offloading - factors affecting technology evo-
542 lution, in: 2012 International Conference on Mobile Business (ICMB 2012); Delft, The Netherlands; 21-22 June,
543 2012, 2012, p. 12.
544 [7] A. u. R. Khan, M. Othman, S. A. Madani, S. U. Khan, A survey of mobile cloud computing application models,
545 Communications Surveys Tutorials, IEEE 16 (1) (2014) 393–413.
546 [8] A. Berl, E. Gelenbe, M. Di Girolamo, G. Giuliani, H. De Meer, M. Q. Dang, K. Pentikousis, Energy-efficient
547 cloud computing, Comput. J. 53 (7) (2010) 1045–1051. doi:10.1093/comjnl/bxp080.
548 URL http://dx.doi.org/10.1093/comjnl/bxp080
549 [9] M. Barbera, S. Kosta, A. Mei, J. Stefa, To offload or not to offload? the bandwidth and energy costs of mobile cloud
550 computing, in: INFOCOM, 2013 Proceedings IEEE, 2013, pp. 1285–1293. doi:10.1109/INFCOM.2013.6566921.
551 [10] S. Ou, K. Yang, A. Liotta, L. Hu, Performance analysis of offloading systems in mobile wireless envi-
552 ronments, in: Communications, 2007. ICC ’07. IEEE International Conference on, 2007, pp. 1821–1826.
553 doi:10.1109/ICC.2007.304.
554 [11] Y. Cui, X. Ma, H. Wang, I. Stojmenovic, J. Liu, A survey of energy efficient wireless transmission and modeling
555 in mobile cloud computing, Mob. Netw. Appl. 18 (1) (2013) 148–155. doi:10.1007/s11036-012-0370-6.
556 URL http://dx.doi.org/10.1007/s11036-012-0370-6
557 [12] Z. Sanaei, S. Abolfazli, A. Gani, R. H. Khokhar, Tripod of requirements in horizontal heterogeneous mobile cloud
558 computing, CoRR abs/1205.3247.
559 [13] A. P. Miettinen, V. Hirvisalo, Energy-efficient parallel software for mobile hand-held devices, in: Proceedings
560 of the First USENIX Conference on Hot Topics in Parallelism, HotPar’09, USENIX Association, Berkeley, CA,
561 USA, 2009, pp. 12–12.
562 [14] K. Kumar, J. Liu, Y.-H. Lu, B. Bhargava, A survey of computation offloading for mobile systems, Mob. Netw.
563 Appl. 18 (1) (2013) 129–140.
564 [15] M. Satyanarayanan, P. Bahl, R. Caceres, N. Davies, The case for vm-based cloudlets in mobile computing, Per-
565 vasive Computing, IEEE 8 (4) (2009) 14–23.
566 [16] Y. Lu, B. Zhou, L.-C. Tung, M. Gerla, A. Ramesh, L. Nagaraja, Energy-efficient content retrieval in mobile cloud,
567 in: Proceedings of the Second ACM SIGCOMM Workshop on Mobile Cloud Computing, MCC ’13, ACM, New
568 York, NY, USA, 2013, pp. 21–26.
569 [17] Y.-J. Hong, K. Kumar, Y.-H. Lu, Energy efficient content-based image retrieval for mobile systems, in: Circuits
570 and Systems, 2009. ISCAS 2009. IEEE International Symposium on, 2009, pp. 1673–1676.
571 [18] Y. Wen, W. Zhang, H. Luo, Energy-optimal mobile application execution: Taming resource-poor mobile devices
572 with cloud clones, in: INFOCOM, 2012 Proceedings IEEE, 2012, pp. 2716–2720.
573 [19] A. Rudenko, P. Reiher, G. J. Popek, G. H. Kuenning, Saving portable computer battery power through remote
574 process execution, SIGMOBILE Mob. Comput. Commun. Rev. 2 (1) (1998) 19–26. doi:10.1145/584007.584008.
575 URL http://doi.acm.org/10.1145/584007.584008
576 [20] J. Nurminen, Parallel connections and their effect on the battery consumption of a mobile phone, in: Consumer
577 Communications and Networking Conference (CCNC), 2010 7th IEEE, 2010, pp. 1–5.
578 [21] Y. Nimmagadda, K. Kumar, Y.-H. Lu, Energy-efficient image compression in mobile devices for wireless trans-
579 mission, in: Proceedings of the 2009 IEEE International Conference on Multimedia and Expo, ICME’09, IEEE
580 Press, Piscataway, NJ, USA, 2009, pp. 1278–1281.
581 [22] A. P. Miettinen, J. K. Nurminen, Energy efficiency of mobile clients in cloud computing, in: Proceedings of the
582 2Nd USENIX Conference on Hot Topics in Cloud Computing, HotCloud’10, USENIX Association, Berkeley,
583 CA, USA, 2010, pp. 4–4.
584 [23] R. N. Mayo, P. Ranganathan, Energy consumption in mobile devices: Why future systems need requirements-
585 aware energy scale-down, in: Proceedings of the Third International Conference on Power - Aware Computer
586 Systems, PACS’03, Springer-Verlag, Berlin, Heidelberg, 2004, pp. 26–40.
587 [24] K. Sinha, M. Kulkarni, Techniques for fine-grained, multi-site computation offloading, in: Proceedings of the
588 2011 11th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing, CCGRID ’11, IEEE
589 Computer Society, Washington, DC, USA, 2011, pp. 184–194. doi:10.1109/CCGrid.2011.69.
590 URL http://dx.doi.org/10.1109/CCGrid.2011.69
21
591 [25] Y. Ge, Y. Zhang, Q. Qiu, Y.-H. Lu, A game theoretic resource allocation for overall energy minimization in
592 mobile cloud computing system, in: Proceedings of the 2012 ACM/IEEE International Symposium on Low Power
593 Electronics and Design, ISLPED ’12, ACM, New York, NY, USA, 2012, pp. 279–284.
594 [26] Z. Li, C. Wang, R. Xu, Computation offloading to save energy on handheld devices: A partition scheme, in: Pro-
595 ceedings of the 2001 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems,
596 CASES ’01, ACM, New York, NY, USA, 2001, pp. 238–246.
597 [27] C. Xian, Y.-H. Lu, Z. Li, Adaptive computation offloading for energy conservation on battery-powered systems,
598 in: Parallel and Distributed Systems, 2007 International Conference on, Vol. 2, 2007, pp. 1–8.
599 [28] R. Wolski, S. Gurun, C. Krintz, D. Nurmi, Using bandwidth data to make computation offloading decisions,
600 in: Parallel and Distributed Processing, 2008. IPDPS 2008. IEEE International Symposium on, 2008, pp. 1–8.
601 doi:10.1109/IPDPS.2008.4536215.
602 [29] Y. Nimmagadda, K. Kumar, Y.-H. Lu, C. S. G. Lee, Real-time moving object recognition and tracking using
603 computation offloading, in: Intelligent Robots and Systems (IROS), 2010 IEEE/RSJ International Conference on,
604 2010, pp. 2449–2455.
605 [30] E. Cuervo, A. Balasubramanian, D.-k. Cho, A. Wolman, S. Saroiu, R. Chandra, P. Bahl, MAUI: mak-
606 ing smartphones last longer with code offload, in: Proceedings of the 8th International Conference on Mo-
607 bile Systems, Applications, and Services, MobiSys ’10, ACM, New York, NY, USA, 2010, pp. 49–62.
608 doi:10.1145/1814433.1814441.
609 URL http://doi.acm.org/10.1145/1814433.1814441
610 [31] C. Wang, Z. Li, A computation offloading scheme on handheld devices, J. Parallel Distrib. Comput. 64 (6) (2004)
611 740–746. doi:10.1016/j.jpdc.2003.10.005.
612 URL http://dx.doi.org/10.1016/j.jpdc.2003.10.005
613 [32] J. Niu, W. Song, M. Atiquzzaman, Bandwidth-adaptive partitioning for distributed execution optimization of
614 mobile applications, J. Netw. Comput. Appl. 37 (2014) 334–347. doi:10.1016/j.jnca.2013.03.007.
615 URL http://dx.doi.org/10.1016/j.jnca.2013.03.007
616 [33] K. Elgazzar, P. Martin, H. S. Hassanein, Empowering mobile service provisioning through cloud assistance, in:
617 Proceedings of the 2013 IEEE/ACM 6th International Conference on Utility and Cloud Computing, UCC ’13,
618 IEEE Computer Society, Washington, DC, USA, 2013, pp. 9–16.
619 [34] N. Balasubramanian, A. Balasubramanian, A. Venkataramani, Energy consumption in mobile phones: A measure-
620 ment study and implications for network applications, in: Proceedings of the 9th ACM SIGCOMM Conference
621 on Internet Measurement Conference, IMC ’09, ACM, New York, NY, USA, 2009, pp. 280–293.
622 [35] H.-h. Chu, H. Song, C. Wong, S. Kurakake, M. Katagiri, ROAM, a seamless application framework, J. Syst.
623 Softw. 69 (3) (2004) 209–226.
624 [36] Y. Ding, Z. Li, A compiler analysis of interprocedural data communication, in: Proceedings of the 2003
625 ACM/IEEE Conference on Supercomputing, SC ’03, ACM, New York, NY, USA, 2003, pp. 11–.
626 [37] S. Gurun, R. Wolski, C. Krintz, D. Nurmi, On the efficacy of computation offloading decision-making strategies,
627 Int. J. High Perform. Comput. Appl. 22 (4) (2008) 460–479.
628 [38] S. Ou, K. Yang, J. Zhang, An effective offloading middleware for pervasive services on mobile devices, Pervasive
629 Mob. Comput. 3 (4) (2007) 362–385.
630 [39] S. Ou, K. Yang, A. ‘Liotta, An adaptive multi-constraint partitioning algorithm for offloading in pervasive systems,
631 in: Proceedings of the Fourth Annual IEEE International Conference on Pervasive Computing and Communica-
632 tions, PERCOM ’06, IEEE Computer Society, Washington, DC, USA, 2006, pp. 116–125.
633 [40] A. Messer, I. Greenberg, P. Bernadat, D. Milojicic, D. Chen, T. J. Giuli, X. Gu, Towards a distributed platform for
634 resource-constrained devices, in: Proceedings of the 22 Nd International Conference on Distributed Computing
635 Systems (ICDCS’02), ICDCS ’02, IEEE Computer Society, Washington, DC, USA, 2002, pp. 43–51.
636 [41] H. Rim, S. Kim, Y. Kim, H. Han, Transparent method offloading for slim execution, in: Wireless Pervasive
637 Computing, 2006 1st International Symposium on, 2006, pp. 1–6.
638 [42] M. Othman, S. Hailes, Power conservation strategy for mobile computers using load sharing, SIGMOBILE Mob.
639 Comput. Commun. Rev. 2 (1) (1998) 44–51. doi:10.1145/584007.584011.
640 URL http://doi.acm.org/10.1145/584007.584011
641 [43] S. Wang, S. Dey, Rendering adaptation to address communication and computation constraints in cloud mobile
642 gaming, in: Global Telecommunications Conference (GLOBECOM 2010), 2010 IEEE, 2010, pp. 1–6.
643 [44] K. K. Rachuri, C. Mascolo, M. Musolesi, P. J. Rentfrow, Sociablesense: Exploring the trade-offs of adaptive sam-
644 pling and computation offloading for social sensing, in: Proceedings of the 17th Annual International Conference
645 on Mobile Computing and Networking, MobiCom ’11, ACM, New York, NY, USA, 2011, pp. 73–84.
646 [45] R. K. Balan, D. Gergle, M. Satyanarayanan, J. Herbsleb, Simplifying cyber foraging for mobile devices, in:
647 Proceedings of the 5th International Conference on Mobile Systems, Applications and Services, MobiSys ’07,
648 ACM, New York, NY, USA, 2007, pp. 272–285.
649 [46] B.-G. Chun, S. Ihm, P. Maniatis, M. Naik, A. Patti, CloneCloud: elastic execution between mobile device and
22
650 cloud, in: Proceedings of the Sixth Conference on Computer Systems, EuroSys ’11, ACM, New York, NY, USA,
651 2011, pp. 301–314.
652 [47] S. Ou, K. Yang, A. Liotta, L. Hu, Performance analysis of offloading systems in mobile wireless environments,
653 in: Communications, 2007. ICC ’07. IEEE International Conference on, 2007, pp. 1821–1826.
654 [48] S. Gurun, C. Krintz, R. Wolski, NWSLite: a light-weight prediction utility for mobile devices, in: Proceedings
655 of the 2Nd International Conference on Mobile Systems, Applications, and Services, MobiSys ’04, ACM, New
656 York, NY, USA, 2004, pp. 2–11.
657 [49] R. K. Balan, M. Satyanarayanan, S. Y. Park, T. Okoshi, Tactics-based remote execution for mobile computing,
658 in: Proceedings of the 1st International Conference on Mobile Systems, Applications and Services, MobiSys ’03,
659 ACM, New York, NY, USA, 2003, pp. 273–286.
660 [50] B. D. Noble, M. Satyanarayanan, D. Narayanan, J. E. Tilton, J. Flinn, K. R. Walker, Agile application-aware
661 adaptation for mobility, SIGOPS Oper. Syst. Rev. 31 (5) (1997) 276–287.
662 [51] A. Rudenko, P. Reiher, G. J. Popek, G. H. Kuenning, The remote processing framework for portable computer
663 power saving, in: Proceedings of the 1999 ACM Symposium on Applied Computing, SAC ’99, ACM, New York,
664 NY, USA, 1999, pp. 365–372.
665 [52] G. Chen, B.-T. Kang, M. Kandemir, N. Vijaykrishnan, M. Irwin, R. Chandramouli, Studying energy trade offs
666 in offloading computation/compilation in java-enabled mobile devices, Parallel and Distributed Systems, IEEE
667 Transactions on 15 (9) (2004) 795–809.
668 [53] B.-G. Chun, P. Maniatis, Augmented smartphone applications through clone cloud execution, in: Proceedings of
669 the 12th Conference on Hot Topics in Operating Systems, HotOS’09, USENIX Association, Berkeley, CA, USA,
670 2009, pp. 8–8.
671 [54] C. Wang, Z. Li, Parametric analysis for adaptive computation offloading, SIGPLAN Not. 39 (6) (2004) 119–130.
672 [55] R.-C. Marin, Hybrid contextual cloud in ubiquitous platforms comprising of smartphones, Int. J. Intell. Syst.
673 Technol. Appl. 12 (1) (2013) 4–17.
674 [56] L. Yang, J. Cao, Y. Yuan, T. Li, A. Han, A. Chan, A framework for partitioning and execution of data stream
675 applications in mobile cloud computing, SIGMETRICS Perform. Eval. Rev. 40 (4) (2013) 23–32.
676 [57] X. Gu, K. Nahrstedt, A. Messer, I. Greenberg, D. Milojicic, Adaptive offloading inference for delivering applica-
677 tions in environments, in: Proceedings of the First IEEE International Conference on Pervasive Computing and
678 Communications, PERCOM ’03, IEEE Computer Society, Washington, DC, USA, 2003, pp. 107–.
679 [58] E. Tilevich, Y. Smaragdakis, J-Orchestra: automatic java application partitioning., in: B. Magnusson (Ed.),
680 ECOOP, Vol. 2374 of Lecture Notes in Computer Science, Springer, 2002, pp. 178–204.
681 [59] G. Huerta-Canepa, D. Lee, An adaptable application offloading scheme based on application behavior, in: Ad-
682 vanced Information Networking and Applications - Workshops, 2008. AINAW 2008. 22nd International Confer-
683 ence on, 2008, pp. 387–392.
684 [60] K. Yang, S. Ou, H.-H. Chen, On effective offloading services for resource-constrained mobile devices running
685 heavier mobile internet applications, Communications Magazine, IEEE 46 (1) (2008) 56–63.
686 [61] U. Kremer, J. Hicks, J. Rehg, A compilation framework for power and energy management on mobile comput-
687 ers, in: Proceedings of the 14th International Conference on Languages and Compilers for Parallel Computing,
688 LCPC’01, Springer-Verlag, Berlin, Heidelberg, 2003, pp. 115–131.
689 [62] J. Flinn, D. Narayanan, M. Satyanarayanan, Self-tuned remote execution for pervasive computing, in: Hot Topics
690 in Operating Systems, 2001. Proceedings of the Eighth Workshop on, 2001, pp. 61–66.
691 [63] S. Sivavakeesar, O. Gonzalez, G. Pavlou, Service discovery strategies in ubiquitous communication environments,
692 Communications Magazine, IEEE 44 (9) (2006) 106–113. doi:10.1109/MCOM.2006.1705986.
693 [64] G. Aigner, A. Diwan, D. Heine, M. Lam, D. Moore, B. Murphy, C. Sapuntzakis, The suif2 compiler infrastructure
694 (2000).
695 [65] J. a. P. Sousa, D. Garlan, Aura: An architectural framework for user mobility in ubiquitous computing environ-
696 ments, in: Proceedings of the IFIP 17th World Computer Congress - TC2 Stream / 3rd IEEE/IFIP Conference on
697 Software Architecture: System Design, Development and Maintenance, WICSA 3, Kluwer, B.V., Deventer, The
698 Netherlands, The Netherlands, 2002, pp. 29–43.
699 URL http://dl.acm.org/citation.cfm?id=646546.693943
700 [66] H. Jo, S.-T. Hong, J.-W. Chang, D. H. Choi, Offloading data encryption to gpu in database systems, J. Supercom-
701 put. 69 (1) (2014) 375–394.
702 [67] W. Liu, J.-J. Chen, A. Toma, T.-W. Kuo, Q. Deng, Computation offloading by using timing unreliable compo-
703 nents in real-time systems, in: Proceedings of the The 51st Annual Design Automation Conference on Design
704 Automation Conference, DAC ’14, ACM, New York, NY, USA, 2014, pp. 39:1–39:6.
705 [68] D. Kovachev, Y. Cao, R. Klamma, Building mobile multimedia services: A hybrid cloud computing approach,
706 Multimedia Tools Appl. 70 (2) (2014) 977–1005.
707 [69] S. Park, Q. Chen, H. Han, H. Y. Yeom, Design and evaluation of mobile offloading system for web-centric devices,
708 J. Netw. Comput. Appl. 40 (2014) 105–115. doi:10.1016/j.jnca.2013.08.006.
23
709 URL http://dx.doi.org/10.1016/j.jnca.2013.08.006
710 [70] R. K. Lomotey, R. Deters, Reliable services composition for mobile consumption in mhealth, in: Proceedings of
711 the Fifth International Conference on Management of Emergent Digital EcoSystems, MEDES ’13, ACM, New
712 York, NY, USA, 2013, pp. 182–186.
713 [71] A. Toma, J.-J. Chen, Computation offloading for frame-based real-time tasks with resource reservation servers,
714 in: Proceedings of the 2013 25th Euromicro Conference on Real-Time Systems, ECRTS ’13, IEEE Computer
715 Society, Washington, DC, USA, 2013, pp. 103–112.
716 [72] H. Eom, P. St Juste, R. Figueiredo, O. Tickoo, R. Illikkal, R. Iyer, Snarf: A social networking-inspired accelerator
717 remoting framework, in: Proceedings of the First Edition of the MCC Workshop on Mobile Cloud Computing,
718 MCC ’12, ACM, New York, NY, USA, 2012, pp. 29–34.
719 [73] D. Kovachev, T. Yu, R. Klamma, Adaptive computation offloading from mobile devices into the cloud, in: Pro-
720 ceedings of the 2012 IEEE 10th International Symposium on Parallel and Distributed Processing with Applica-
721 tions, ISPA ’12, IEEE Computer Society, Washington, DC, USA, 2012, pp. 784–791.
722 [74] S. Imai, C. A. Varela, Light-weight adaptive task offloading from smartphones to nearby computational resources,
723 in: Proceedings of the 2011 ACM Symposium on Research in Applied Computation, RACS ’11, ACM, New
724 York, NY, USA, 2011, pp. 146–152.
725 [75] H. S. Ramos, T. Zhang, J. Liu, N. B. Priyantha, A. Kansal, Leap: A low energy assisted gps for trajectory-based
726 services, in: Proceedings of the 13th International Conference on Ubiquitous Computing, UbiComp ’11, ACM,
727 New York, NY, USA, 2011, pp. 335–344.
728 [76] J. Liu, K. Kumar, Y.-H. Lu, Tradeoff between energy savings and privacy protection in computation offloading,
729 in: Proceedings of the 16th ACM/IEEE International Symposium on Low Power Electronics and Design, ISLPED
730 ’10, ACM, New York, NY, USA, 2010, pp. 213–218.
731 [77] X. Zhang, J. Schiffman, S. Gibbs, A. Kunjithapatham, S. Jeong, Securing elastic applications on mobile devices
732 for cloud computing, in: Proceedings of the 2009 ACM Workshop on Cloud Computing Security, CCSW ’09,
733 ACM, New York, NY, USA, 2009, pp. 127–134.
734 [78] V. Tsiatsis, R. Kumar, M. B. Srivastava, Computation hierarchy for in-network processing, Mob. Netw. Appl.
735 10 (4) (2005) 505–518.
736 [79] F. Xia, F. Ding, J. Li, X. Kong, L. T. Yang, J. Ma, Phone2cloud: Exploiting computation offloading for energy
737 saving on smartphones in mobile cloud computing, Information Systems Frontiers 16 (1) (2014) 95–111.
738 [80] S. Kurkovsky, Bhagyavati, A. Ray, A collaborative problem-solving framework for mobile devices, in: Proceed-
739 ings of the 42Nd Annual Southeast Regional Conference, ACM-SE 42, ACM, New York, NY, USA, 2004, pp.
740 5–10.
741 [81] A. Gangil, S. K. Dhurandher, M. S. Obaidat, V. Singh, S. Bhatia, Moclo: A cloud framework for mobile devices,
742 in: Proceedings of the 2013 IEEE International Conference on Green Computing and Communications and IEEE
743 Internet of Things and IEEE Cyber, Physical and Social Computing, GREENCOM-ITHINGS-CPSCOM ’13,
744 IEEE Computer Society, Washington, DC, USA, 2013, pp. 632–637.
745 [82] A. Mtibaa, A. Fahim, K. A. Harras, M. H. Ammar, Towards resource sharing in mobile device clouds: Power
746 balancing across mobile devices, SIGCOMM Comput. Commun. Rev. 43 (4) (2013) 51–56.
747 [83] T. Verbelen, P. Simoens, F. De Turck, B. Dhoedt, Aiolos: Middleware for improving mobile application perfor-
748 mance through cyber foraging, J. Syst. Softw. 85 (11) (2012) 2629–2639.
749 [84] M. S. Gordon, D. A. Jamshidi, S. Mahlke, Z. M. Mao, X. Chen, Comet: Code offload by migrating execution
750 transparently, in: Proceedings of the 10th USENIX Conference on Operating Systems Design and Implementa-
751 tion, OSDI’12, USENIX Association, Berkeley, CA, USA, 2012, pp. 93–106.
752 [85] A. Saarinen, M. Siekkinen, Y. Xiao, J. K. Nurminen, M. Kemppainen, P. Hui, Smartdiet: Offloading popular apps
753 to save energy, SIGCOMM Comput. Commun. Rev. 42 (4) (2012) 297–298.
754 [86] X. Zhang, A. Kunjithapatham, S. Jeong, S. Gibbs, Towards an elastic application model for augmenting the
755 computing capabilities of mobile devices with cloud computing, Mob. Netw. Appl. 16 (3) (2011) 270–284.
756 [87] A. Saarinen, M. Siekkinen, Y. Xiao, J. K. Nurminen, M. Kemppainen, P. Hui, Can offloading save energy for
757 popular apps?, in: Proceedings of the Seventh ACM International Workshop on Mobility in the Evolving Internet
758 Architecture, MobiArch ’12, ACM, New York, NY, USA, 2012, pp. 3–10.
759 [88] J. a. N. Silva, L. Veiga, P. Ferreira, Spade: Scheduler for parallel and distributed execution from mobile devices,
760 in: Proceedings of the 6th International Workshop on Middleware for Pervasive and Ad-hoc Computing, MPAC
761 ’08, ACM, New York, NY, USA, 2008, pp. 25–30.
762 [89] Y. Ni, U. Kremer, A. Stere, L. Iftode, Programming ad-hoc networks of mobile and resource-constrained devices,
763 SIGPLAN Not. 40 (6) (2005) 249–260.
764 [90] H. Liu, T. Roeder, K. Walsh, R. Barr, E. G. Sirer, Design and implementation of a single system image operating
765 system for ad hoc networks, in: Proceedings of the 3rd International Conference on Mobile Systems, Applications,
766 and Services, MobiSys ’05, ACM, New York, NY, USA, 2005, pp. 149–162.
767 [91] L. Nogueira, L. M. Pinho, Dynamic qos-aware coalition formation, in: Proceedings of the 19th IEEE Interna-
24
768 tional Parallel and Distributed Processing Symposium (IPDPS’05) - Workshop 2 - Volume 03, IPDPS ’05, IEEE
769 Computer Society, Washington, DC, USA, 2005, pp. 135.1–.
770 [92] P. Balakrishnan, C.-K. Tham, Energy-efficient mapping and scheduling of task interaction graphs for code offload-
771 ing in mobile cloud computing, in: Proceedings of the 2013 IEEE/ACM 6th International Conference on Utility
772 and Cloud Computing, UCC ’13, IEEE Computer Society, Washington, DC, USA, 2013, pp. 34–41.
773 [93] H. Eom, P. S. Juste, R. Figueiredo, O. Tickoo, R. Illikkal, R. Iyer, Machine learning-based runtime scheduler for
774 mobile offloading framework, in: Proceedings of the 2013 IEEE/ACM 6th International Conference on Utility
775 and Cloud Computing, UCC ’13, IEEE Computer Society, Washington, DC, USA, 2013, pp. 17–25.
776 [94] X. Wang, X. Liu, G. Huang, Y. Liu, Appmobicloud: Improving mobile web applications by mobile-cloud conver-
777 gence, in: Proceedings of the 5th Asia-Pacific Symposium on Internetware, Internetware ’13, ACM, New York,
778 NY, USA, 2013, pp. 14:1–14:10.
779 [95] J. H. Ahnn, M. Potkonjak, mHealthMon: Toward energy-efficient and distributed mobile health monitoring using
780 parallel offloading, J. Med. Syst. 37 (5) (2013) 1–11.
781 [96] G. Folino, F. S. Pisani, A framework for modeling automatic offloading of mobile applications using genetic
782 programming, in: Proceedings of the 16th European Conference on Applications of Evolutionary Computation,
783 EvoApplications’13, Springer-Verlag, Berlin, Heidelberg, 2013, pp. 62–71.
784 [97] A. Toma, J.-J. Chen, Computation offloading for real-time systems, in: Proceedings of the 28th Annual ACM
785 Symposium on Applied Computing, SAC ’13, ACM, New York, NY, USA, 2013, pp. 1650–1651.
786 [98] S. Han, S. Zhang, J. Cao, Y. Wen, Y. Zhang, A resource aware software partitioning algorithm based on mobility
787 constraints in pervasive grid environments, Future Gener. Comput. Syst. 24 (6) (2008) 512–529.
788 [99] Z. Li, C. Wang, R. Xu, Task allocation for distributed multimedia processing on wirelessly networked handheld
789 devices, in: Proceedings of the 16th International Parallel and Distributed Processing Symposium, IPDPS ’02,
790 IEEE Computer Society, Washington, DC, USA, 2002, pp. 312–.
791 [100] W.-C. Chuang, B. Sang, S. Yoo, R. Gu, M. Kulkarni, C. Killian, Eventwave: Programming model and runtime
792 support for tightly-coupled elastic cloud applications, in: Proceedings of the 4th Annual Symposium on Cloud
793 Computing, SOCC ’13, ACM, New York, NY, USA, 2013, pp. 21:1–21:16.
794 [101] I. Giurgiu, O. Riva, G. Alonso, Dynamic software deployment from clouds to mobile devices, in: Proceedings of
795 the 13th International Middleware Conference, Middleware ’12, Springer-Verlag New York, Inc., New York, NY,
796 USA, 2012, pp. 394–414.
797 [102] E. Abebe, C. Ryan, Adaptive application offloading using distributed abstract class graphs in mobile environments,
798 J. Syst. Softw. 85 (12) (2012) 2755–2769.
799 [103] Y. Zhang, G. Huang, X. Liu, W. Zhang, H. Mei, S. Yang, Refactoring android java code for on-demand computa-
800 tion offloading, SIGPLAN Not. 47 (10) (2012) 233–248.
801 [104] B. Gao, L. He, L. Liu, K. Li, S. A. Jarvis, From mobiles to clouds: Developing energy-aware offloading strategies
802 for workflows, in: Proceedings of the 2012 ACM/IEEE 13th International Conference on Grid Computing, GRID
803 ’12, IEEE Computer Society, Washington, DC, USA, 2012, pp. 139–146.
804 [105] S. Han, S. Zhang, Y. Zhang, Energy saving of mobile devices based on component migration and replication
805 in pervasive computing, in: Proceedings of the Third International Conference on Ubiquitous Intelligence and
806 Computing, UIC’06, Springer-Verlag, Berlin, Heidelberg, 2006, pp. 637–647.
807 [106] S. Han, S. Zhang, Y. Zhang, A generic software partitioning algorithm for pervasive computing, in: Proceedings
808 of the First International Conference on Wireless Algorithms, Systems, and Applications, WASA’06, Springer-
809 Verlag, Berlin, Heidelberg, 2006, pp. 57–68.
810 [107] H. Cai, W. Zhang, Y. Zhang, G. Huang, Sm@rt offloader: Supporting adaptive computation offloading for an-
811 droid applications, in: Proceedings Demo & Poster Track of ACM/IFIP/USENIX International Middleware
812 Conference, MiddlewareDPT ’13, ACM, New York, NY, USA, 2013, pp. 3:1–3:2.
813 [108] S. Trifunovic, A. Picu, T. Hossmann, K. A. Hummel, Adaptive role switching for fair and efficient battery usage
814 in device-to-device communication, SIGMOBILE Mob. Comput. Commun. Rev. 18 (1) (2014) 25–36.
815 [109] M. Shiraz, E. Ahmed, A. Gani, Q. Han, Investigation on runtime partitioning of elastic mobile applications for
816 mobile cloud computing, J. Supercomput. 67 (1) (2014) 84–103.
817 [110] K. Yang, S. Ou, H.-H. Chen, On effective offloading services for resource-constrained mobile devices running
818 heavier mobile internet applications, Communications Magazine, IEEE 46 (1) (2008) 56–63.
819 [111] J. Matthews, M. Chang, Z. Feng, R. Srinivas, M. Gerla, Powersense: Power aware dengue diagnosis on mo-
820 bile phones, in: Proceedings of the First ACM Workshop on Mobile Systems, Applications, and Services for
821 Healthcare, mHealthSys ’11, ACM, New York, NY, USA, 2011, pp. 6:1–6:6.
822 [112] S. Kundu, J. Mukherjee, A. K. Majumdar, B. Majumdar, S. Sekhar Ray, Algorithms and heuristics for efficient
823 medical information display in pda, Comput. Biol. Med. 37 (9) (2007) 1272–1282.
824 [113] G. C. Sih, E. A. Lee, A compile-time scheduling heuristic for interconnection-constrained heterogeneous proces-
825 sor architectures, IEEE Trans. Parallel Distrib. Syst. 4 (2) (1993) 175–187.
826 [114] M. A. Khan, Scheduling for heterogeneous systems using constrained critical paths, Parallel Computing 38 (45)
25
827 (2012) 175 – 193.
828 URL http://www.sciencedirect.com/science/article/pii/S0167819112000105
829 [115] H. Topcuouglu, S. Hariri, M.-y. Wu, Performance-effective and low-complexity task scheduling for heterogeneous
830 computing, IEEE Trans. Parallel Distrib. Syst. 13 (3) (2002) 260–274.
831 [116] J. R. V. Winkler, Securing the Cloud: Cloud Computer Security Techniques and Tactics, Syngress Publishing,
832 2011.
833 [117] A. U. Khan, M. Othman, M. Ali, A. N. Khan, S. A. Madani, Pirax: Framework for application piracy control in
834 mobile cloud environment, J. Supercomput. 68 (2) (2014) 753–776.
835 [118] I. Goldberg, D. Wagner, R. Thomas, E. A. Brewer, A secure environment for untrusted helper applications con-
836 fining the wily hacker, in: Proceedings of the 6th Conference on USENIX Security Symposium, Focusing on
837 Applications of Cryptography - Volume 6, SSYM’96, USENIX Association, Berkeley, CA, USA, 1996, pp. 1–1.
838 [119] U. Khalid, A. Ghafoor, M. Irum, M. A. Shibli, Cloud based secure and privacy enhanced authentication & autho-
839 rization protocol, Procedia Computer Science 22 (0) (2013) 680 – 688, 17th International Conference in Knowl-
840 edge Based and Intelligent Information and Engineering Systems - {KES2013}.
841 URL http://www.sciencedirect.com/science/article/pii/S1877050913009423
842 [120] N. Antonopoulos, L. Gillam, Cloud Computing: Principles, Systems and Applications, 1st Edition, Springer
843 Publishing Company, Incorporated, 2010.
844 [121] L.-C. Lin, T.-J. Lin, C.-C. Lee, C.-M. Chao, S.-K. Chen, C.-H. Liu, P.-C. Hsiao, C.-W. Liu, C.-W. Jen, A novel pro-
845 grammable digital signal processor for multimedia applications, in: Circuits and Systems, 2004. Proceedings. The
846 2004 IEEE Asia-Pacific Conference on, Vol. 1, 2004, pp. 121–124 vol.1. doi:10.1109/APCCAS.2004.1412707.
847 [122] P. Holzenspies, G. J. M. Smit, J. Kuper, Mapping streaming applications on a reconfigurable MPSoC platform at
848 run-time, in: System-on-Chip, 2007 International Symposium on, 2007, pp. 1–4.
26