Вы находитесь на странице: 1из 14

Journal of Network and Computer Applications 37 (2014) 334347

Contents lists available at ScienceDirect

Journal of Network and Computer Applications


journal homepage: www.elsevier.com/locate/jnca

Bandwidth-adaptive partitioning for distributed execution


optimization of mobile applications$
Jianwei Niu a,n, Wenfang Song a, Mohammed Atiquzzaman b
a
b

State Key Laboratory of Software Development Environment, School of Computer Science and Engineering, Beihang University, Beijing 100191, China
School of Computer Science, University of Oklahoma, Norman, OK 73019-6151, USA

art ic l e i nf o

a b s t r a c t

Article history:
Received 10 November 2012
Received in revised form
1 March 2013
Accepted 8 March 2013
Available online 15 March 2013

Mobile applications are becoming increasingly ubiquitous and provide ever richer functionality on
mobile devices, while such applications drain increasingly more battery power of mobile devices.
Ofoading some parts of the application running on mobile devices onto remote servers/clouds is a
promising approach to extend the battery life of mobile devices. However, as data transmission of
ofoading causes delay and energy costs for mobile devices, it is necessary to carefully design application
partitioning/ofoading schemes to weigh the benets against the transmission delay and costs. Due to
bandwidth uctuations in the wireless environment, static partitionings in previous work are unsuitable
for mobile platforms with a xed bandwidth assumption, while dynamic partitionings result in high
overhead of continuous partitioning for mobile devices. Therefore, we propose a novel partitioning
scheme taking the bandwidth as a variable to improve static partitioning and avoid high costs of dynamic
partitioning. Firstly, we construct application Object Relation Graphs (ORGs) by combining static analysis
and dynamic proling to propose partitioning optimization models. Then based on our novel executiontime and energy optimization partitioning models, we propose the Branch-and-Bound based Application
Partitioning (BBAP) algorithm and Min-Cut based Greedy Application Partitioning (MCGAP) algorithm.
BBAP is suited to nding the optimal partitioning solutions for small applications, while MCGAP is
applicable to quickly obtaining suboptimal solutions for large-scale applications. Experimental results
demonstrate that both algorithms can adapt to bandwidth uctuations well, and signicantly reduce
application execution time and energy consumption by optimally distributing components between
mobile devices and servers.
& 2013 Elsevier Ltd. All rights reserved.

Keywords:
Mobile applications
Energy saving
Application partitioning
Bandwidth-adaptive
Weighted object relation graphs

1. Introduction
As mobile devices have become more powerful and affordable,
they are increasingly becoming the most popular computing
platform. However, as mobile devices have increasingly powerful
capabilities and ever richer functionality, battery capacity has
become the bottleneck for further proliferation of mobile applications (Banerjee et al., 2007; Li et al., 2012). Recently, computation
ofoading in the mobile computing environment, which ofoads
parts of application codes from mobile devices onto remote
servers, has become a promising approach to ease the energy

Corresponding author. Tel.: 86 13801164109.


E-mail addresses: niujianwei2008@gmail.com, niujianwei@buaa.edu.cn (J. Niu),
wfsong@cse.buaa.edu.cn (W. Song), atiq@ou.edu (M. Atiquzzaman).

This work was supported by the Research Fund of the State Key Laboratory of
Software Development Environment under Grant no. BUAA SKLSDE-2012ZX-17, the
National Natural Science Foundation of China under Grant nos. 61170296 &
60873241 & 61190120, the Program for New Century Excellent Talents in University
under Grant no. NECT-09-0028.
1084-8045/$ - see front matter & 2013 Elsevier Ltd. All rights reserved.
http://dx.doi.org/10.1016/j.jnca.2013.03.007

consumption bottleneck for mobile devices. Some previous works


(Chun and Maniatis, 2009; Kemp et al., 2009; Kumar and Lu, 2010)
have proposed to reduce the energy consumption or execution
time by ofoading computation-intensive or resource-intensive
codes from mobile devices onto servers/clouds. The work of Yang
et al. (2008) proposes a novel ofoading service that can seamlessly ofoad some of the tasks of a mobile application from an
MH to nearby, resource-rich PCs (called surrogates). SociableSense
(Kiran et al., 2011) also enhances social sensing by computation
ofoading.
Although computation ofoading can reduce energy consumption and execution time for mobile devices (the same codes
usually execute faster on servers than on mobile devices), transmitting codes/data by Wi-Fi or 3G results in transmission costs
and delay. Therefore, we aim at nding the optimal application
partitioning (determining which parts of the application to run on
mobile devices and which parts on servers) to trade off the
energy/time savings against transmission costs and delay.
Some application partitioning solutions (Ou et al., 2007; Kemp
et al., 2010; Cuervo et al., 2010) heavily depend upon programmers

J. Niu et al. / Journal of Network and Computer Applications 37 (2014) 334347

and middlewares to partition the applications, which limits their


uses. Hence, automatic application partitioning has become a hot
research topic recently. In this paper, we mainly focus on automatically object-oriented mobile applications partitioning based
on the Object Relation Graphs (ORGs) of applications (Wang and
Franz, 2008). Due to frequent bandwidth uctuations in the
mobile environment, static application partitioning solutions
(Diaconescu et al., 2003, 2005) cannot work well on mobile
platforms with a xed bandwidth assumption. Dynamic partitioning approaches (Xian et al., 2007; Chun and Maniatis, 2010) result
in high overhead by continuously determining application partitioning online whenever the bandwidth changes. Based on these
observations, our aim is to improve static partitioning performance by taking bandwidth changes into consideration, and avoid
the high overhead of dynamic partitioning. We propose a novel
partitioning scheme for mobile applications by considering the
bandwidth as a variable to design novel partitioning models. Based
on the partitioning models, we also propose two partitioning
algorithms to obtain the optimal partitioning solution with good
bandwidth-adaptivity. The main difference between our research
work and others is that we consider the bandwidth as a variable to
design the partitioning models in terms of execution time and
energy consumption. Thus, we propose two bandwidth-adaptive
partitioning algorithms for small and large-scale applications,
respectively.
The major contributions of this paper include:
1. By combining static analysis and dynamic proling, we construct the application Weighted Object Relation Graphs
(WORGs), which can precisely extract the real structure of
applications with low complexity, and are manageable in size
for application partitioning on resource-limited mobile
platforms.
2. Considering the bandwidth as a variable in the mobile environment, we propose three partitioning models based on the
WORGs: execution-time optimization model, energy optimization model, and execution-time and energy weighted optimization model, which aim to obtain the optimal solutions for
three different targets.
3. In order to obtain the optimal partitioning based on the
models, we investigate two bandwidth-adaptive application
partitioning algorithms: Branch-and-Bound based Application
Partitioning (BBAP) and Min-Cut based Greedy Application
Partitioning (MCGAP), which can obtain the optimal solutions
for small applications and the suboptimal solutions for largescale applications, respectively. Experimental results demonstrate that both algorithms effectively decrease application
energy consumption and execution time with good
bandwidth-adaptability.
The rest of this paper is organized as follows. Section 2 presents
the work related to application partitioning. Section 3 gives a brief
description of WORG construction. The partitioning models and
application partitioning algorithms are proposed in Section 4.
Section 5 reports the experimental evaluation of our work followed by concluding remarks in Section 6.

