Dependent Task Scheduling and Offloading for Minimizing Deadline Violation Ratio in Mobile Edge Comp

Dependent Task Scheduling and Offloading for Minimizing Deadline Violation Ratio in Mobile Edge Computing Networks

  • 背景:移动边缘计算(MEC)系统可以为移动设备(MD)提供计算卸载服务,以处理具有任务依赖性要求的计算密集型应用,如增强现实(AR)、图像处理和人脸识别等。
  • 解决的问题:传统的计算卸载方案只考虑了单个应用或单个时隙的情况,没有充分利用多任务间的依赖性和相似性,也没有考虑到在线应用到达和系统可靠性的影响。
  • 方法:提出了一种基于任务迁移和合并的截止期违反率(DVR)最小化计算卸载方案(DVRMO-MM),该方案利用有向无环图(DAG)模型描述任务依赖性,并采用深度确定性策略梯度(DDPG)算法学习最优的卸载策略。
  • 贡献:DVRMO-MM方案可以有效地构建整体任务DAG,确定最优的任务执行顺序,并自适应地调整卸载策略,从而在多时隙MEC系统中显著降低系统DVR,并提高资源利用率和服务效率。

I、介绍

新兴的计算和通信服务爆炸式增长,推动了新的移动应用程序(AR、VR)的出现。

而计算资源有限的移动设备(MD)难以在本地完成这些应用,随之出现了移动边缘计算(MEC)系统。MEC服务器因其地理位置更靠近移动设备(MD),能克服传输延迟长、通信开销高的缺点,高效提供计算卸载服务。

在现实场景中,很多移动应用(如增强现实AR、图像处理和人脸识别等)都是延迟比较敏感和计算密集型的任务,而且应用内的各个任务之间具有相互依赖关系,这就需要按照他们的逻辑顺序来处理。

关于任务依赖的移动应用任务卸载,大多的工作是优化方向是缩短延迟,节约能源,以及实现延迟和能源消耗之间的权衡。

本文呢,主要解决下面这三个open issues

  • 当应用程序到达新的时隙,而以前的应用程序尚未完全完成且尚未到达其截止日期时,如何迁移和调度未完成的相关任务?
  • 当每个时间段有很多应用到达时,如何在不改变每个应用的任务依赖关系的情况下,去除重复并合并同类型的应用?

    在同一时隙中,可能会有相同类型的应用,有着相似的需求。这些应用中的任务就会出现重叠的

  • 如何在多核之间调度和卸载依赖任务,以最大限度地减少系统逾期率DVR,同时满足各种任务依赖要求?

    现有的工作都是关注传统的像延迟、能耗的服务需求,他们的目标也是增强个人的QoE。但由于实际应用的类型、依赖性和延迟约束的多样性,这些仅考虑个体需求的解决方案可能会大大降低系统的可靠性。(如果只考虑满足个别应用程序的需求,可能会忽视其他应用程序的需求,从而影响整个系统的稳定性和可靠性)最后会丢弃一些应用为了提高已完成应用的QoE,这也会导致较高的逾期率。

贡献
提出了一种具有任务迁移M和合并M功能的最小化DVR的计算卸载O方案(DVRMO-MM)

  • 给定每个时隙达到的应用数量,将DVR最小化问题等价转换为在给定时间内的最大化完成任务的数量。
  • 建立任务迁移与合并的模型,对一个时隙的任务构建总体的DAG。迁移,迁移上个时隙中有效但未完成的任务到当前时隙执行。合并,合并同一个时隙中相同类型的应用。
  • 一个基于迁移的多优先级任务排序算法(MMPTS),引入了多个任务优先级指标。
  • 基于MMPTS,问题转化为确定最佳执行顺序后的延迟最小化问题。为了处理不同类型应用程序的随机到达,提出了一种基于DDPG的任务卸载算法。同时,为了避免偏离任务依赖关系,在DDPG算法中设计了执行单元选择模块。
  • 系统DVR显著降低了60.34%∼70.3%。

II、相关工作

现有的工作可以分为三类:

  1. 最小化总的应用完成时间
  2. 最小化能量消耗
  3. 最小化能耗和执行时间的加权和

这三类现有的工作都是考虑到前面的那3个open issues,得到的解也是不贴近现实的次优解。

III、系统模型和问题表述

在这里插入图片描述

A.系统模型

系统由一个拥有丰富计算资源的多核AP 和 多个移动用户组成。

AP:有 ρ \rho ρ个核心处理器,可以 ρ \rho ρ个任务并行计算
MDs M = { 1 , … , m , M } \mathcal{M}=\{1,\ldots,m,M\} M={1,,m,M}。产生计算密集型的且具有依赖关系的任务(AR、图像处理、人脸识别服务)。由于AP的计算能力更为强大,MDs会把他们的具有依赖关系的任务卸载到AP。

