Joint Congestion Control and Resource Allocation for Delay- Aware Tasks in Mobile Edge Computing

Guangxi Key Laboratory of Wireless Wideband Communication and Signal Processing, Guilin University of Electronic Technology, Guilin 541004, China School of Evidence Law and Forensic Science, Gansu University of Political Science and Law, Lanzhou 730070, China School of Electronic and Information Engineering, Lanzhou Jiaotong University, Lanzhou 730070, China State Key Laboratory of Rail Traffic Control and Safety, Beijing Jiaotong University, Beijing 100044, China


Introduction
With the recent advancement of wireless communication technology and the Internet of Things (IoT), smart mobile devices (SMDs) gain enormous popularity, which can support many intelligent applications, such as map navigation, interactive gaming, and virtual reality [1,2]. These novel services and applications require intensive computation resources and strict delay. However, since the limitation of the resources (e.g., CPU-cycle frequency, storage capability, and energy), these applications cannot be executed by the SMDs. Therefore, the novel solutions extending the computation capability and reducing the task execution delay are emerging [3,4]. Among them, mobile edge computing (MEC) has been proposed as a novel approach by offloading part or all of the data from the SMDs to the computation server on the edge of the network [5][6][7].
By utilizing the MEC framework, resource utilization can be improved, and the computation capabilities of SMDs can be enhanced. Compared with the traditional cloud servers, MEC architecture has the advantages of low overhead and low latency [8]. However, considering the scalable deployment and economy, the MEC server has limited computation capability [9,10]. In order to improve the system utility and resource utilization, novel resource allocation schemes should be carefully designed.
Recently, task computation offloading and resource allocation in MEC have become a hot topic. There are mainly two different aspects to study task offloading and resource allocation. The first aspect is to consider the static task offloading strategies. The new tasks cannot be randomly generated before the old tasks are executed. A joint offloading selection, radio, and computation resource allocation scheme was proposed to minimize the SMDs energy consumption, where a suboptimal result was obtained by utilizing the reformulation-linearization-technique-based branch-and-bound method [11]. In order to achieve the trade-off between energy consumption and latency, an energy-aware offloading scheme was proposed by jointly optimizing communication and computation resources with the energy and sensitive latency constraints [12]. Wang et al. presented an alternating direction method of multiplier (ADMM) algorithm for task offloading, resource allocation, and Internet caching optimization to maximize the MEC system utility [13]. The second aspect focuses on the dynamic task offloading strategies. The tasks are randomly generated at each slot. Lyu et al. proposed the optimal offloading schedules for MEC under partial network knowledge, where a perturbed Lyapunov function was formulated to maximize the system utility function [14]. In order to minimize the mobile device power consumption, a Lyapunov optimization-based scheduling scheme for energy-efficient offloading for multicore mobile devices was proposed [15]. When considering the different timescales in the task execution process and the channel fading process, a Markov decision process-based task scheduling scheme was proposed [16]. All the previous works assumed that the randomly generated tasks are inside the network capacity region. However, when the randomly generated tasks exceed the network capacity region, the network will be congested. Therefore, considering the stability of the MEC system, congestion control is necessary. Moreover, for a lot of 5G services, such as the online game and virtual reality, both task execution delay and system utility are important performance metrics. Large delay and low system utility will reduce the quality of experience (QoE) of users [17,18]. Therefore, how to make full use of the resources and achieve the trade-off between system utility and execution delay are challenging issues. This paper focuses on the joint congestion control and resource allocation with power, subcarrier, and computation resource constraints of SMDs and MEC server. With the help of the Lyapunov optimization method, the primal problem is transformed into five subproblems. Since the first three subproblems are all single variable problems, the solutions can be obtained directly. For the joint power and subcarrier subproblem, the alternating and timesharing methods are utilized to solve it efficiently. For the MEC server scheduling subproblem, we propose an efficient algorithm. By utilizing the results of five separate subproblems, a delay-aware task congestion control and resource allocation (DTCCRA) algorithm is proposed. The performance bound of the proposal is analyzed, indicating that the system utility and task execution delay can achieve an ½Oð1/VÞ, OðVÞ trade-off. Compared with the intelligent heuristic (IH) algorithm, when the control parameter V increases from 10 6 to 10 7 , the total backlogs are decreased by 5.03% and the system utility is increased by 3.9% on average for the extensive performance by using the proposed DTCCRA algorithm.
The rest of this paper is organized as follows. The system model is introduced in Section 2. The system utility maximization problem formulation and transformation are provided in Section 3. In Section 4, five subproblems are transformed by utilizing the Lyapunov optimization method. By solving the five subproblems, the DTCCRA algorithm is proposed in Section 5. The performance bound of the proposed DTCCRA algorithm is analyzed in Section 6. Simulation results are given in Section 7, and the paper is concluded in Section 8. The notations used in this paper are summarized in Table 1.