335

As mobile devices are becoming the primary computing platform for many users, object-oriented application partitioning has
attracted considerable interest among researchers. Some solutions
mainly rely on middleware tools (Ou et al., 2007) or programmers
(Kemp et al., 2010; Cuervo et al., 2010) to make partitions. The
work of Ou et al. (2007) depends on the ofoading middleware to
provide runtime ofoading services for resource-constrained
mobile devices. Kemp et al. (2010) provides a computation offloading framework for Android systems, where programmers
decide the parts of codes to be ofoaded. Similarly, MAUI
(Cuervo et al., 2010) also requires programmers to annotate the
methods which can be executed remotely as REMOTABLE. These
solutions are limited since they depend upon middlewares or
programmers to accomplish application partitioning. Therefore,
automatic partitioning methods were proposed to determine
application partitioning. For example, CloneCloud (Chun et al.,
2011) conducts code ofoading automatically at the thread
granularity.
The object-oriented application partitioning problem can be
cast as the Object Relation Graph (ORG) partitioning problem
(Wang and Franz, 2008). In some previous work (Dahm, 2000;
Messer et al., 2002), ORGs are constructed via purely static analysis
or purely dynamic proling methods. As purely static analysis
(Dahm, 2000; Spiegel, 2002) constructs ORGs which cannot
provide accurate information of applications (such as loop counts
and conditional branches in the application), a meaningful partitioning can rarely be achieved. However, purely dynamic proling
methods (Messer et al., 2002; Bialek et al., 2004) generate more
accurate but signicantly complex ORGs with mass unnecessary
system library classes, incurring high overhead of partitioning for
mobile devices. Hence, we propose to combine static analysis and
dynamic proling to construct Weighted Object Relation Graphs
(WORGs) with high accuracy and a manageable size for mobile
application partitioning.
As mobile devices usually use a wireless channel for data
transmission with the bandwidth changing frequently, static
application partitioning solutions (Wang and Franz, 2008;
Diaconescu et al., 2003, 2005), which compute communication
costs ofine and adopt partitioning schemes ignoring bandwidth
uctuations, are unsuitable for mobile platforms. Therefore,
dynamic partitioning approaches (Xian et al., 2007; Chun and
Maniatis, 2010) were proposed to determine the application
partitioning in runtime. Xian et al. (2007) proposed to collect the
statistics of computation time and dynamically obtain the optimal
ofoading decisions online. Chun and Maniatis (2010) introduced
the notion of dynamic application partitioning between weak
devices and clouds to better support applications running on
diverse devices in different environments. However, there are
serious challenges on system support for dynamic partitioning
and it also results in high costs of determining the partitioning in
runtime. Targeting these problems, we propose execution-time/
energy-cost optimization partitioning models where the bandwidth is considered as a variable and two bandwidth-adaptive
application partitioning algorithms.

3. Construction of weighted object relation graphs


2. Related work

3.1. Application partitioning process

Application partitioning is necessary for ofoading codes from


resource-constrained devices onto powerful servers/clouds.
Previous works consider application partitioning at different levels
of granularity: classes (Wang and Franz, 2008), objects (Sinha and
Kulkarni, 2011), tasks (Semchedine et al., 2011; Kremer et al.,
2001), functions (Li et al., 2001) and threads (Chun et al., 2011).

Figure 1 shows the workow of bandwidth-adaptive application partitioning. First of all, we construct the corresponding
Weighted Object Relation Graph (WORG) of the mobile application
via static analysis and dynamic proling. Then, taking bandwidth
changes into consideration, we build partitioning models for
execution-time/energy optimization. Based on the partitioning

336

J. Niu et al. / Journal of Network and Computer Applications 37 (2014) 334347

Fig. 1. Workow of bandwidth-adaptive application partitioning.

models, partitioning algorithms are proposed to make proper


application partitioning. Finally, the application executes in a
distributed fashion (Aderounmu, 2004) according to the partitioning results, i.e., parts of the application run locally on mobile
devices, and the rest runs remotely on servers.
3.2. Construction of weighted object relation graph
As shown in Fig. 1, the WORG construction is critical for
application partitioning. We combine static analysis and dynamic
proling to construct the application WORG, which we call as
Combined Static and Dynamic Program Analysis based Construction (CSDPAC). Static analysis obtains objects and relations
between objects according to method invocations of applications
to construct the ORG, with nodes representing objects and edges
representing relations between objects. Then we adopt dynamic
proling to obtain the execution time for each object and the
transmission data for each invocation to construct the WORG.
To illustrate the construction of WORG in Sections 3.2.1 and 3.2.2,
we introduce a Java program as an example shown in Fig. 2 and our
approach also applies to other object-oriented language based
applications. As shown in Fig. 2, there are four classes (i.e., FacePreview, ImageCapture, FaceDetection and FaceDetectionLib) in the Java
example. The main method of FacePreview class creates one ImageCapture object and two FaceDetection objects. The FaceDetection
objects then execute their DetectFace methods which invoke the
ProcessBlock method of the FaceDetectionLib class.
3.2.1. Static analysis
With Points-to technology (Lhotk, 2002), static analysis
obtains the control ow graph of the application by analyzing
the bytecode. Then, by traversing the graph, we can get all the
objects and the relations between objects based on method
invocations to construct the ORG. However, the initial ORGs
contain mass extra system library objects, resulting in an extremely large size and high partitioning overhead (the initial ORG of
the Java example in Fig. 2 totally contains 1500 nodes and 4800
edges). Since system library objects have few impacts on application partitioning, it is reasonable to cut down ORGs by deleting
those system library objects. Figure 3(a) is the corresponding ORG
of the Java example. The objects in the graph are either static
objects or dynamic objects, which are annotated with the S_ or D_
prex, respectively.

Fig. 2. An example of Java application.

3.2.2. Dynamic proling


The application WORG is constructed by dynamical proling to
obtain the weights of nodes and edges in the ORG. The authors in
Binder and Hulaas (2006) have proven that there is a certain ratio
of execution time to the total bytecode instruction count (considering loop counts) for Java programs. Therefore, execution time
of objects can be evaluated by the corresponding bytecode
instruction count. Transmission data between objects include
parameters and return values of method invocations. With Java
bytecode rewriting, dynamic proling can obtain the execution
time for each object and the transmission data for each invocation,
which are respectively the weight of a node (denoted by tnli for
node i in the following section) and the weight of an edge
(denoted by Wij for an edge between node i and j in the following
section) in the WORG. Figure 3(b) shows the constructed WORG of
the Java example.

