# Mobility- and Energy-Aware Cooperative Edge Offloading for Dependent Computation Tasks +
## 3 System Model
### Task Model  
We assume that the computation-intensive applications can be divided into tasks of different sizes which have to be executed within limited time frame constraints, whereby parallel execution of tasks is possible, subject to the task dependency constraints. For example, a video navigation application running on a smartphone [60] can be modeled as a set of tasks with dependencies as characterized by a general dependency graph. More formally, we denote \(\mathcal{K}=\{1,2,\ldots,K\}\) for the set of tasks in a computation-intensive application. Each task is associated with a set of parameters \(\{b_{k},c_{k}\}\), whereby \(b_{k}\) is the data size of computation task \(k\) (in bits), and \(c_{k}\) denotes the required computation resources to execute the computations for each bit in task \(k\) (in CPU cycles/bit), corresponding to a total amount of \(b_{k}c_{k}\) computation resources (in CPU cycles) required to execute the task \(k\). The computationally intensive application has a deadline \(T_{d}^{\max}\) for the execution of all \(K\) tasks. The dependency relationship of tasks implies an execution order, according to which a given task may have to wait for its predecessor to be executed first (see Figure 2). We define the concepts of the start and finish time of a task to model this effect for the computation offloading decision algorithm as follows:  
* _Finish time_ is the time instant of the execution completion of task \(k\): \[FT_{k}=ST_{k}+T_{k}^{\text{exec}},\] (1) whereby \(ST_{k}\) is the start time of task \(k\) as defined next, and \(T_{k}^{\text{exec}}\) is the execution time (span) for task \(k\). * _Start time_ is the time instant when the execution of task \(k\) can commence: \begin{table}
\begin{tabular}{l l} \hline \hline
**Symbol** & **Definition** \\ \hline \(\mathcal{I}\) & Set of helper/relay nodes UH\({}_{i}\), \(i\in\mathcal{I}\); total \# of helpers/relays \(I=|\mathcal{I}|=10\) \\ \(\mathcal{M}\) & Set of MEC servers \(S_{m}\), \(m\in\mathcal{M}\); total \# of MEC servers \(M=|\mathcal{M}|=2\) \\ \(\mathcal{K}\) & Set of computation tasks; total \# of tasks \(K=|\mathcal{K}|=25\) \\ \(b_{k}\) & Data size [in bits] of task \(k\); \(b_{k}=\) 200–400 KB (unif. random) \\ \(c_{k}\) & Required computation per bit of task \(k\); \(c_{k}=\) 30–50 cycles/bit (unif. random) \\ \(T_{d}^{\max}\) & Deadline for execution of set of \(K\) tasks; \(T_{d}^{\max}=4.4\) s \\ \(B\) & Bandwidth of wireless channel; \(B=5\) MHz \\ \(H_{k}\) & Wireless channel gain; \(H_{k}=10^{-7}\) for UE to UH\({}_{i}\), and for UH\({}_{i}\) to server; \\  & \(H_{k}=10^{-8}\) for UE to server \\ \(P_{k}^{tr}\) & Transmission power for task \(k\); \(P_{k}^{tr}=0.2\) W \\ \(P_{k}^{\text{wait}}\) & UE’s idle circuit power; \(P_{k}^{\text{wait}}=0.05\) W \\ \(f_{k}^{\text{UE}}\) & UE CPU cycle frequency allocated to task \(k\); \(f_{k}^{\text{UE}}=0.1\cdot 10^{9}\) cycles/s \\ \(f_{k}^{\text{UH}_{i}}\) & CPU cycle frequency of helper node \(i\); \(f_{k}^{\text{UH}_{i}}=0.5\cdot 10^{9}\) cycles/s \\ \(f_{k}^{\text{Sm}}\) & CPU cycle frequency of MEC server \(m\); \(f_{k}^{\text{Sm}}=2\cdot 10^{9}\) cycles/s \\ \(\mathcal{H}\) & Set of helper node selection variables \\ \(\mathcal{S}\) & Set of MEC server selection variables \\ \(\mathcal{HS}\) & Set of relays and MEC server selection variables \\ \(X_{t}^{\text{UE}}\), \(X_{t}^{\text{UH}_{i}}\) & Position of UE, helper/relay UH\({}_{i}\) at time \(t\) \\ \(R_{i}\), \(R_{m}\) & Coverage area radius of helper UH\({}_{i}\), server \(S_{m}\) \\ \(T_{s,t}^{\text{hi}}\) & UE sojourn time in coverage of helper node UH\({}_{i}\) \\ \(L\) & \# of iterations of stochastic mapping in EETO alg.; \(L=1000\) \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Model notations, with default parameters for evaluation in Section 6. \[ST_{k}=\left\{ \begin{array}{rl}\max_{j\in\mathcal{P}(k)}FT_{j}&\text{if }\mathcal{P}(k)\
eq\emptyset,\\ 0&\text{if }\mathcal{P}(k)=\emptyset,\end{array} \right. \tag{2}\]  
whereby the set \(\mathcal{P}(k)\) contains all predecessor tasks of task \(k\).