System Model
We first describe the system model of MEC, including the transmission model, SMD computation model, MEC server scheduling model, and queue models in this section. Figure 1 shows the proposed MEC offloading scenario. The system consists of one eNodeB which is connected to the MEC server via a fiber-wired link, and I SMDs; each SMD has one task to be executed. Let I = f1, ⋯, Ig denote the set of SMD indices, which can also be viewed as the set of task indices.

Transmission Model.
For the task offloading, we consider the conventional OFDMA system. W is the available bandwidth of the system, and the whole system bandwidth is divided into K subcarriers. Therefore, each subcarrier bandwidth is W/K. The set of subcarrier is denoted by K = f1, ::, Kg. Since the subcarriers are orthogonally allocated to the SMDs, there is no interference between them. We denote a binary variable α ik ðtÞ ∈ f0, 1g to indicate that subcarrier k is allocated to SMD i at slot t with α ik ðtÞ = 1, and α ik ðtÞ = 0 otherwise. Each slot duration is τ. We denote g ik ðtÞ as the channel state information (CSI) of SMD i on subcarrier k at slot t. Note that the CSI accounts for fast fading, path loss, shadow fading, antenna gain, and noise. p ik ðtÞ represents the transmission power of SMD i on subcarrier k at slot t. Therefore, the transmission bits of task in SMD i to the MEC server at slot t can be given by 2.2. SMD Computation Model. Each task can be partially executed on the SMD and MEC server. We denote s i as the number of required CPU-cycle frequency to accomplish one bit of task in SMD i. When the tasks are partially executed by the local SMDs, let f loc,i ðtÞ be the CPU-cycle frequency allocated to task in SMD i at slot t, and the maximal CPU-cycle frequency of SMD i is f max loc,i . Therefore, the bits of task executed by the local SMD i at slot t is given by [19] Wireless Communications and Mobile Computing The power consumption for the local SMD i at slot t is given by where κ loc is the conversion coefficient of SMDs, and it is determined by the CPU chip architecture [20].  cores. Let f ser,m ðtÞ represent the CPU-cycle frequency of CPU core m allocated to tasks at slot t, and the maximal CPU-cycle frequency of CPU core m be f max ser,m . Each CPU core can execute bits from different SMDs. Therefore, the bits of task in SMD i executed by the CPU cores in the MEC server at slot t should satisfy which means that the allocated CPU cycles should be no larger than the total CPU cycles in the MEC server. The power consumption for CPU cores in the MEC server at slot t is given by where κ ser is the conversion coefficient of the CPU core, and it is determined by the CPU chip architecture [20].

Queue Models.
In order to describe the task offloading process from the SMDs to the MEC server, we formulate two dynamic queue models in this system. The task offloading process is shown in Figure 2; firstly, the task is executed in the SMDs, including task computation and task transmission. And then, the task is executed in the MEC server [21]. For these two phases, we can formulate task execution queues in the SMDs and task execution queues in the MEC server, respectively. For the task execution queues in the SMDs. We denote HðtÞ = ½H 1 ðtÞ, ⋯, H i ðtÞ as the backlogs of the tasks executed by the SMDs at slot t. AðtÞ = ½A 1 ðtÞ, ⋯, A i ðtÞ is the generated bits vector in each SMD at slot t. Generally speaking, the generated bits of each task normally follows a truncated Poisson distribution with the average arrival rate λ i = E½A i ðt Þ. We denote B i as the maximum generated bits of task in SMD i. At each slot, the SMDs need to decide the number of bits from the newly generated bits to be stored in the buffers. Let r i ðtÞ ∈ ½0, A i ðtÞ denote the congestion control. Therefore, the task in the SMD i execution queue model can be expressed as where d sum,i ðtÞ = d trans,i ðtÞ + d loc,i ðtÞ.
For the task execution queues in the MEC server. We denote QðtÞ = ½Q 1 ðtÞ, ⋯, Q i ðtÞ as the backlogs of the tasks executed by the MEC server at slot t. According to Equation (1), we can obtain the task execution queues in the MEC server for the task in SMD i at slot t + 1 as