4. Partitioning models and application partitioning


algorithms
4.1. Notations and assumptions
The notations of our partitioning models are listed in Table 1.
To simplify the partitioning models, we assume that the server
is always available, and mobile devices are in the Wi-Fi environment with symmetrical uplink and downlink bandwidths. In
addition, since the receiving power of Wi-Fi interfaces is close to
their sending power, we denote both of them by Pw.

J. Niu et al. / Journal of Network and Computer Applications 37 (2014) 334347

337

Fig. 3. ORG and WORG of the Java example. (a) ORG and (b) WORG.

Table 1
Notations of partitioning models.
Labels

Parameters

n
xi

Number of nodes (objects) in the application ORG


Partitioning result of node i, xi 1: node i runs locally on mobile devices;
xi 0: node i runs remotely on servers, i 1n
Application partitioning solution, which is dened as X fx1 ,,xn g
The optimal application partitioning solution

X
X
b (kb/s)
bl (kb/s)
Pbbl
Pc
XP
a
k
Wij (Byte)
tnli (s)
tnsi (s)
tij (s)
TX,b (s)
Ei (J)
Eij (J)
Pcpu (W)
Pw (mW)
EX,b (J)
TLocal (s)
ELocal (J)
wt
we
WX,b

Current bandwidth
The largest bandwidth value which is subject to Pbbl P c
Probability that the bandwidth is not less than bl
Threshold probability
Model solution space
Empirical constant to limit the upper bound of the model value WX,bl
Ratio of execution-time for a node running locally to running remotely
Transmission data between node i and node j when one runs on mobile devices and the other on servers
Local execution time of node i running on mobile devices
Remote execution time of node i running on servers
Transmission time between node i and node j
Execution time of partitioning X under the bandwidth of b
Energy consumption of node i running locally on mobile devices
Energy consumption of data communication between node i and j
CPU power of mobile devices
Sending and receiving power of Wi-Fi interfaces
Energy consumption of partitioning X under the bandwidth of b
Execution time when the whole application runs locally
Energy consumption when the whole application runs locally
Weight of execution time in the partitioning model
Weight of energy consumption in the partitioning model, satisfying wt we 1
Weighted model value of partitioning X under the bandwidth of b

The model solution space XP is dened as

4.2. Partitioning models


Mobile application partitioning aims at nding the optimal
partitioning solution to make the best tradeoff between time/
energy savings and transmission costs/delay. In this subsection, we
present our application partitioning models with respect to
execution time and energy consumption.

X P fXjTX,bl TX opt
,bl  1 ag
b

where TX opt
,bl is the corresponding application execution time of
b
l

under the bandwidth of bl. The


the optimal partitioning X opt
b
l

empirical constant a (a > 0) limits the execution time TX,bl to


,bl  1 a.
the upper bound TX opt
b
l

4.2.1. Execution time optimization model


The aim of our execution time optimization model is to nd the
optimal application partitioning X under the bandwidth of b,
satisfying X arg minXX P TX,b. Application execution time
TX,b of partitioning X under the bandwidth of b is dened as
TX,b xi  t nli 1xi  t nsi
1in

jxi xj j  t ij

1i o jn

where the remote execution time (tnsi) of node i running on


servers is dened as
t nsi t nli =k

,bl  1 a. Since
width bbl , we have TX ,bTX ,bl TX opt
b
l

Pbbl P c , with the bandwidth b ranging from b to bl, it holds


that
PTX ,bTX opt
,bl  1 aP c
b
l

That is, when the bandwidth varies from the current value b to the
lower bandwidth bl, the optimal partitioning X can satisfy the
constraint condition in XP with the threshold probability of Pc.

With the bandwidth b and transmission data Wij, the transmission


time tij between node i and node j is dened as
t ij W ij =b

,bl  1 a. When the bandAs X X P , therefore TX ,bl TX opt


b

4.2.2. Energy optimization model


The energy optimization model aims at nding the optimal
partitioning X under the bandwidth of b which satises
X arg minXX P EX,b. Energy consumption EX,b of partitioning

338

J. Niu et al. / Journal of Network and Computer Applications 37 (2014) 334347

 Initialize: V VNL , NL is the set of nodes which must run

X under the bandwidth of b is dened as


EX,b xi  Ei
1in

1i o jn

jxi xj j  Eij

locally, E , We .

 Combine all nodes in NL into one node c. For vi V, create an

where Ei and Eij are dened as


Ei t nli  P cpu

Eij t ij  P w

Based on the WORG, we can prove Theorem 1.

And the solution space XP is dened as


X P fXjEX,bl EX opt
,bl  1 ag
b
l

,bl indicates the corresponding energy consumption


where EX opt
bl
of the optimal partitioning X opt
under the bandwidth of bl. The
bl
empirical constant a (a > 0) limits the energy consumption EX,bl
to the upper bound EX opt
,bl  1 a.
bl
Similar to the execution time optimization model, with the
bandwidth b ranging from b to bl, it holds that
PEX ,bEX opt
,bl  1 aP c
b
l

edge e c,vi , we c,vi t nsi vj NL W ij =bt nli , E Efeg,


We We fwe eg.
For vi ,vj V, if e vi ,vj E, then wij W ij =b, E Efeg,
We We fwij g.

10

Theorem 1. The minimal application execution time equals the


min-cut capacity of WORG.
Proof. Assume V 1 V1 N L , a cut V 1 ,V 2 is a partitioning of
WORG. F is the capacity of the cut. Based on Eq. (1), we have
that
TX,b t nli t nsi
vi V 1

WX,b wt  TX,b=T Local we  EX,b=ELocal

t ij

W ij =b

vi V 1 vj N 2

14

vi V 2 vj N L

wij

15

vi V 1 vj N 2

t ij W ij =b

vi V 2 vj NL

vi V 2 vj NL

we c,vi t nsi t nli

16

vi V 2

11

From Eqs. (14) to (16), we can get

The model solution space XP is dened as


X P fXjWX,bl WX opt
,bl  1 ag
b

t ij t ij

vi V 1 vj N 2

According to the construction of WORG, it holds that


vi V 1 vj N 2

4.2.3. Execution time and energy weighted optimization model


The aim of the weighted optimization model is to nd the
optimal partitioning X under the bandwidth of b which satises
X arg minXX P WX,b. The weighted model WX,b is dened as

vi V 2

12

TX,b t nli we c,vi


vi V

vi V 2

wij

17

vi V 1 vj N 2