1)多时隙系统模型

考虑的是在线的场景,只能知道当前时隙的到达的任务,
。总的时间范围是 T \mathcal{T} T,等分为 X X X份,每份的时长是 t d e f t_{def} tdef时隙的集合表示为 T = { t x , x = 1 , 2 , … , X } \mathcal{T}=\{t_x,x=1,2,\ldots,X\} T={tx,x=1,2,,X} t x = x t d e f t_x=x t_{def} tx=xtdef。每个时隙,用户 m m m会请求 K K K种应用,用 m k m_k mk来表示用户 m m m请求的类型为 k k k的应用。

2)DAG表示的任务依赖模型

在这里插入图片描述
图像的处理过程为例。它通常由一些相互依赖的任务组成,如图像预处理、特征提取、特征编码、数据分类。这些任务应该严格的按照这样的逻辑顺序执行。

对于 m k m_k mk这样的一个应用,其DAG表示为 G m , k x = ( N m , k x , E m , k x ) G_{m,k}^{x}=(\mathcal{N}_{m,k}^{x},\mathcal{E}_{m,k}^{x}) Gm,kx=(Nm,kx,Em,kx).
点集 N m , k x = { τ 1 , … , τ n , … , τ N } \mathcal{N}_{m,k}^{x}=\{\tau_{1},\ldots,\tau_{n},\ldots,\tau_{N}\} Nm,kx={τ1,,τn,,τN}表示这应用中的任务, L n L_n Ln表示任务 τ n \tau_n τn的计算量;
边集 ( τ n − 1 , τ n ) ∈ E m , k x (\tau_{n-1},\tau_{n})\in\mathcal{E}_{m,k}^{x} (τn1,τn)Em,kx,即任务 τ n \tau_n τn依赖 τ n − 1 \tau_{n-1} τn1产生的结果。

对于一些复杂点的应用,可能有多个出口任务,要这些全部的出口任务都完成那么该应用才完成,所以会给应用加一个虚拟的入口和出口节点

截止时间 D n D_n Dn表示任务 τ n \tau_n τn也是整个应用的 m k m_k mk的截止时间

CPU周期 C n C_n Cn 定义为处理一位任务 τ n \tau_n τn所需的中央处理单元 (CPU) 周期数。

3)部分任务卸载模型

对于一个依赖任务,他的不同在于具有外部的依赖关系。但是,这个任务本身的计算量通常是按位独立的,就像一个独立的任务。

现有的文献表明,部分卸载相比二元卸载更加的灵活,并且能获得更好的服务性能,所以这篇文章采用的是部分卸载

α n ∈ [ 0 , 1 ] \alpha_n\in[0,1] αn[0,1]表示卸载变量 α n L n \alpha_nL_n αnLn是本地处理的部分, ( 1 − α n ) L n (1-\alpha_n)L_n (1αn)Ln表示卸载到AP的部分。

结果数据,每个任务产生的数据一般都很小,所以就把他任务是一个常量 ϑ \vartheta ϑ

B.任务迁移与合并模型

在这里插入图片描述

1)第一阶段 任务迁移

在考虑延时约束的情况下,从上一个时隙迁移未完成的有效任务 到 当前的时隙继续执行。这样不丢弃的原则可以极大的减小DVR

2)第二阶段 任务去重与合并

在一步在当前时隙完成,他会考虑上一个时隙迁移过来的任务和当前任务种类的相似性。

比如,现在有俩个用户, m m m m ′ m^{\prime} m。他们都产生了3个应用,种类分别是A、B、C。但是由于个人的需求不一样,在相同的应用中,会有重叠的任务和不一样的任务。会对这些重叠的任务进行合并, G merge x , k = ⋃ t x , k , ∀ m G m , k x . \mathscr{G}_{\text{merge}}^{x,k}=\bigcup_{t_{x},k,\forall m}G_{m,k}^{x}. Gmergex,k=tx,k,mGm,kx. 即对时隙x产生的相同应用进行合并。

3)第三阶段 整体任务DAG建模

对上一阶段未完成的和新到达的任务进行整理:
G t o t a l x = G u n c o m x − 1 + ∪ ⁡ t x , ∀ k G m e r g e x , k = G u n c o m x − 1 + ∪ ⁡ t x , ∀ k , ∀ m G m , k x \begin{aligned} \mathcal{G}_{\mathrm{total}}^{x}& =\mathcal{G}_{\mathrm{uncom}}^{x-1}+\underset{t_{x},\forall k}{\operatorname*{\cup}}\mathcal{G}_{\mathrm{merge}}^{x,k} \\ &=\mathcal{G}_{\mathrm{uncom}}^{x-1}+\operatorname*{\cup}_{t_{x},\forall k,\forall m}G_{m,k}^{x} \end{aligned} Gtotalx=Guncomx1+tx,kGmergex,k=Guncomx1+tx,k,mGm,kx