Problem Formulation and Transformation
In this section, we first formally formulate the stochastic problem with the objective function maximizing the system utility function with power, subcarrier, SMDs, and MEC server computation resource constraints. Furthermore, with the help of the Lyapunov optimization method, we transform the problem into an equivalent problem.

Queue Stability and Problem Formulation.
The objective function is to maximize the average system utility in this paper. U i ðr i Þ denotes the system utility function, which means executed bits benefit for the task in SMD i. U i ðr i Þ can be regarded as a function of nondecreasing concave continuous with the task in SMD i. A typical example of Uð⋅Þ is log ð⋅Þ. By using it, the proportional fairness among SMDs can be achieved. In this work, for the network stability, we first define the long-term time-average expectation of any quantity z as For example, H i can be viewed as the average execution queue backlogs for task in SMD i.
In order to model the impacts of joint congestion control and resource allocation on the system utility, the definitions of queue stability are given [22,23].  Figure 2: Dynamic queue models.

Wireless Communications and Mobile Computing
Let r = fr i ðtÞ, i ∈ I g, p = fp ik ðtÞ, i ∈ I , k ∈ Kg, α = fα ik ðtÞ, i ∈ I , k ∈ Kg, and f loc = f f loc,i ðtÞ, i ∈ I g denote the vectors of congestion control, SMD power, subcarrier, and CPUcycle frequency allocation, respectively. Let d ser = fd ser,i ðtÞ , i ∈ I g, f ser = f f ser,m ðtÞ, m ∈ Mg denote the vectors of bits of task execution and CPU-cycle frequency allocation in the MEC server, respectively. We denote the system operation as ρ = fr, p, α, f loc , d ser , f ser g.
In order to maximize the system utility and ensure the queue stability by jointly optimizing congestion control and resource allocation for delay-aware tasks, the problem can be formulated as where P max trans,i and P max loc,i are the maximum transmission power and task execution power of the SMD i, respectively. P av ser is the average execution power of the MEC server. Constraint (9b) corresponds to queue stability. Constraints (9c) and (9d) are the transmission power and task execution power constraints, respectively. Constraint (9e) ensures that the amount of admitted data cannot exceed the amount of arrived data. Constraint (9f) corresponds to SMD computation resources. Constraints (9g) and (9h) guarantee that one subcarrier cannot be allocated to more than one SMD. Constraints (9i) and (9j) are the MEC server executed bits of task constraints. Constraint (9k) is the MEC server computation resources. Constraint (9l) is the power constraint in the MEC server. Considering the long-term average expectation and binary variables [24], we transform the problem in the following subsection.

Problem
Transformation. It is difficult to handle problem (P1) since it involves maximizing the long-term average system utility. In this subsection, the Lyapunov optimization method is applied to transform problem (P1) as an equivalent problem [22]. The transformation can be achieved by introducing auxiliary variables γ i ðtÞ. Then, the corresponding virtual queues Z i ðtÞ are given by where the initial value Z i ðtÞ = 0. r i ðtÞ can be regarded as the executed bits of virtual queue Z i ðtÞ, and γ i ðtÞ can be regarded as the generated bits of virtual queue Z i ðtÞ, respectively. For the average power constraint (9l), we also define the virtual queues X i ðtÞ, which can be expressed as where P av ser and p ser ðtÞ can be regarded as the executed and generated bits of virtual queue X i ðtÞ, respectively.
We introduce γ = fγ i ðtÞ, i ∈ I g as the vector of auxiliary variables. Then problem (P1) can be transformed into the following equivalent problem Proposition 1. The optimal solution of problem (P1) can be turned into the optimal solution of problem (P2).
Proof. See Appendix A.
Since problem (P2) has a long-term average expectation and binary variables, it is hard to handle [24]. In the following section, we propose an efficient algorithm to solve problem (P2).

Problem Transformation
We take advantage of the Lyapunov optimization method to transform problem (P2) into five subproblems in this section.