where WX opt
,bl is the corresponding model value of the optimal
bl
partitioning X opt
under the bandwidth of bl. The empirical constant
bl
a (a > 0) limits the model value WX,bl to the upper bound
WX opt
,bl  1 a. With the bandwidth ranging from b to bl, just
bl
as it does for the execution time optimization model, it also holds
that

According to the capacity of the cut , we have

PWX ,bWX opt


,bl  1 aP c
b

Because TLocal is a constant for a certain application running locally


on mobile devices, the minimal application execution time is
equivalent to the min-cut of WORG (the minimum of F).

13

The weights of execution time (wt) and energy consumption


(we) can be set according to the user requirements for application
execution time and the remaining energy of mobile devices. TLocal
and ELocal are the execution time and energy consumption when
the application runs locally, respectively, which are usually taken
as constants for a certain application running on mobile devices.
Therefore, when wt 1 and we 0, the weighted optimization model corresponds to the execution time optimization model.
And when wt 0 and we 1, it corresponds to the energy
optimization model. Therefore, we denote the value of all the
three models as WX,b to present the partitioning algorithms in
Section 4.4.
4.3. Min-cut problem
In this subsection, we prove that the minimal of the model
value is equivalent to the capacity of the WORG min-cut. Hence,
we apply the min-cut of WORG to application partitioning algorithms in Section 4.4. We denote the Weighted Object Relation
Graph as WORG fV,E,W v ,W e g, with V, E, Wv and We representing
the node set, edge set, weight set of nodes and weight set of edges,
respectively. Firstly, the Weighted Object Relation Graph (WORG) is
transformed into a target one (WORG) as follows. WORG
fV,E,We g has the same node set V, a new edge set E, a new set
We of edge weights, but no node weights.
(1) For execution time optimization model, we get the target
WORG (WORG) by the following three steps:

F we c,vi
vi V 2

wij

18

vi V1 vj N2

Therefore,
TX,b T Local FV 1 ,V 2

19

(2) For the energy optimization model, the difference from the
execution time optimization model of WORG construction is that,
we c,vi and wij are replaced by
we c,vi W ij =b  P w t nli  P cpu

20

wij W ij =b  P w

21

vj N L

Then we can prove Theorem 2 based on the WORG.


Theorem 2. The minimal application energy consumption is equivalent to the min-cut capacity of WORG.
Proof. According to the energy optimization model, we can get
EX,b t nli  P cpu
vi V 1

Eij Eij

vi V 1 vj V 2

22

vi V 2 vj NL

Based on the construction of WORG, it holds that

Eij

vi V 1 vj V 2

W ij =b  P w

vi V 1 vj V 2

wij

Eij W ij =b  P w we c,vi t nli  P cpu

vi V 2 vj NL

23

vi V 1 vj V 2

vi V 2 vj N L

24

vi V 2

According to Eqs. (22)(24), we have


EX,b t nli  P cpu we c,vi
vi V

vi V 2

wij

vi V 1 vj V 2

25

J. Niu et al. / Journal of Network and Computer Applications 37 (2014) 334347

As the capacity of the cut is


F we c,vi
vi V 2

wij

26

vi V 1 vj N 2

Hence, it holds that


EX,b ELocal F

27

ELocal is a constant when the whole application runs locally on


mobile devices. Therefore, the minimal application energy consumption is the corresponding min-cut capacity of WORG.
The weighted optimization model combines the execution time
optimization model and the energy consumption optimization
model by appending the corresponding weights wt and we,
respectively. Therefore, the optimal partitioning of the weighted
optimization model also corresponds to the min-cut of WORG.
Hence, we adopt the min-cut StoerWagner algorithm (Stoer and
Wanger, 1997) to solve the optimal application partitioning under
a certain static bandwidth.

4.4. Bandwidth-adaptive application partitioning algorithms


Based on the Weighted Object Relation Graph constructed in
Section 3.2 and the optimization models presented in Section 4.2,
we propose the Branch-and-Bound based Application Partitioning
(BBAP) algorithm and Min-Cut based Greedy Application Partitioning (MCGAP) algorithm in this subsection.
4.4.1. BBAP algorithm
Algorithm 1. BBAP algorithm.

The pseudocode of BBAP is shown in Algorithm 1. In this


algorithm, WORG V ,E,W v ,W e is the Weighted Object Relation
Graph of the application, with V, E, Wv and We representing nodes,
edges, the weights of nodes and the weights of edges, respectively.
We denote NL as nodes (objects) that must run locally, i.e.,

339

vi N L ,xi 1. Similar to the Branch-and-Bound algorithm,


BBSearch consists of three main parts: a search strategy, a bounding function and a branching rule. BBSearch adopts the depth-rst
search strategy to partition these nodes that are labeled as
xi 1 (a node to be partitioned). The bounding function, which
provides an upper bound for a better partitioning solution in
BBSearch, includes two constraint conditions:

 the model value WX,b of the partitioning X under the




bandwidth of b is less than the currently stored minimal value


minValue;
when the bandwidth is bl, the model value WX,bl cannot be
larger than the upper bound minV.

The branching rule of BBSearch divides the space considered into


two subspaces to be investigated in the subsequent iterations by
trying xi 0 (node i runs on the server) and xi 1 (node i runs
locally), respectively.
Since the time complexity of BBSearch is O2n (n is the number
of nodes/objects) at the worst case, BBAP is computationally
intensive and unsuitable for large-scale applications. Therefore,
we propose the heuristic MCGAP algorithm in Section 4.4.2.

4.4.2. MCGAP algorithm


We denote b C b ,Sb as the optimal application partitioning
when the bandwidth is b, where Cb and Sb represent the node set
running on the mobile device and that running on the server,
respectively. Theorem 3 demonstrates that the nodes running on
the mobile device will still run locally when the bandwidth
decreases, and the nodes running on the server will still run
remotely when the bandwidth increases.

Theorem 3. If B C B ,SB , b C b ,Sb ,


(i) B > bC B D C b ; (ii) B > bSb DSB .

then

we

have:

C 2b fvjvC b vSB g,
Proof. With
C 1b fvjvC b vC B g,
1
2
Sb fvjvSb vC B g, Sb fvjvSb vSB g, then we have

340

J. Niu et al. / Journal of Network and Computer Applications 37 (2014) 334347

C b C 1b C 2b , Sb S1b S2b , C B C 1b S1b , SB C 2b S2b . We provide the


proof of Theorem 3 by contradiction as follows:
(1) As for application execution time, we denote T(V) as the local
execution time of nodes in set V, and T b V 1 ,V 2 as the data
communication time between nodes separately in set V1 and set
V2 under the bandwidth of b.
Assume that vC B , vC b (or vSb , vSB for Theorem 3 (ii)), i.e.,
S1b . We denote t (t0) as the remote execution time of all nodes
in set S1b running on the server. The preconditions are b C b ,Sb
and B C B ,SB . Let b fC 1b C 2b S1b g,S2b , B C 1b ,fC 2b S1b
S2b g, then