注意不会对上一个时间未完成的应用进行合并
因为它们可能侧重于不同的时间和空间方面的结果。如果进行去重或合并,可能会损失某些应用程序所需的特定信息。

下面是一些定义:

  1. 执行顺序:在一个时隙的整体任务中,对于所有的任务进行优先级排序,形成一个执行序列 O x \mathcal{O}_x Ox.怎么形成的,在后面会讲。然后对于每个任务,可以求出他的前序任务, p r e o ( O x [ τ n ] ) preo(\mathcal{O}_x[\tau_n]) preo(Ox[τn]).
  2. 等待时间:即一个任务最早收到全部他所需要的输入数据的时刻,将要开始执行计算的时刻。用 W m , n l o c W_{m,n}^{loc} Wm,nloc W i , n A P W_{i,n}^{AP} Wi,nAP,i是AP的某一个计算核心
  3. 完成时间 F n F_n Fn表示任务 τ n \tau_n τn的所有工作量在延迟时间内算完成的时间

C.本地计算模型

1、本地计算时间 t m , n l o c = α n C n L n f m . t_{m,n}^\mathrm{loc}=\frac{\alpha_{n}C_{n}L_{n}}{f_{m}}. tm,nloc=fmαnCnLn.

f m f_m fm是本地设备的平均频率

2.1、还有一部分是在AP执行的,需要把n-1任务结果数据传到执行n任务的本地设备m上:
下行速度: R A m d o w n = B l o g 2 ( 1 + p A P h A m σ 2 ) R_{Am}^\mathrm{down}=B\mathrm{log}_2(1+\frac{p_\mathrm{AP}h_{Am}}{\sigma^2}) RAmdown=Blog2(1+σ2pAPhAm)

传输时间: t m , n − 1 d o w n = ϑ R A m d o w n t_{m,n-1}^{\mathrm{down}}=\frac{\vartheta}{R_{Am}^{\mathrm{down}}} tm,n1down=RAmdownϑ

2.2、还可能前面任务的本地执行部分会在设备 m ′ m' m,传输速度和传输时间分别是:
速度: R m ′ m = B l o g 2 ( 1 + p m ′ g m ′ m σ 2 ) R_{m^{\prime}m}=B\mathrm{log}_{2}(1+\frac{p_{m^{\prime}}g_{m^{\prime}m}}{\sigma^{2}}) Rmm=Blog2(1+σ2pmgmm)
时间: t m , n − 1 m ′ = ϑ R m ′ m t_{m,n-1}^{m'}=\frac{\vartheta}{R_{m'm}} tm,n1m=Rmmϑ

至此我们可以到得,任务 τ n \tau_n τn的等待时间:
W m , n l o c = max ⁡ { F n − 1 , max ⁡ τ n ′ ∈ p r e o ( O x [ τ n ] ) η m , n ′ ( W m , n ′ l o c + t m , n ′ l o c ) } + g ( m , τ n ) W_{m,n}^{\mathrm{loc}}=\operatorname*{max}\left\{F_{n-1},\max_{\tau_{n^{\prime}}\in\mathrm{preo}(\mathcal{O}_{x}[\tau_{n}])}\eta_{m,n^{\prime}}\left(W_{m,n^{\prime}}^{\mathrm{loc}}+t_{m,n^{\prime}}^{\mathrm{loc}}\right)\right\}+g(m,\tau_{n}) Wm,nloc=max{Fn1,τnpreo(Ox[τn])maxηm,n(Wm,nloc+tm,nloc)}+g(m,τn)

什么时候可以开始算:
即 获得计算资源时间 与 获得数据资源时间 的最晚时间
1、需要我前面依赖的任务算完即 F n − 1 F_{n-1} Fn1.
2、设备需要完成所有已分配的任务,需要把分配在设备m上的且在任务n前面的任务都执行完,即获得CPU资源的时间。
3、算完之后还要把结果都发来,即 F n − 1 + g ( m , τ n ) F_{n-1} +g(m,\tau_n) Fn1+g(m,τn)

为什么不把发送的时间加在 F n − 1 F_{n-1} Fn1后面,可能是它只能算或者只能发,不能边算边发。