Lyapunov Drift.
We define ZðtÞ and XðtÞ as the vector of virtual queues Z i ðtÞ and X i ðtÞ, respectively. ΘðtÞ is the combined vector of virtual queues and actual queues, which is given by The quadratic Lyapunov function can be written as [25] In order to show the stability property of the queuing systems, we employ the well-developed stability theory in 5 Wireless Communications and Mobile Computing Markov chains using the Lyapunov drift. Based on the Lyapunov function, we define the Lyapunov drift as the expected change in the Lyapunov function from one slot to the next, which is given by [25] Based on the virtual queues and actual queues above, the upper bound of ΔðΘðtÞÞ is derived in the following proposition [25].

Proposition 2.
According to the Lyapunov optimization method, the upper bound of ΔðΘðtÞÞ can be obtained from the following inequality: where and D is a constant.
Proof. See Appendix B.

Problem Transformation.
Instead of minimizing the upper bound of ΔðΘðtÞÞ directly, the drift-plus-penalty theory can be utilized to minimize the following "drift-pluspenalty" problem [26].
where V ≥ 0 represents an arbitrary control parameter, which can be used to control the system utility and delay trade-off. A larger V means that more emphasis is put on the system utility during the optimization. On the other hand, when V is small, queue stability carries more weight during the optimization [27]. Considering Equations (18a), (18b), (18c), (18d), (18e), (18f), (18g), (18h), (18i), (18j), and (18k) has a separable structure, we can transform it into five separate subproblems. The system utility maximization subproblem can be obtained by splitting γ i ðtÞ as Similarly, the congestion control subproblem can be obtained by splitting r i ðtÞ as The SMD computation resource allocation subproblem can be obtained by splitting f loc,i ðtÞ as The joint power and subcarrier allocation subproblem can be obtained by splitting p ik ðtÞ and α ik ðtÞ as 〠 i∈I The MEC server scheduling subproblem can be obtained by splitting d ser,i ðtÞ and f ser,m ðtÞ as

The Proposed Delay-Aware Task Congestion Control and Resource Allocation Algorithm
By solving the five separate subproblems in the last section, the DTCCRA algorithm is proposed.

System Utility Maximization
Subproblem. For the system utility maximization subproblem, we can transform Equations (19a) and (19b) as In order to solve Equations (24a) and (24b), the format of the system utility function is the key point. Aiming at offloading the tasks as many as possible, we can obtain the system utility function as where ω i is the weight of task in SMD i and x i is the maximum desired offloading ratio of task in SMD i [23]. In general, 0 ≤ x i ≤ 1 and 0 ≤ x i λ i ≤ B i . Therefore, the solution of Equations (24a) and (24b) is

SMD Congestion Control Subproblem.
For the SMD congestion control subproblem, we can transform Equations (20a) and (20b) as The optimal solution of Equations (27a) and (27b) is related to the queue backlogs of H i ðtÞ and Z i ðtÞ, which can be expressed as From Equation (28), we can find that if Z i ðtÞ ≥ H i ðtÞ, the newly generated bits can be admitted into the SMD i. On the contrary, if Z i ðtÞ < H i ðtÞ, the newly generated bits are dropped.

SMD Computation Resource Allocation Subproblem.
For the SMD computation resource allocation subproblem, we can transform Equations (21a), (21b), and (21b) as For Equations (29a), (29b), and (29c), when H i ðtÞ, τ, and s i are constant, the optimal SMD computation resource allocation is 5.4. Joint Power and Subcarrier Allocation Subproblem. The joint power and subcarrier allocation subproblem can be expressed as 〠 i∈I For problem (P3), the optimal solution is related to the queue backlogs of H i ðtÞ and Q i ðtÞ. If H i ðtÞ ≤ Q i ðtÞ, the optimal solution is p ik ðtÞ = 0 and α ik ðtÞ = 0. If H i ðtÞ > Q i ðtÞ, we analyze the subproblem as follows.
Problem (P3) is a mixed-integer nonlinear programming (MINLP) problem, in this subsection, we apply the timesharing and alternating methods to solve it [28,29].
Firstly, by utilizing the time-sharing method, we relax constraint (31d) as Secondly, problem (P3) can be addressed by alternately solving the following two subproblems. The first subproblem is to update the allocated power with fixed time-share values. The second subproblem is to update time-share values with fixed allocated power.