(2) As for application energy consumption, we denote E(V) as the


local energy consumption of nodes in set V and Eb V 1 ,V 2 as the
energy consumption of transmission between nodes separately in
set V1 and set V2 under the bandwidth of b. Assume that vC B ,
vC b (or vSb , vSB for Theorem 3(ii)), i.e., S1b . b C b ,Sb ,
B C B ,SB . Let b fC 1b C 2b S1b g,S2b , B C 1b ,fC 2b S1b S2b g,
then
Eb b Eb b ES1b Eb S1b ,S2b Eb S1b ,C 1b Eb S1b ,C 2b

32

EB B EB BES1b EB S1b ,S2b EB S1b ,C 1b EB S1b ,C 2b

33

T b b T b b TS1b T b S1b ,S2b tT b S1b ,C 1b T b S1b ,C 2b

28

Since B is the optimal partitioning when the bandwidth is B, we


have EB B o EB B, so there is

T B B T B BTS1b T B S1b ,S2b t T B S1b ,C 1b T B S1b ,C 2b

29

EB S1b ,C 1b > ES1b EB S1b ,S2b EB S1b ,C 2b

Since B is the optimal partitioning under the bandwidth of B, we


have T B B o T B B, hence
T B S1b ,C 1b > TS1b T B S1b ,S2b t T B S1b ,C 2b

30

>p

Eb S1b ,C 1b p  EB S1b ,C 1b
> p  ES1b EB S1b ,S2b EB S1b ,C 2b
> ES1b Eb S1b ,S2b Eb S1b ,C 2b

T B S1b ,C 1b

> ES1b Eb S1b ,S2b Eb S1b ,C 2b

TS1b T B S1b ,S2b T B S1b ,C 2b t

p  TS1b T b S1b ,S2b T b S1b ,C 2b p  t


> TS1b T b S1b ,S2b T b S1b ,C 2b t
> TS1b T b S1b ,S2b T b S1b ,C 2b t

As B > b, let B p  b (p > 1), then

p  ES1b Eb S1b ,S2b Eb S1b ,C 2b

As B > b, let B p  b (p > 1), then


T b S1b ,C 1b p

34

31

So we get T b b o T b b, which contradicts the precondition


that b is the optimal partitioning under the bandwidth of b.
Therefore, it holds that C B D C b (or Sb D SB ).

35

So Eb b o Eb b, which contradicts the precondition that b


is the optimal application partitioning under the bandwidth of b.
Hence, C B D C b (or Sb D SB ).
In conclusion, for both execution time and energy consumption,
it holds that
B > bC B DC b ,

Sb D SB

Algorithm 2. MCGAP algorithm.

36

J. Niu et al. / Journal of Network and Computer Applications 37 (2014) 334347

We denote X C opt ,Sopt as the optimal partitioning of MCGAP,


where Copt and Sopt are the node sets running on the mobile device
and the server, respectively. According to Theorem 3, considering
the bandwidth ranging from b to bl, we have C b D C opt and
Sbl DSopt . Since Cb and Sbl can be easily obtained by the min-cut
StoerWagner algorithm (Stoer and Wanger, 1997), we just need to
consider the optimal partitioning of the node set V VC b Sbl (V
is the set of all nodes).
Algorithm 2 is the pseudocode of MCGAP. In Algorithm 2, the
MA_Order function is used to nd the node (vm) most tightly
connected and the node (vm1 ) second most tightly connected
with Sbl , which is similar to the maximum adjacency search
function in the StoerWagner algorithm (Stoer and Wanger,
1997). Formally, a node z most tightly connected with Sbl satises
zSbl and wSbl ,z maxfwSbl ,yjySbl g, where wSbl ,y is the sum
of the weights of all the edges between Sbl and y. The Contract
function means that the two nodes are merged and then replaced
by a new node, and edges from the two nodes to any other node
are replaced by an edge weighted by the sum of the weights of the
previous two edges. What's more, MCGAP also has the same
constraint conditions as BBAP to update and store a better
partitioning solution. Similar to the StoerWagner algorithm,
MCGAP has the time complexity of OjEj jVjlogjVj, which can
quickly obtain the partitioning solution for large-scale
applications.

5. Evaluation
In this section, we present an evaluation of the performance of
ORG construction in Section 5.1 and the performance of partitioning algorithms in terms of execution time and energy consumption
in Section 5.2.
5.1. Construction of weighted object relation graph
In this subsection, we present the evaluation of ORG construction by comparing the performance of Purely Static Program
Analysis based Construction (PSPAC), Purely Dynamic Program
Analysis based Construction (PDPAC) and our Combined Static and
Dynamic Program Analysis based Construction (CSDPAC)
described in Section 3.2. PSPAC constructs ORGs with only the
static analysis method while PDPAC constructs ORGs with only the
dynamic proling. With the Soot framework and bytecode rewriting, we evaluate the performance of the ORGs constructed by
CSDPAC, PSPAC and PDPAC on a set of Dacapo Benchmarks. The
testbed is the ThinkPad X201i notebook with 3.0 GB memory,
2.53 GHz CPU frequency, and the Ubuntu10.10 operating system.
The benchmark suite is intended as a tool for Java benchmarking, which consists of a set of open source, real world applications
with non-trivial memory loads. We choose eight different benchmarks covering both small and large scale applications shown in
Table 2 to evaluate our ORG construction. Table 2 gives the
description of ORGs constructed by CSDPAC, PSPAC and PDPAC.
We can observe that ORGs constructed by CSDPAC and PSPAC are
smaller in size than those constructed by PDPAC. The reason is that
ORGs can be cut down into manageable size via static analysis of
CSDPAC and PSPAC. However, PDPAC obtains more application
information including mass unnecessary system library classes by
purely dynamic analysis, resulting in extremely complex ORGs and
high overhead of partitioning.
Table 3 shows the comparison of application's actual execution
time and predicted execution time by CSDPAC, PSPAC and PDPAC.
We predict application execution time according to application
Bytecode Instructions Count (BIC) (Binder and Hulaas, 2006). If the
Predicted Execution Time (PET) is closer to the Actual Execution

341

Table 2
ORG sizes comparison of CSDPAC, PSPAC and PDPAC.
Programs Classes Methods CSDPAC

avrora
h2
luindex
lusearch
pmd
sunow
tomcat
xalan

8812
10 264
6530
7812
12 673
9796
9760
11 074

22 240
14 494
8199
10 148
17 360
12 506
12 446
14 933

PSPAC

PDPAC

Nodes Edges

Nodes Edges

Nodes