为什么内部的max不直接是 F n ′ F_{n'} Fn,而是 W W W + t l o c t^{loc} tloc,因为 F n F_n Fn是AP和本地算完的最晚时间,这里只是想知道本地计算资源的释放时间。

D.计算卸载和边缘计算模型

  • 卸载速率: R m A u p = B l o g 2 ( 1 + p m h m A σ 2 ) R_{mA}^{\mathrm{up}}=B\mathrm{log}_{2}(1+\frac{p_{m}h_{mA}}{\sigma^{2}}) RmAup=Blog2(1+σ2pmhmA)
  • 卸载时间: t m , n o f f = ( 1 − α n ) L n R m A u p t_{m,n}^\mathrm{off}=\frac{(1-\alpha_n)L_n}{R_{mA}^\mathrm{up}} tm,noff=RmAup(1αn)Ln
  • 结果数据发送时间: t m , n − 1 u p = ϑ R m A u p t_{m,n-1}^\mathrm{up}=\frac{\vartheta}{R_{mA}^\mathrm{up}} tm,n1up=RmAupϑ
  • AP端执行时间: t i , n A P = ( 1 − α n ) C n L n f A P i t_{i,n}^{\mathrm{AP}}=\frac{(1-\alpha_n)C_nL_n}{f_{\mathrm{AP}}^i} ti,nAP=fAPi(1αn)CnLn
  • AP的等待时间: W i , n A P = max ⁡ { F n − 1 , max ⁡ τ n ′ ∈ p r e o ( O x [ τ n ] ) γ i , n ′ ( W i , n ′ A P + t i , n ′ A P ) } + t m , n − 1 u p + t m , n o f f , ∀ m ∈ M , W_{i,n}^{\mathrm{AP}}=\max\left\{F_{n-1},\max_{\tau_{n'}\in\mathrm{preo}(\mathcal{O}_x[\tau_n])}\gamma_{i,n'}\left(W_{i,n'}^{\mathrm{AP}}+t_{i,n'}^{\mathrm{AP}}\right)\right\}+t_{m,n-1}^{\mathrm{up}}+t_{m,n}^{\mathrm{off}},\forall m\in\mathcal{M}, Wi,nAP=max{Fn1,τnpreo(Ox[τn])maxγi,n(Wi,nAP+ti,nAP)}+tm,n1up+tm,noff,mM,

E.问题表述

目标是最小化在给定时间范围 T 的延迟限制内未完全完成的应用程序的数量 = 最大化满足长度为 t d e f t_{def} tdef 的给定 X 时隙的延迟约束的已完成应用程序的数量。
此处给出完成时间 F n F_n Fn的表述: F n = max ⁡ { W m , n l o c + t m , n l o c , W i , n A P + t i , n A P } F_n=\max\{W_{m,n}^\mathrm{loc}+t_{m,n}^\mathrm{loc},W_{i,n}^\mathrm{AP}+t_{i,n}^\mathrm{AP}\} Fn=max{Wm,nloc+tm,nloc,Wi,nAP+ti,nAP}
所以,应用 m k m_k mk的完成时间就是 max ⁡ { F n , ∀ τ n ∈ G m , k x } \max\{F_{n},\forall\tau_{n}\in G_{m,k}^{x}\} max{Fn,τnGm,kx}
一个应用完成的指标就是:
F m , k x ′ = δ m , k x ′ ⋅ ∏ ∀ τ n ∈ G m , k x μ n x ′ \mathcal{F}_{m,k}^{x'}=\delta_{m,k}^{x'}\cdot\prod_{\forall\tau_n\in G_{m,k}^x}\mu_n^{x'} Fm,kx=δm,kxτnGm,kxμnx

μ \mu μ表示任务n在时隙x’已完成,即 F n ≤ x ′ ⋅ t d e f F_n\leq x'\cdot t_{def} Fnxtdef
辅助变量 δ \delta δ一开始等于1,直到所有的 μ = 1 \mu=1 μ=1后, δ \delta δ等于0,也就是说只会存在一个时隙, F m , k x ′ \mathcal{F}_{m,k}^{x'} Fm,kx等于1

所以,在某一时刻应用的完成个数是: F ^ x ′ = ∑ m = 1 M ∑ k = 1 K F m , k x ′ \widehat{\mathcal{F}}^{x'}=\sum_{m=1}^{M}\sum_{k=1}^{K}\mathcal{F}_{m,k}^{x'} F x=m=1Mk=1KFm,kx

得到问题表述:
在这里插入图片描述
下面就是用基于迁移的多优先级任务排序(MMPTS) 算法,得到最大化完成数量的执行顺序 O x ∗ \mathcal{O_x^*} Ox,再用得到的顺序使用基于DDGP的任务卸载算法去解决计算卸载问题,然后获得执行 O x ∗ \mathcal{O_x^*} Ox中每个任务最小时间的卸载方案。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lawey#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值