Proposition 3.
With determined time-share values, the power allocation of problem (P3) can be expressed as where ξ i ðtÞ is the Lagrange multiplier at slot t.
Proof. See Appendix C. p ik ðtÞ is instantaneous power; we denote q ik ðtÞ = α ik ðtÞ p ik ðtÞ as the average power allocated by SMD i on subcarrier k at slot t. With determined average power allocation values, the time-share variables of problem (P3) can be solved by the 7 Wireless Communications and Mobile Computing following problem: which is subject to the constraint (32).

Proposition 4. With determined average power allocation values, the time-share values of Equation (34) can be solved by
where u i ðyðtÞÞ is the marginal utility of SMD i and β k ðtÞ is the Lagrange multiplier at slot t.
Proof. See Appendix D.
Proposition 3 indicates that when the subcarrier is determined, the marginal utility of SMDs can be balanced by the optimal time-share values. Based on the above analysis, an iterative algorithm is proposed to solve Equation (35).
Firstly, we give feasible initial time-share values set when the subcarrier k is determined. Secondly, the time-share values can be obtained when q l ik ðtÞ is determined.
According to the results of two subproblems, a joint power and subcarrier allocation algorithm is proposed to solve problem (P3), which is summarized in Algorithm 1.

MEC Server Scheduling Subproblem.
For the MEC server scheduling subproblem, it can be represented as For problem (37a), (37b), (37c), and (37d), we can utilize the following proposition to solve it in closed form.

Proposition 5.
For any feasible f ser,m ðtÞ, the optimal solution for problem (37) is that at most, one SMD is scheduled at one slot, and the SMD being scheduled has the largest value of Q i ðtÞs −1 i . We denote the SMD index asi max I .
Proof. See Appendix E.
According to Proposition 5, problem (37a), (37b), (37c), and (37d) can be reformulated as s:t:d ser,i max f ser,m t ð Þ ∈ 0, f max Since Therefore, the optimal solution of f * ser,m ðtÞ is Based on Equations (4) and (40), the optimal solution for bits of task execution in the MEC server can be calculated by and d * ser,i ðtÞ = 0, i ≠ i max I .

Delay-Aware Task Congestion Control and Resource
Allocation Algorithm. By solving the five subproblems, the DTCCRA algorithm is proposed in Algorithm 2.
In the proposed DTCCRA algorithm, we first solve the system utility maximization subproblem, the solution γ i ðtÞ can be obtained. And then, we solve the SMD congestion control subproblem and SMD computation resource allocation subproblem to obtain the solution of r i ðtÞ and f loc,i ðtÞ. Furthermore, according to Algorithm 1, p ik ðtÞ and α ik ðtÞ can be obtained. At last, solving the MEC server scheduling subproblem, f ser,m ðtÞ and d ser,i ðtÞ can be obtained.

Performance Analysis
The performance bound of the proposed DTCCRA algorithm is analyzed in this section. Proposition 6. The proposed DTCCRA algorithm can achieve the bound of system utility as follows: where U * 1 is the maximal system utility of problem (P1). Equation (42) means that the system utility of the proposed DTCCRA algorithm can arbitrarily close to U * 1 by increasing the control parameter V.
Proof. Please refer to Appendix F.

Proposition 7.
The bound of the actual queue backlogs can be expressed as where ε is a parameter and D can be found in Equation (B.9).
Proof. See Appendix G.
Based on Proposition 6 and Proposition 7, we can conclude that the system utility and execution delay can achieve an ½Oð1/VÞ, OðVÞ trade-off.