200
4900
1027
1238
2312
2615
2718
1896

208
4912
1027
1238
2320
2615
2718
1896

5430
11 088
6199
7148
9360
8506
8246
9347

Edges

5430 10 098 25 289


11 088 13 257 16 237
6199
6974 10 299
7148
7976 10 278
9360 13 879 18 002
8506
9820 12 623
8246
9772 12 453
9347 11 076 14 935

Table 3
Program AET and PET comparison of CSDPAC, PSPAC and PDPAC.
Programs AET
(ms)

avrora
h2
luindex
lusearch
pmd
sunow
tomcat
xalan

6414
34 964
7266
1887
5125
9733
7350
1443

CSDPAC

PSPAC

PDPAC

BIC (byte) PET


(ms)

BIC
(byte)

360 846
6014
2 054 820 34 247
421 082
7018
115 208
1920
323 465
5391
580 381
9673
443 164
7386
76 680
1278

325 800
5430
665 280 11 088
371 940
6199
52 560
876
230 400
3840
404 460
6741
319 260
5321
31 380
523

PET
(ms)

BIC
(byte)

PET
(ms)

390 780
6513
2 146 866 35 781
454 983
7583
118 505
1975
321 660
5361
617 584 10 293
454 980
7583
98 826
1647

Table 4
Parameters of simulation testbed.
Parameters

Variables

Values

CPU power (w)


Wi-Fi power (mw)
Bandwidth (kb/s)
Computation ratio

Pcpu
Pw
b
k

7
88
100
3

Table 5
Parameters of graphs constructed in our simulation.
GraphNames

Nodes

Edges

RandomGraph1
RandomGraph2
RandomGraph3
RandomGraph4
avrora
h2
luindex
lusearch

15
30
50
100
200
4900
1027
1238

60
350
948
3238
5430
11088
6199
7148

Table 6
Partitioning time of BBAP(s).
Programs

Model_T

Model_E

Model_W

RandomGraph1
RandomGraph2
RandomGraph3
RandomGraph4
avrora
lusearch

0.022
0.056
0.375
0.897
2.062
200

0.032
0.049
0.389
1.003
2.232
217

0.028
0.058
0.392
0.974
2.182
209

342

J. Niu et al. / Journal of Network and Computer Applications 37 (2014) 334347

Fig. 4. Application execution time with different bandwidths by partitioning of BBAP, StoerWagner, Minimal and Local. (a) RandomGraph1, (b) RandomGraph2, (c) avrora
and (d) lusearch.

Fig. 5. Application energy consumption with different bandwidths by partitioning of BBAP, StoerWagner, Minimal and Local. (a) RandomGraph1, (b) RandomGraph2,
(c) avrora and (d) lusearch.

Time (AET), it means that the ORG is more accurate for application
partitioning. As shown in Table 3, as compared to PSPAC, the
predicted execution times of CSDPAC and PDPAC are closer to their

actual execution times. This indicates that CSDPAC and PDPAC


construct more accurate ORGs than PSPAC, and dynamic proling
is effective for ORG construction. However, with only static

J. Niu et al. / Journal of Network and Computer Applications 37 (2014) 334347

343

Fig. 6. Weighted model value with different bandwidths by partitioning of BBAP, StoerWagner, Minimal and Local. (a) RandomGraph1, (b) RandomGraph2, (c) avrora
and (d) lusearch.

analysis, PSPAC cannot obtain enough application information and


constructs ORGs with low accuracy.
Therefore, combining static analysis and dynamic proling,
CSDPAC can construct ORGs with higher accuracy than those
constructed by PSPAC and with more manageable scale than those
constructed by PDPAC.
5.2. Bandwidth-adaptive application partitioning algorithms
In this subsection, we evaluate the performance of BBAP and
MCGAP algorithms in terms of execution time and energy consumption for the case of bandwidth uctuations. The simulation
testbed is a ThinkPad X201i notebook with 3.0 GB memory,
2.53 GHz CPU frequency, and Windows 7 operating system.
Table 4 shows the experimental parameters, where k is the ratio
of the execution time for a node running on mobile devices to that
on servers. Table 5 describes the WORGs of four customized
programs and four Dacapo Benchmarks constructed by CSDPAC
in Section 5.1.
To systematically evaluate the performance of BBAP and
MCGAP, we conduct three groups of experiments corresponding to three different cases: (1) execution-time optimization;
(2) energy-consumption optimization; (3) balanced optimization
(wt 0:5,we 0:5). We compare the following three schemes with
BBAP/MCGAP (their partitioning solutions are obtained under the
bandwidth of 100 kb/s):

 StoerWagner: the static partitioning obtained by the Stoer





Wagner algorithm under the bandwidth of 100 kb/s.


Minimal: the dynamic partitioning, recalculating the optimal
partitioning whenever the bandwidth changes by a step of
10 kb/s.
Local: the local running on the mobile device without application partitioning.

Table 7
Comparison of average execution time and energy consumption (BBAP).
Programs

Execution time

Energy consumption

TR1 (%)

TR2 (%)

ER1 (%)

ER2 (%)

RG1
RG2
avrora
lusearch

25.89
18.80
32.16
28.67

70.88
50.50
25.23
30.06

23.93
21.99
30.64
26.97

25.59
24.96
32.23
55.10

Average

26.38

44.17

25.88

34.47

Table 8
Partitioning time of MCGAP(s).
GraphNames

Model_T

Model_E

Model_W

RandomGraph1
RandomGraph2
RandomGraph3
RandomGraph4
avrora
h2
lusearch
luindex

0.019
0.054
0.392
0.913
1.662
52.28
20.52
20.42

0.022
0.051
0.396
0.915
1.583
51.30
20.45
20.32

0.023
0.055
0.398
0.908
1.592
54.29
20.79
20.61

In fact, when the application has been running and the


bandwidth changes, the Minimal approach may make different
partitioning determinations for application objects, but it makes
no sense to ofoad the objects which have been executed and
rerun them. Therefore, when the bandwidth changes, the optimal
partitioning obtained by Minimal may not be adopted by the
application in most cases. Hence, Minimal is usually used as a

344

J. Niu et al. / Journal of Network and Computer Applications 37 (2014) 334347

Table 9
Application execution time comparison of BBAP and MCGAP.
Programs

RandomGraph1
RandomGraph2
RandomGraph3
RandomGraph4
avrora
h2
lusearch
luindex

b 60 kb/s

b 20 kb/s

b 80 kb/s

B (ms)

M (ms)

B (ms)

M (ms)

B (ms)

M (ms)

17
71
105
167
4900
31 410
5693
1904

17
72
107
181
4950
31 771
5712
1995

1.000
1.014
1.019
1.084
1.010
1.011
1.003
1.048

12
40
70
113
3712
20 112
4392
1119

13
41
72
114
3716
20 143
4424
1135

1.083
1.025
1.029
1.009
1.001
1.002
1.007
1.014

11
33
62
97
3300
18 352
4087
1030

12
35
62
98.6
3324
18 553
4213
1072

1.091
1.061
1.000
1.016
1.007
1.011
1.031
1.041

Fig. 7. Application execution time with different bandwidths by partitioning of MCGAP, StoerWagner, Minimal and Local. (a) avrora, (b) lusearch, (c) luindex and (d) h2.

performance benchmark of partitioning and cannot be adopted in


the real world.

5.2.1. Evaluation of BBAP performance


Table 6 shows partitioning time of BBAP, i.e., the time BBAP
takes to obtain the optimal partitioning solutions for three
partitioning models: execution time optimization model
(Model_T), energy optimization model (Model_E) and the
balanced weight optimization model with wt 0:5,we 0:5 (Model_W). As shown in Table 6, we can observe that BBAP can obtain
the optimal solution in a short time for simple applications (from
RandomGraph1 to avrora), but for large-scale applications (such as
lusearch), the partitioning-time cost becomes much higher. Just as
the description in Section 4.4.1, BBAP is able to nd the optimal
partition, which by itself is computationally quite intensive and
unsuitable for large-scale applications.
We choose four applications (RandomGraph1, RandomGraph2,
avrora and lusearch) to evaluate the performance of BBAP. Figure 4
shows the performance comparison of StoerWagner, Minimal,
Local and BBAP with respect to execution time. As shown in

Fig. 4, we can observe that BBAP and Minimal outperform Local.


StoerWagner also performs better than Local when the bandwidth
is relatively high, which demonstrates that the partitioning
approach can signicantly improve the application performance.
However, as the bandwidth decreases, it will cost more time to
transfer the same data, resulting in the increase of application
execution time, especially for StoerWagner. Moreover, compared
with StoerWagner, the execution time of BBAP is much closer to
that of Minimal, and its curve is more smooth with bandwidth
uctuations. Although Minimal slightly outperforms BBAP, its
computational cost is much higher than that of BBAP because
Minimal needs to recalculate the application partitioning whenever the bandwidth changes by 10 kb/s.
Figures 5 and 6 compare the performance of the four schemes
for energy optimization model and weighted optimization model
(the weights of running time and energy consumption are both
0.5), respectively. As shown in both Figs. 5 and 6, BBAP outperforms StoerWagner and Local. The performance of BBAP is close to
that of Minimal. However, since Minimal recalculates the application partitioning each time the bandwidth varies, its computational cost is much higher than that of BBAP. With partitioning

J. Niu et al. / Journal of Network and Computer Applications 37 (2014) 334347

345

Fig. 8. Application energy consumption with different bandwidths by partitioning of MCGAP, StoerWagner, Minimal and Local. (a) avrora, (b) lusearch, (c) luindex and (d) h2.

Fig. 9. Weighted model value with different bandwidths by partitioning of MCGAP, StoerWagner, Minimal and Local. (a) avrora, (b) lusearch, (c) luindex and (d) h2.

only once, BBAP can adapt to bandwidth uctuations and has


better efciency on application execution speedup or energy
conservation.

Table 7 shows the average speedup and energy savings of BBAP


against StoerWagner and local running. RG1 and RG2 refer to
RandomGraph1 and RandomGraph2. TR1 and ER1 respectively

346

J. Niu et al. / Journal of Network and Computer Applications 37 (2014) 334347

Table 10
Comparison of average execution time and energy consumption (MCGAP).
Programs

Execution time

Energy consumption

TR3 %

TR3 %

ER4 %

ER4 %

avrora
lusearch
luindex
h2

30.67
27.83
20.54
28.92

23.59
29.24
51.20
45.71

31.18
26.96
14.12
50.07

32.75
55.09
53.66
42.87

Average

26.99

37.44

30.58

46.09

indicate the speedup and energy savings of BBAP against Stoer


Wagner, while TR2 and ER2 are respectively the speedup and
energy saving of BBAP against the local running. As shown in
Table 7, compared with the local running, the average time
speedup ratio and energy saving ratio by BBAP are respectively
44.17% and 34.47%, while average execution time and energy
consumption by BBAP are respectively reduced by 26.38% and
25.88% against StoerWagner.

5.2.2. Evaluation of MCGAP performance


Table 8 shows the partitioning time of MCGAP, i.e., the time
MCGAP takes to obtain the partitioning solutions for three models.
Compared with BBAP in Table 6, the partitioning time of BBAP is
similar to that of MCGAP for simple applications. However, MCGAP
spends signicantly less time than BBAP for large ones. That is,
heuristic MCGAP can obtain the partitioning results much faster
than BBAP for large-scale applications, because BBAP is based on
the Branch-and-Band algorithm which is computationally
intensive.
We compare the application execution time of the optimal
partitioning solutions by MCGAP and BBAP at the bandwidths of
20 kb/s, 60 kb/s, and 80 kb/s in Table 9, where B, M and A
represent BBAP, MCGAP and the accuracy of MCGAP, respectively.
The accuracy is dened as the execution time ratio of the
partitioning obtained by MCGAP to the optimal partitioning
obtained by BBAP. As shown in Table 9, MCGAP performs as well
as BBAP with the high accuracy close to 1, which demonstrates
that MCGAP is effective in application partitioning and applicable
to large-scale applications.
Figures 79 show the performance of MCGAP on four benchmarks (avrora, lusearch, luindex and h2) in terms of execution
time, energy consumption and the weighted total cost
(wt 0:5,we 0:5), respectively. As shown in Figs. 79, both
Minimal and MCGAP outperform Local. Since the low bandwidth
results in much higher costs for data transmission, StoerWagner
performs better than Local only when the bandwidth is relatively
high. The results demonstrate that the partitioning approach can
improve the application performance when the bandwidth is not
too low and MCGAP performs better than StoerWagner with good
bandwidth-adaptivity. With partitioning only once, the performance of MCGAP is close to that of Minimal which is an optimal
benchmark of partitioning and needs to make the partitioning
repeatedly whenever the bandwidth changes by a step of 10 kb/s
in our experiment.
Table 10 shows the average application execution speedup and
energy savings of MCGAP against StoerWagner and the local
running. TR3 and ER3 are respectively the speedup ratio and energy
saving ratio by MCGAP against the StoerWagner algorithm, while
TR4 and ER4 are respectively the speedup ratio and energy saving
ratio by MCGAP against the local running, respectively. As shown
in Table 10, compared with the local running, MCGAP reduces the
execution time and energy consumption by 37.44% and 46.09%,

respectively. Compared with static StoerWagner algorithm,