Simulation
The performance of the proposed DTCCRA algorithm is evaluated in this section. There are 10 SMDs uniformly distributed over the cell. We utilize the path loss model as 31:5 + 40 log 10ðdÞ, where d is the distance between the SMDs and MEC server. The noise power spectral density is 4 × 10 −8 W/Hz. The slot duration is 1 ms. Both the maximum transmission power and task execution power of each SMD are set as 0.2 W. The maximal CPU-cycle frequency of each SMD is 100 MHz, s i = 737:5 cycle/bit, κ loc = 10 −27 [19]. The system includes 10 subcarriers, and each subcarrier bandwidth is 1 kHz. In addition, there are 8 CPU cores in the MEC server, and the maximal CPU-cycle frequency of each CPU core is 8 GHz. The average execution power of the MEC server is 5 W. κ ser = 10 −27 . The task average generated  Wireless Communications and Mobile Computing bits rate λ = 400 kbits/slot. The simulation results are obtained by averaging 500 randomly generated network topologies over 1000 slots. Figure 3 shows the total system utility versus different control parameter V. The total system utility increases with respect to the control parameter V at first. Because the larger V means that system utility is given more weight. However, with the increase of V, the improvement of total system utility is diminishing. Because the resources are limited, the system utility cannot increase all the time. Figure 4 shows the total backlogs versus different V. It can be observed that the total backlogs are linearly increased with V. Because more tasks wait in the queues for transmission, Proposition 6 and Proposition 7 can verify the observations. Combining Figures 3 and 4, we can achieve the tradeoff between the system utility and task backlogs. If we want to obtain higher system utility, the task backlogs will be higher and vice versa. Figure 5 shows the total system utility versus data arrival rate. As can be seen, the system utility is higher with a larger number of SMDs, which can be explained as multiuser diversity. Meanwhile, when the data arrival rate is 400 kbits/slot, the system utility is close to stability.
In order to verify the effectiveness of the proposed DTCCRA algorithm, the numerical results of the other four different algorithms are given. For the four different algorithms, we utilize the same algorithm in this paper to solve the system utility maximization subproblem, SMD congestion control subproblem, and SMD computation resource allocation subproblem. However, for the joint power and subcarrier allocation subproblem, and MEC server scheduling subproblem, the methods are different.
(i) Intelligent heuristic (IH) algorithm: based on the greedy principle, a fast and intelligent heuristic greedy algorithm is proposed to solve the joint power, subcarrier, and MEC server scheduling subproblem [30] (ii) Average power allocation algorithm: in this algorithm, for the joint power and subcarrier allocation subproblem, the subcarrier allocation can be obtained by Equation (35), the power is allocated averagely in each subcarrier at one slot. For the MEC server scheduling subproblem, the MEC server resources are averagely allocated to each task at one slot (iii) Average subcarrier allocation algorithm: in this algorithm, for the joint power and subcarrier allocation subproblem, the power allocation can be obtained    by Equation (33), the subcarrier is allocated averagely at one slot. For the MEC server scheduling subproblem, the MEC server resources are averagely allocated to each task at one slot (iv) Exhaustive search algorithm: in this algorithm, the joint power and subcarrier allocation subproblem can be obtained by the exhaustive search method. The MEC server scheduling subproblem utilized the same algorithm in this paper Figures 6 and 7 show the total system utility and backlog comparison of five different algorithms, which have the same trend as Figures 3 and 4; we can explain them for the same reasons. Compared with the IH algorithm, the backlogs of the proposed DTCCRA algorithm are decreased by 5.03% on average, and the system utility is increased by 3.9% on average. Meanwhile, compared with the exhaustive search algorithm, the backlogs of the proposed DTCCRA algorithm are only increased by 1.76% on average, and the system utility is decreased by 1.72% on average. Therefore, the proposed DTCCRA algorithm is effective. Figure 8 illustrates the total system utility versus SMD number. Due to the multiuser diversity, the system utility is higher with a larger SMD number. Compared with the exhaustive search algorithm, the system utility of the proposed DTCCRA algorithm only decreases by 1.97% on average. However, compared with the IH algorithm, the system utility increases by 4.97% on average when the SMD number grows from 8 to 12. Figure 9 illustrates the total system utility versus the maximal CPU-cycle frequency of each CPU core. The system utility is higher with a higher CPU-cycle frequency. With the increasing of CPU-cycle frequency, more tasks can be executed. Compared with the exhaustive search algorithm, the system utility of the proposed DTCCRA algorithm only decreases by 2.03% on average. However, compared with the IH algorithm, the system utility increases by 3.93% on average when the maximal CPU-cycle frequency of each CPU core grows from 6 GHz to 10 GHz.

Conclusion
In this paper, we formulated a joint congestion control and resource allocation problem with power, subcarrier, SMDs,  11 Wireless Communications and Mobile Computing and MEC server computation resource constraints to maximize the system utility. With the help of the Lyapunov optimization method, five subproblems are transformed. For the first three single variable subproblems, we can obtain the solutions directly. For the joint power and subcarrier allocation subproblem, the time-sharing and alternating methods were utilized. For the MEC server scheduling subproblem, we proposed an efficient algorithm. According to the results of five subproblems, the DTCCRA algorithm was proposed. Simulation results verify the effectiveness of the proposed DTCCRA algorithm through numerical analyses.