MCGAP reduces the execution time and energy consumption by
26.99% and 30.58%, respectively. This further demonstrates that
our proposed MCGAP is able to effectively reduce application
energy consumption as well as execution time.

6. Conclusion
In this paper, we rst construct the WORGs of mobile applications by combining static analysis and dynamic proling methods.
To tackle the problem of bandwidth uctuations in a mobile
environment, we propose the optimization models in terms of
execution-time and energy-consumption for mobile application
partitioning based on the WORGs. We consider the bandwidth as a
variable and propose two bandwidth-adaptive application partitioning algorithms: BBAP and MCGAP. BBAP is applicable for
nding the optimal solutions for small applications, while MCGAP
is suited to quickly obtain the suboptimal solutions for large-scale
applications. Experimental results demonstrate that both algorithms adapt well to bandwidth uctuations, and effectively
reduce the energy consumption and execution time of mobile
applications.
References
Aderounmu GA. Performance comparison of remote procedure calling and mobile
agent approach to control and data transfer in distributed computing environment. Journal of Network and Computer Applications 2004;27(2):11329.
Banerjee N, Rahmati A, Corner MD, et al. Users and batteries: interactions and
adaptive energy management in mobile systems. In: Proceedings of the ninth
international conference on ubiquitous computing. Innsbruck, Austria;
September 2007. p. 21734.
Bialek R, Schneider JG, Yan J. Partitioning of Java application to support dynamic
updates. In: Proceedings of the 11th Asia-Pacic software engineering conference. Busan, Korea; November 2004. p. 61623.
Binder W, Hulaas J. Using bytecode instruction counting as portable CPU consumption metric. Electronic Notes in Theoretical Computer Science 2006;153
(2):5777.
Chun BG, Maniatis P. Augmented smartphone applications through clone cloud
execution. In: Proceedings of the eighth conference on hot topics in operating
systems. Monte Verita, Switzerland; May 2009. p. 15.
Chun BG, Maniatis P. Dynamically partitioning applications between weak devices
and clouds. In: Proceeding of the rst ACM workshop on mobile cloud
computing & services: social networks and beyond. San Francisco, CA, USA;
June 2010. p. 15.
Chun BG, Ihm S, Maniatis P, Naik M, Patti A. Clonecloud: elastic execution between
mobile device and cloud. In: Proceedings of the sixth conference on computer
systems. Salzburg, Austria; April 2011. p. 30114.
Cuervo E, Balasubramanian A, Cho D. MAUI: making smart phone last longer with
code ofoading. In: Proceedings of the eighth international conference on
mobile systems, applications, and services. San Francisco, California, USA; June
2010. p. 4962.
Dahm M. Doorastha: a step towards distribution transparency. In: Proceedings of
Java-Informations-Tage/Net.ObjectDays 2000. Erfurt, Germany; October 2000.
Diaconescu RE, Wang L, Franz M. Automatic distribution of Java Byte-code based on
dependence analysis. Technical report, University of California; 2003.
Diaconescu RE, Wang L, Mouri Z, et al. A compiler and runtime infrastructure for
automatic program distribution. In: Proceedings of the 19th IEEE international
parallel and distributed processing symposium. Denver, Colorado, USA; April
2005. p. 52a.
Kemp R, Palmer N, Kielmann T, et al. eyeDentify: multimedia cyber foraging from a
smartphone. In: Proceedings of the 11th IEEE international symposium on
multimedia. San Diego, California, USA; December 2009. p. 3929.
Kemp R, Palmer N, Kielmann T, et al. Cuckoo: a computation ofoading framework
for smartphones. In: Proceedings of the second international conference on
mobile computing, applications, and services, ad hoc and wireless networks.
Santa Clara, CA, USA; October 2010. p. 6281.
Kiran KR, Cecilia M, Mirco M, Peter JR. Sociablesense: exploring the trade-offs of
adaptive sampling and computation ofoading for social sensing. In: Proceedings of the 17th international conference on mobile computing and networking
(Mobicom'11). Las Vegas, Nevada, USA; September 2011. p. 1923.
Kremer U, Hicks J, Rehg J. A compilation framework for power and energy
management on mobile computers. In: Proceedings of international workshop
on languages and compilers for parallel computing. Cumberland Falls,
Kentucky, USA; August 2001.
Kumar K, Lu YH. Cloud computing for mobile users: can ofoading computation
save energy?. IEEE Computer 2010;43(4):516.

J. Niu et al. / Journal of Network and Computer Applications 37 (2014) 334347


Lhotk O. Spark: a exible points-to analysis framework for Java. Master's thesis.
McGill University; December 2002.
Li Z, Wang C, Xu R. Computation ofoading to save energy on handheld devices: a
partition scheme. In: Proceedings of the 2001 international conference on
compilers, architecture, and synthesis for embedded systems (CASES'01).
Atlanta, Georgia, USA; November 2001. p. 23846.
Li F, Khan MK, Alghathbar K, Takagi T. Identity-based online/ofine signcryption for
low power devices. Journal of Network and Computer Applications 2012;
35(1):3407.
Messer A, Greenberg I, Bernadat P, et al. Towards a distributed platform for
resource-constrained devices. In: Proceedings of the 22nd international conference on distributed computing systems. Vienna, Austria; July 2002. p. 4351.
Ou S, Yang K, Zhang J. An effective ofoading middleware for pervasive services on
mobile devices. Pervasive and Mobile Computing 2007;3(4):36285.
Semchedine F, Bouallouche-Medjkoune L, Assani D. Task assignment policies in
distributed server systems: a survey. Journal of Network and Computer
Applications 2011;43(4):112330.

347

Sinha K, Kulkarni M. Techniques for ne-grained, multi-site computation ofoading.


In: Proceedings of the 11th IEEE/ACM international symposium on cluster, cloud
and grid computing. Newport Beach, CA, USA; May 2011. p. 18494.
Spiegel A. Automatic distribution of object-oriented programs. PhD thesis, Freie
Universitat Berlin, FB Mathematik und Informatik; December 2002.
Stoer M, Wanger F. A simple min-cut algorithm. Journal of the ACM 1997;
44(4):58591.
Wang L, Franz M. Automatic partitioning of object-oriented programs for resourceconstrained mobile devices with multiple distribution objectives. In: Proceedings of the 14th IEEE international conference on parallel and distributed
systems. Melbourne, Victoria, Australia; December 2008. p. 36976.
Xian CJ, Lu YH, Li ZY. Adaptive computation ofoading for energy conservation on
battery-powered systems. In: Proceeding of 2007 international conference on
parallel and distributed systems. Hsinchu, Taiwan; December 2007. p. 18.
Yang K, Ou S, Chen H. On effective ofoading services for resource-constrained
mobile devices running heavier mobile internet applications. IEEE Communication Magazine 2008;46(1):5663.

Вам также может понравиться