CN114610503A - 边缘计算中基于任务图整体资源需求的多应用在线计算卸载资源调度方法和系统 - Google Patents

边缘计算中基于任务图整体资源需求的多应用在线计算卸载资源调度方法和系统 Download PDF

Info

Publication number
CN114610503A
CN114610503A CN202210366936.0A CN202210366936A CN114610503A CN 114610503 A CN114610503 A CN 114610503A CN 202210366936 A CN202210366936 A CN 202210366936A CN 114610503 A CN114610503 A CN 114610503A
Authority
CN
China
Prior art keywords
task
application
edge
edge computing
linked list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210366936.0A
Other languages
English (en)
Inventor
柳佳刚
潘智斌
曹水莲
王鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Institute of Technology
Original Assignee
Hunan Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hunan Institute of Technology filed Critical Hunan Institute of Technology
Priority to CN202210366936.0A priority Critical patent/CN114610503A/zh
Publication of CN114610503A publication Critical patent/CN114610503A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

边缘计算中基于任务图整体资源需求的多应用在线计算卸载资源调度方法和系统,具体而言,是由需要为应用进行计算卸载的用户设备先根据当前移动边缘计算中边缘计算设备的负载状态和要卸载执行的应用的任务图结构生成一个离线的任务分配映射表,系统再从用户的角度,将满足每个用户的离线任务分配方案作为对计算资源的总需求,从最大化用户应用的总体价值角度,于当前收到的卸载请求集合中选择一个用户请求,并基于该用户的离线分配映射,将应用的任务全部分配到边缘计算网络的对应计算设备上。本发明中所采用的计算资源分配方法在应用的总价值、平均执行跨度和平均成功率方面均表现出较佳的效果,综合来看,其总体测试结果要明显优于现有的其它方法。

Description

边缘计算中基于任务图整体资源需求的多应用在线计算卸载 资源调度方法和系统
技术领域
本发明涉及移动计算和物联网应用处理技术领域,特别涉及一种边缘计算中基于任务图整体资源需求的多应用在线计算卸载资源调度方法和系统。
背景技术
为了使智能移动设备能高效地执行功能丰富的复杂应用程序,在计算卸载技术的支持下,移动设备可以利用邻近用户的边缘计算设备扩展移动设备的计算能力,提高用户体验。因此各种被部署在移动网络边缘的小微型计算设备可以联合起来形成边缘云(Edgecloud)为用户提供快捷高效的计算服务。由于边缘云的计算资源相对远端云而言,在资源上仍然是受限的,因此当边缘云需要同时服务许多用户时,用户在运行应用的截止期限约束下不可避免地会竞争边缘云的有限资源。如果边缘云不能为用户有效地分配计算资源,对资源的竞争必然会严重降低用户的体验,甚至会形成资源的浪费。
虽然最新的一些工作研究了在边缘云上多用户如何卸载DAG任务的问题,但是这些工作提出的解决方案主要是根据用户释放卸载请求的优先级为用户分配计算资源,并没有考虑用户的偏好,这可能使用户无法获得满意的效用。此外,这些工作为了能够感知边缘云中所有计算服务的当前负载状况,是根据就绪任务的状态做出任务调度决策,而忽略了任务图的完整结构信息。由于缺乏应用的完整信息,这些工作给出的是一种短视优化策略,这可能限制了计算卸载的性能。
发明内容
本发明的目的之一是提供一种用于边缘计算网络的多应用DAG任务在线计算卸载的资源调度方法,通过该方法将每一个应用的DAG任务对计算资源的整体需求情况和边缘云的当前负载状态联合起来考虑,避免产生短视优化,并有效分配边缘云的计算资源,最大化应用的平均价值。
为了实现上述目的,本发明采用如下技术方案:边缘计算中基于任务图整体资源需求的多应用在线计算卸载资源调度方法,包括以下步骤:
S1.用
Figure BDA0003586245050000021
表示要执行计算卸载的应用n对应的DAG模型,其中,
Figure BDA0003586245050000022
Figure BDA0003586245050000023
分别为应用n的任务集合和有向边集合,
Figure BDA0003586245050000024
中任务的总数
Figure BDA0003586245050000025
应用n中的一个任务为
Figure BDA0003586245050000026
其中i表示集合
Figure BDA00035862450500000218
中的第i个任务,任务tni的计算负载量表示成δni
S2.给应用n分别增加两个计算负载量为0的伪节点作为入口和出口,即
Figure BDA0003586245050000027
Figure BDA0003586245050000028
Figure BDA0003586245050000029
在集合
Figure BDA00035862450500000210
中的编号分别用0和In+1表示,且从
Figure BDA00035862450500000211
发出的有向边和进入
Figure BDA00035862450500000212
的有向边都分别赋予一个数据传输量,其中,
Figure BDA00035862450500000213
出边的传输量表示要从用户设备上卸载的应用数据量,其数值大小表示为
Figure BDA00035862450500000214
Figure BDA00035862450500000215
表示
Figure BDA00035862450500000216
的后继;
Figure BDA00035862450500000217
入边的数据传输量表示要传回用户设备的结果数据量,其数值大小表示为
Figure BDA0003586245050000031
Figure BDA0003586245050000032
代表
Figure BDA0003586245050000033
的前驱;
S3.根据应用n的DAG结构计算每个任务的优先级;
S4.构建一个用于记录算出的部分关键路径——PCP的空集
Figure BDA0003586245050000035
,根据计算出的优先级为应用n的DAG结构计算PCP路径,将获得的PCP路径存放在集合
Figure BDA0003586245050000036
中,并用
Figure BDA0003586245050000037
表示集合
Figure BDA0003586245050000038
包含的PCP路径的数目;
S5.根据所有边缘计算设备的处理能力和单位时间执行开销,将集合
Figure BDA0003586245050000039
中的每条PCP路径分配到为应用卸载生成的离线分配映射表
Figure BDA00035862450500000310
中;所述离线分配映射表
Figure BDA00035862450500000311
其数据结构为链表
Figure BDA00035862450500000312
每一条链表
Figure BDA00035862450500000313
都与一个边缘计算设备m相对应,将应用n的每条PCP路径都映射到链表
Figure BDA00035862450500000314
中,由所有链表构成映射到离线分配映射表
Figure BDA00035862450500000315
S6.用
Figure BDA00035862450500000316
表示执行计算卸载的应用向某一边缘计算设备mn发送的计算卸载请求,其中rn为应用的卸载请求释放时间,ln为截止期限,bn为应用在边缘计算网络上成功处理完成的期望开销,
Figure BDA00035862450500000317
是应用的DAG结构,σn是应用在申请的计算资源上能成功执行完的预计处理时间;
S7.计算各计算卸载请求的期望开销权值μn=bnn,并把各计算卸载请求按照μn值升序排列一个队列
Figure BDA00035862450500000318
中;
S8.从
Figure BDA00035862450500000319
中找出μn值最大的请求
Figure BDA00035862450500000320
并读取出其对应应用n的离线分配映射表
Figure BDA00035862450500000321
S9.遍历离线分配映射表
Figure BDA00035862450500000322
中与每个边缘计算设备m相对应的链表
Figure BDA00035862450500000412
并把链表上元素
Figure BDA0003586245050000041
对应的任务分配到边缘计算设备m的计算队列上。
在步骤S3中,按下式计算应用n中的任务
Figure BDA0003586245050000042
的优先级:
Figure BDA0003586245050000043
其中,
Figure BDA0003586245050000044
表示边缘计算网络中所有计算设备的平均数据传输率;
Figure BDA0003586245050000045
是边缘计算网络中所有计算单元的平均处理能力。
在步骤S4中,使用SearchPCP算法递归地计算PCP路径。
进一步地,计算PCP路径过程中,使用已标记任务来辅助标定任务,所述已标记任务是在计算PCP的过程中已经被标记过的任务,对于给定的应用n,初始时伪节点
Figure BDA0003586245050000046
Figure BDA0003586245050000047
始终当作已标记任务,其它任务都当作未标记的任务;并用H(tni)表示任务tni的一个特定子集,在该特定子集中,每一个任务都不是已标记任务,但每个任务的父任务都是已标记任务;对于一个已标记任务tni,如果其子任务tnj在集合H(tni)中有最高的优先级,那么将该子任务tnj作为关键子任务,并将已标记任务tni的关键子任务表示为Hcri(tni);
之后再从入口节点
Figure BDA0003586245050000048
开始使用SearchPCP算法递归地计算PCP,并把为应用n计算出的PCP存入集合
Figure BDA00035862450500000413
,节点
Figure BDA0003586245050000049
Figure BDA00035862450500000410
不在集合
Figure BDA00035862450500000414
中。
在步骤S5中,链表
Figure BDA00035862450500000419
有p个元素,初始时,
Figure BDA00035862450500000420
为带头结点
Figure BDA00035862450500000421
的空链表并且边缘计算设备m的可用时间Rm记录在
Figure BDA00035862450500000422
中;
Figure BDA00035862450500000411
其中,Q(m)表示边缘计算设备m的计算队列,tn′,i′为在Q(m)中的一个等待任务,
Figure BDA0003586245050000051
表示任务tn′i′的完成时间,其一般化形式为
Figure BDA0003586245050000052
Figure BDA0003586245050000053
为任务tni的完成时间;
若任务tni为作为入口或出口的伪任务,则其按下式计算:
Figure BDA0003586245050000054
在式(3)中,第一个条件下,rn是应用n的卸载请求的释放时间,故其直接就是伪任务
Figure BDA0003586245050000055
的完成时间;第二个条件表示伪任务
Figure BDA0003586245050000056
需要收到发送回应用n的结果数据;
若任务tni不是伪任务,则
Figure BDA0003586245050000057
由下式计算:
Figure BDA0003586245050000058
其中,R(ani)表示要执行任务tni的边缘设备m在分配规划ani下准备执行tni的时间,
Figure BDA0003586245050000059
Figure BDA00035862450500000510
表示任意两个依赖任务tni和tnj在边缘计算设备m的网络环境中的数据传输时间,其值根据下式计算:
Figure BDA00035862450500000511
其中,
Figure BDA00035862450500000512
Figure BDA00035862450500000513
是应用n所对应的用户设备和其所属无线信号覆盖区域的边缘计算设备mn之间的传输率;
将链表
Figure BDA00035862450500000614
中的一个元素用一个二元组
Figure BDA0003586245050000061
表示,其中,
Figure BDA0003586245050000062
Figure BDA0003586245050000063
分别为
Figure BDA00035862450500000615
第ψ个元素中对应的任务tni的预计开始时间和预计完成时间,
Figure BDA0003586245050000064
按下式计算:
Figure BDA0003586245050000065
其中,ψ'是链表
Figure BDA00035862450500000616
中任务tnj的表位置编号,若
Figure BDA00035862450500000617
Figure BDA00035862450500000618
为同一个链表,即m=m′,则
Figure BDA0003586245050000066
Figure BDA0003586245050000067
是边缘计算设备m根据任务tni在链表
Figure BDA00035862450500000619
的排序能够执行任务tni的就绪时间,其值按下式计算:
Figure BDA0003586245050000068
其中,p≠0表示链表
Figure BDA00035862450500000620
不是空表,若p=0,则表示链表
Figure BDA00035862450500000621
仅有一个头结点
Figure BDA00035862450500000622
Figure BDA00035862450500000623
表示在链表
Figure BDA00035862450500000624
上排在任务tni之前的子链表,ψ-1是子链表
Figure BDA00035862450500000625
的长度,i'是记录在链表元素ζ中的任务tni′的任务编号;当链表
Figure BDA00035862450500000626
不是空表时,
Figure BDA0003586245050000069
的计算值由子链表
Figure BDA00035862450500000627
上最后的任务决定;链表
Figure BDA00035862450500000628
上任务tni的预计完成时间通过下式计算:
Figure BDA00035862450500000610
在链表
Figure BDA00035862450500000629
的计算中,按下式为每个任务tni计算一个最迟完成时间
Figure BDA00035862450500000611
Figure BDA0003586245050000071
其中,ρmax表示边缘设备网络能提供的最大处理能力,
Figure BDA0003586245050000072
表示所有边缘服务设备之间的平均传输率,ln是应用n正常执行完毕必须要满足的截止期限。
进一步地,在链表
Figure BDA00035862450500000710
的计算中,是将应用n的任务映射到各个边缘计算设备m相对应链表
Figure BDA00035862450500000711
上的目标位置,所述目标位置是从边缘设备m对应的链表
Figure BDA00035862450500000712
头节点开始遍历所找出的第一个可以放置任务tni的位置,所述目标位置满足以下条件:
一、tni
Figure BDA00035862450500000713
的第ψ个元素上的预计开始时间满足下式:
Figure BDA0003586245050000073
Figure BDA0003586245050000074
其中,j和j'分别是tnj和tnj′在集合
Figure BDA0003586245050000075
中的编号,τ是整个系统的当前时间,并且tnj和tnj′分别记录在链表的第ψ-1和第ψ+1元素上;式(10)的第一个条件表示tni被放置在
Figure BDA00035862450500000714
的第一个元素上,式(11)的第一个条件表示tni被添加在
Figure BDA00035862450500000715
的最后一个元素上;
二、若
Figure BDA0003586245050000076
不满足式(11),则其应当满足下式:
Figure BDA0003586245050000077
其中
Figure BDA0003586245050000078
Figure BDA0003586245050000079
是应用n中所有任务的最迟完成时间的最大值;上述式中,ψ=1表示紧跟链表
Figure BDA00035862450500000716
头节点的位置是目标位置,ψ=p+1表示链表
Figure BDA0003586245050000088
的最后一个节点是目标位置。
具体而言,是按以下步骤把应用n在链表
Figure BDA0003586245050000089
中的任务映射到离线分配映射表
Figure BDA00035862450500000810
中:
S501.设置一个计数器k,初值设为1;
S502.从应用n的PCP构成的集合
Figure BDA00035862450500000811
中取出第k条PCP路径,并设置三个存储变量m*、f、
Figure BDA00035862450500000812
,其中f初值为无穷大;用m表示设备集合
Figure BDA00035862450500000813
中设备的计数器,初值设为1;若集合
Figure BDA00035862450500000814
中仍有PCP路径,执行步骤S503,否则执行步骤S508;
S503.从设备集合中取出第m个设备,生成一个新的空链表
Figure BDA00035862450500000815
当设备集合不为空时执行步骤S504,否则执行步骤S507;
S504.依次取出第k条PCP路径上的每个任务tni,对于每个任务tni,遍历第m个设备所对应的链表
Figure BDA00035862450500000816
并计算
Figure BDA0003586245050000081
Figure BDA0003586245050000082
然后将元素
Figure BDA0003586245050000083
添加到链表
Figure BDA00035862450500000817
的末尾;
S505.若
Figure BDA0003586245050000084
的值小于当前变量f,则用其当前值替换原变量f的值,并将此时对应的链表
Figure BDA00035862450500000818
替换原存储变量
Figure BDA00035862450500000819
中的记录,再将当前m的值替换m*中的记录,
Figure BDA0003586245050000085
为链表
Figure BDA00035862450500000820
中最大的
Figure BDA0003586245050000086
值;否则f、
Figure BDA00035862450500000821
、m*中的原始值不变;
S506.将m的值增加1后,继续执行步骤S503;
S507.根据计算的目标位置,把当前变量
Figure BDA00035862450500000822
存放的链表中的任务插到链表
Figure BDA0003586245050000087
所对应的位置上;将计数器k增加1后,继续执行步骤S502;
S508.结束任务的分配。
在步骤S6中,预计处理时间σn按下式计算:
Figure BDA0003586245050000091
其中,
Figure BDA0003586245050000092
Figure BDA0003586245050000093
是由离线映射计算出的预计完成时间和开始时间,并且
Figure BDA0003586245050000094
是应用n所对应的用户设备和边缘计算设备m'之间的传输时间,边缘计算设备m'需满足其上任务tni′
Figure BDA0003586245050000095
是所有
Figure BDA0003586245050000096
中取值最小的。
另外,本发明还涉及一种边缘计算中基于任务图整体资源需求的多应用在线计算卸载系统,其包括分布在移动网络边缘的多个边缘计算设备m,所述边缘计算设备m通过网络连接形成边缘云,所述边缘云中至少有一边缘计算设备m作为协调器,所述协调器周期性地获取系统状态信息并发送给所有边缘计算设备m,每一边缘计算设备m均对应独立的无线覆盖区域并通过无线网络为其所覆盖区域内的用户设备提供在线计算卸载服务,该系统根据上述多应用在线计算卸载资源调度方法分配计算资源。
上述边缘计算中基于任务图整体资源需求的多应用在线计算卸载系统执行计算卸载的过程包括:
应用n要卸载计算任务时,通过其所对应的用户设备向所处无线覆盖区域的边缘设备mn注册计算卸载的请求;
s1.应用n要卸载计算任务时,通过其所对应的用户设备向所处无线覆盖区域的边缘设备mn注册计算卸载的请求;
s2.边缘计算设备mn基于正交频分多路访问技术为成功注册的用户设备分配无线信道并发送系统状态信息,所述系统状态信息包括所有边缘计算设备的处理能力、单位时间的执行成本和各边缘计算设备间的平均数据传输率;
s3.用户设备基于接收到的当前系统状态信息以及要卸载执行的应用的任务图结构为应用n创建离线分配映射表
Figure BDA0003586245050000101
并根据生成的离线映射表
Figure BDA0003586245050000102
确定计算卸载的相关参数;
s4.用户设备向边缘计算设备mn发送卸载请求;
s5.协调器从各边缘计算设备m收集当前所有要进行计算卸载的用户请求,根据当前整个网络中计算设备的负载量和用户应用资源请求的状况,从用户卸载请求集合中选出合适的用户,并根据用户的离线映射表
Figure BDA0003586245050000103
为该用户的DAG任务做出实际的任务调度决策,分配计算资源;
s6.应用n处理完毕后,边缘计算设备mn删除其注册信息,同时释放为其分配的无线信道;
s7.当有一个新的用户卸载请求到达,或者任意一个应用在系统中全部处理完成时,重复执行步骤s5,直到所有用户的卸载请求全部处理完毕。
本发明为移动边缘计算中DAG任务的卸载提出了一种基于任务图整体资源需求进行计算资源分配的方法,每一个移动用户根据当前边缘计算系统中各个边缘计算设备的计算负载量、网络的数据传输能力,先基于部分关键路径的启发式策略在自己的设备上产生一个离线分配映射表,当多用户同时卸载应用时,本发明能够根据用户的价值启发式选取合适的用户卸载请求,并根据被选中用户的离线分配映射表将应用的任务分配到对应的边缘计算设备上。本发明根据应用对所需计算资源的整体需求进行计算资源的调度分配,解决了应用优化执行的短视优化问题;同时通过应用的价值来优先调度执行用户的应用,在应用的价值最大化、应用执行成功率以及最小化应用的平均执行跨度方面都具有优势。
附图说明
图1为基于任务图整体资源需求的多应用在线计算卸载系统的框架;
图2为实施例中构建的服务于移动用户的边缘计算网络的示意图;
图3为在不同应用到达率下,本发明所涉AU-PCP方法与现有方法在进行计算资源分配时获得的总价值的比较;
图4和图5为在不同应用到达率下本发明所涉AU-PCP方法与现有方法在处理应用的平均完成时间的比较;
图6为在不同应用到达率下本发明所涉AU-PCP方法与现有方法在处理应用时的成功率的比较。
具体实施方式
为了便于本领域技术人员更好地理解本发明相对于现有技术的改进之处,下面结合附图和实施例对本发明作进一步的描述。
图1示出了边缘计算网络中多应用在线计算卸载系统的框架结构,其包括有很多分布部署在移动网络边缘的不同边缘计算设备,这些边缘设备通过网络连接形成与用户更接近的边缘云。每一个边缘计算设备都有自己独立的无线覆盖区域,能为其所覆盖区域内的用户设备(也可以理解为移动用户)提供服务支持,每个边缘计算设备负责接收自身服务区域内的移动设备发来的计算卸载请求和上传的应用数据,并在其自身服务区域内的移动设备与其他服务区域的边缘计算设备进行数据传输时作为中转站,边缘云可以向移动用户提供空闲的计算资源,移动用户随时可以利用计算卸载技术将任务卸载到边缘云上提高移动应用的处理速度。边缘云中至少有一个计算设备承担协调器功能(如移动网络的宏基站),它能够周期性地从分布部署的边缘计算设备上收集最新的状态信息(状态信息包括每个边缘计算设备上计算单元的可用性,边缘计算设备之间的平均数据传输率),然后协调器会把这些收集到的信息再发布给所有的边缘计算设备,边缘设备收到协调器发布来的信息后又会将那些与移动应用进行计算卸载相关的数据转发给移动用户。
在图1的基础上,本实施例使用开源的云计算仿真器CloudSim和边缘计算仿真器EdgeCloudSim搭建了一个边缘计算系统仿真平台。实验环境中边缘云包含四个边缘计算设备,其实现的场景如图2所示。图2中各个边缘计算设备处理能力和单位时间执行成本列在表1中。每个边缘计算设备上允许的最大注册阈值设定成30。每个边缘计算设备之间的数据传输率设置成440Mbps,每个边缘计算设备和在它覆盖区域内的用户之间的数据传输率设置成103Mbps。在计算卸载框架中的平均传输率
Figure BDA0003586245050000121
使用表达式(440×6+103)/7计算,即520Mbps。
表1边缘计算设备的参数
设备编号 MIPS 单位时间执行成本
计算设备1 9.9×10<sup>3</sup> 2.2
计算设备2 8×10<sup>3</sup> 1.8
计算设备3 7×10<sup>3</sup> 1.3
计算设备4 5×10<sup>3</sup> 1.0
在本实施例中,使用四种开源的科学工作流结构模拟移动应用的DAG结构。表2给出了实施例中移动应用的节点数设定。一个应用中任务的计算负载量使用记录在DAX文件中runtime元素项的值表示。具体地,如果原始的runtime值超出[100,500]的范围,则把runtime值分别设成100和500;否则,直接使用记录在DAX文件中的原始runtime值,不需要变化。另外,定义一个基准通信时间ct,该值可由记录在DAX文件中size元素项的值表示。具体地,如果
Figure BDA0003586245050000134
超出[10-3,10-2]的范围,则把ct值分别设置成10-3和10-2;否则让
Figure BDA0003586245050000131
使用
Figure BDA0003586245050000132
设置依赖任务之间的数据传输量的大小,并且与入口出口两个伪节点关联的数据传输量也设置成
Figure BDA0003586245050000133
另外,本实施例中以服从λ的泊松分布间隔随机地从四种类型的工作流中选出500个应用,模拟移动用户释放的卸载请求,并让各个卸载请求发出的位置随机均匀地设定在四个边缘设备所覆盖的服务区域内。为了产生用户应用的价值,给每个应用n赋予一个执行成本权值ecn=MaxCost·twn/MinCap。其中,MaxCost是计算设备1的单位时间执行成本,twn是应用n中所有任务计算负载量的总和,MinCap是计算设备4的处理能力。然后,以均匀分布的方式从ecn和5·ecn之间产生一个随机数来表示用户n的期望开销。此外,为每个应用n定义一个基准执行跨度Mn。为了计算Mn,可以假设把应用n的每个任务调度到不同计算设备上,并用边缘云的平均处理能力值设定这些设备的处理能力,同时把应用n内所有传输数据量都当成0考虑。基于此,应用n的截止期限可以用表达式ln=rn+df·Mn计算。其中,df是给每种类型的工作流设定的截止期限因子,该值由表给出。为了缓解实验中的随机性造成的影响,所有运算都执行30遍,然后使用平均值绘制实验评测图。
表2移动应用参数
Workflow类型 节点数 截止期限因子df
Montage 25 6
Inspiral 30 7
Epigenomics 24 5
CyberShake 30 16
本实施例中,从移动设备的观点看,每一个移动设备在进行任务卸载时都有相同的网络拓扑结构,图2给出了每一个移动设备在异构边缘计算设备构成的分布式网络中进行任务卸载时需面对的网络拓扑结构。如果移动设备需要边缘计算设备处理它的应用,必须将一些应用数据从移动设备自身卸载到边缘计算设备上。当应用的所有任务在网络中执行完后,还需要把计算的结果传回移动设备。执行多应用在线计算卸载的过程如下:
S1.移动用户要卸载计算任务时,必须先向覆盖他的边缘设备mn注册计算卸载的请求。
S2.对于已成功注册的用户,边缘计算设备mn能基于正交频分多路访问技术为用户分配无线信道。一旦用户注册成功,他将从边缘计算设备mn收到整个系统的状态数据。这些数据包括:所有边缘计算设备的处理能力、单位时间的执行成本和不同边缘计算设备间的平均数据传输率。
S3.用户的设备为其应用n创建离线调度映射表。
S4.根据生成的离线映射表
Figure BDA0003586245050000151
该用户将为计算卸载准备好相关的参数。这些参数包括:应用n的预计处理时间和必须获得计算资源的最迟时间。
S5.用户设备把使用边缘计算资源时的期望开销连同卸载请求一起发送给边缘计算设备mn。卸载请求的具体形式为
Figure BDA0003586245050000152
其中rn是应用n的卸载请求释放时间,ln是截止期限,bn是应用n在边缘计算网络上能成功处理完成时的期望开销,也就是用户对应用n能成功完成所能体现的价值,
Figure BDA0003586245050000153
是应用n的DAG结构,σn是应用n在申请的计算资源上能成功执行完的预计处理时间。
S6.协调器从各个边缘计算设备收集当前时刻所有要进行计算卸载的用户请求,根据当前整个网络中计算设备的负载量和用户应用资源请求的状况,为合适的用户DAG任务做出实际的任务调度决策,分配计算资源。
S7.应用n处理完毕后,其注册信息会从边缘计算设备mn上删除掉,同时为其分配的无线信道资源也将释放。
S8.当有一个新的用户卸载请求到达,或者任意一个应用在系统中全部处理完成时,重复执行步骤S6,直到所有用户的卸载请求全部处理完毕。
上述过程中,计算卸载资源调度方式如下:s1.要执行计算卸载的移动用户(用户设备)用
Figure BDA0003586245050000161
表示其要执行的应用n对应的DAG模型,其中
Figure BDA00035862450500001619
和εn分别是应用n的任务集合和有向边集合。集合
Figure BDA00035862450500001620
中任务的总数用
Figure BDA00035862450500001621
表示。应用n中的一个任务则表示成
Figure BDA0003586245050000162
其中i表示集合
Figure BDA00035862450500001622
中的第i个任务。任务tni的计算负载量表示成δni
s2.用户设备给每个应用分别增加两个计算负载量为0的伪节点
Figure BDA0003586245050000163
Figure BDA0003586245050000164
作为它的入口和出口,即
Figure BDA0003586245050000165
此时,
Figure BDA0003586245050000166
Figure BDA0003586245050000167
在集合
Figure BDA00035862450500001623
中的编号分别用0和In+1表示,且从
Figure BDA0003586245050000168
发出的有向边和进入
Figure BDA0003586245050000169
的有向边都分别赋予一个数据传输量。具体地,
Figure BDA00035862450500001610
出边的传输量表示要从移动设备上卸载的应用数据量,它的数值大小可以表示成
Figure BDA00035862450500001611
这里
Figure BDA00035862450500001612
表示
Figure BDA00035862450500001613
的后继;
Figure BDA00035862450500001614
入边的数据传输量表示要传回移动设备的结果数据量,它的数值大小用
Figure BDA00035862450500001615
表示,这里
Figure BDA00035862450500001616
代表
Figure BDA00035862450500001617
的前驱。
s3.用户设备根据应用的DAG结构计算每个任务的优先级。具体地,对于任务
Figure BDA00035862450500001618
它的优先等级使用如下公式计算:
Figure BDA0003586245050000171
其中
Figure BDA0003586245050000172
表示整个拍卖框架中所有计算设备的平均数据传输率;
Figure BDA0003586245050000173
是边缘云中所有计算单元的平均处理能力。
s4.根据s3.算出的优先级为应用的DAG结构计算部分关键路径(PCP)。计算过程中使用“已标记任务”的概念来辅助标定任务,即一个已标记的任务是在计算PCP的过程中已经被标记过的任务。对于给定的应用n,初始时伪节点
Figure BDA0003586245050000174
Figure BDA0003586245050000175
始终当成已标记的任务,其它任务则都当成未标记的任务。使用H(tni)表示任务tni的一个特定的子任务集。在这个特定的子任务集中,每一个任务都不是已标记的任务,但每个任务的父任务都是已标记的任务。为了辅助计算,使用“关键子任务”的概念:对于一个已标记的任务tni,如果它的子任务tnj在集合H(tni)中有最高的优先级,那么任务tnj是关键子任务。将任务tni的关键子任务表示成Hcri(tni)。在计算PCP之前,先定义一个空集
Figure BDA0003586245050000179
,用于记录算出的PCP。然后,从入口节点
Figure BDA0003586245050000176
开始使用SearchPCP算法递归地计算PCP,并把为应用n计算出的PCP存入集合
Figure BDA00035862450500001710
。注意:节点
Figure BDA0003586245050000177
Figure BDA0003586245050000178
并不在集合
Figure BDA00035862450500001711
中,
Figure BDA00035862450500001712
表示集合
Figure BDA00035862450500001713
包含的PCP路径的数目。
s5.根据所有边缘计算设备的处理能力和单位时间的成本,将集合
Figure BDA00035862450500001714
中的每条PCP路径分配到一个离线映射表中。离线映射表的数据结构是一个链表,其中每一条链表都与一个边缘计算设备相对应。
s5.1用
Figure BDA00035862450500001715
表示与边缘计算设备m相对应的链表,该链表带有p个元素。最初,
Figure BDA00035862450500001811
是一个带头结点
Figure BDA00035862450500001812
的空链表,即p=0。并且,边缘计算设备m的可用时间Rm记录在
Figure BDA00035862450500001813
中,它可以用下列公式计算:
Figure BDA0003586245050000181
其中Q(m)表示边缘计算设备m的计算队列,tn′,i′是在Q(m)中的一个等待任务。tn′,i′可以属于不同的应用。
Figure BDA0003586245050000182
表示任务tn′i′的完成时间,它的一般化形式是
Figure BDA0003586245050000183
即任务tni的完成时间。如果任务tni是前面增加的伪任务,则可以直接用如下公式计算:
Figure BDA0003586245050000184
在式(3)的第一个条件,rn是应用n的卸载请求的释放时间,因此直接就是伪任务
Figure BDA0003586245050000185
的完成时间;式(3)的第二个条件表示伪任务
Figure BDA0003586245050000186
需要收到发回用户n的结果数据。再者,如果任务tni不是伪任务(即0<i<In+1),那么计算它的完成时间就必须考虑任务tni要被分配到的目标边缘计算设备上等待任务的队列长度和输入tni的数据达到时间。在这种情况下,
Figure BDA0003586245050000187
由如下公式计算:
Figure BDA0003586245050000188
其中,R(ani)表示要执行任务tni的边缘设备在分配规划ani下,准备执行tni的时间,即设备的就绪时间。这里
Figure BDA0003586245050000189
是任务tni的分配规划,
Figure BDA00035862450500001810
是一个0,1变量,如果tni被分配到边缘计算设备m上则值为1,否则值为0。R(ani)的具体值要由分配规划ani来计算,即
Figure BDA0003586245050000191
在式(3)和(4)中,
Figure BDA0003586245050000192
表示任意两个依赖任务tni和tnj在边缘计算设备的网络环境中的数据传输时间。它的值需要根据如下公式分不同情况具体计算:
Figure BDA0003586245050000193
其中
Figure BDA0003586245050000194
Figure BDA0003586245050000195
是用户n和所属无线信号覆盖区域的边缘计算设备mn之间的传输率。式(5)中,ani=anj表示tni和tnj都被分配到同一个边缘计算设备上,这样
Figure BDA0003586245050000196
可以当成0来处理;如果
Figure BDA0003586245050000197
并且tnj被分配到边缘计算设备m(m≠mn),那么用户n的设备需要经过所属无线信号覆盖区域的边缘计算设备mn才能连接到边缘计算设备m上。因此
Figure BDA0003586245050000198
否则,当tnj被分配到边缘计算设备mn上,由于用户n的设备能与所属无线信号覆盖区域的边缘计算设备mn直接连接,可以得到
Figure BDA0003586245050000199
相似的情况还有:如果
Figure BDA00035862450500001910
并且tni被分配到边缘计算设备m(m≠mn),那么边缘设备m必须通过无线信号覆盖了用户n的边缘计算设备mn才能连到用户n。因此可以得到
Figure BDA0003586245050000201
否则
Figure BDA0003586245050000202
即tni被分配到边缘计算设备mn。最后,若tni和tnj分别被分配到直接连接的边缘计算设备m和m'上,那么
Figure BDA0003586245050000203
在步骤s5.1中,链表
Figure BDA00035862450500002013
的一个元素可以表示成一个二元组
Figure BDA0003586245050000204
具体地,
Figure BDA0003586245050000205
Figure BDA0003586245050000206
分别是链表
Figure BDA00035862450500002014
上第ψ个元素中对应的任务tni的预计开始时间和预计完成时间。
Figure BDA0003586245050000207
使用下列公式计算:
Figure BDA0003586245050000208
其中,ψ'是另一个链表
Figure BDA00035862450500002015
中任务tnj的表位置编号。如果
Figure BDA00035862450500002016
Figure BDA00035862450500002017
是同一个链表,即m=m′,则
Figure BDA0003586245050000209
式(6)中
Figure BDA00035862450500002010
是边缘计算设备m根据任务tni在链表
Figure BDA00035862450500002018
的排序,能执行任务tni的就绪时间。它使用如下公式计算:
Figure BDA00035862450500002011
其中p≠0表示
Figure BDA00035862450500002019
不是空链表,p=0表示
Figure BDA00035862450500002020
仅有一个头结点
Figure BDA00035862450500002021
Figure BDA00035862450500002022
表示在链表
Figure BDA00035862450500002023
上排在任务tni之前的子链表,ψ-1是子链表
Figure BDA00035862450500002024
的长度,i'是记录在链表元素ζ中的任务tni′的任务编号。也就是说,当链表
Figure BDA00035862450500002025
不是空表时,
Figure BDA00035862450500002012
的计算值是由子链表
Figure BDA00035862450500002026
上最后的任务决定。最后,链表
Figure BDA00035862450500002027
上任务tni的预计完成时间由如下公式计算:
Figure BDA0003586245050000211
s5.2为每个任务tni计算一个最迟完成时间
Figure BDA0003586245050000212
它由如下公式计算:
Figure BDA0003586245050000213
其中ρmax表示边缘设备网络中能提供的最大处理能力,
Figure BDA0003586245050000214
表示所有边缘服务设备之间的平均传输率,ln是应用n正常执行完毕必须要满足的截止期限。此外,伪任务
Figure BDA0003586245050000215
Figure BDA0003586245050000216
因为必须位于用户的设备上,所以没有考虑其最迟完成时间。
s5.3使用“目标位置”的概念把应用n中已计算出的PCP映射到各个边缘计算设备相对应的链表上。
“目标位置”是指从边缘设备m对应的链表
Figure BDA0003586245050000219
头节点开始遍历,找出的第一个可以放置任务tni的位置。该位置必须满足下列两条件:
一、tni
Figure BDA00035862450500002110
的第ψ个元素上的预计开始时间要满足如下公式:
Figure BDA0003586245050000217
Figure BDA0003586245050000218
其中j和j'分别是tnj和tnj′在集合
Figure BDA00035862450500002111
中的编号,τ是整个系统的当前时间。并且tnj和tnj′分别记录在链表的第ψ-1和第ψ+1元素上。式(10)的第一个条件表示tni被放置在
Figure BDA00035862450500002112
的第一个元素上。式(11)的第一个条件表示tni被添加在
Figure BDA0003586245050000229
的最后一个元素上。
二、如果
Figure BDA0003586245050000221
不能满足式(11),则它必须满足下式:
Figure BDA0003586245050000222
其中
Figure BDA0003586245050000223
也就是说,
Figure BDA0003586245050000224
是应用n中所有任务的最迟完成时间的最大值。
需要注意的是:在式(10)、(11)、(12)中ψ=1表示紧跟链表
Figure BDA00035862450500002210
头节点的位置是目标位置,ψ=p+1表示链表
Figure BDA00035862450500002211
的最后一个节点是目标位置。
s5.3通过如下步骤,把应用n的任务映射到离线分配映射表中。
Step1.设置一个计数器k,初值设为1。
Step2.从应用n的PCP构成的集合
Figure BDA00035862450500002212
中取出第k条PCP路径,并设置三个存储变量m*、f、
Figure BDA00035862450500002213
,其中f初值为无穷大。用m表示设备集合
Figure BDA00035862450500002214
中设备的计数器,初值设为1。如果集合
Figure BDA00035862450500002215
中仍然还有PCP路径时,执行步骤Step3,否则执行步骤Step8。
Step3.从设备集合总取出第m个设备,生成一个新的空链表
Figure BDA00035862450500002216
当设备集合不为空时执行步骤Step4,否则执行步骤Step7。
Step4.依次取出第k条PCP路径上的每个任务tni,对于每个任务tni,遍历第m个设备所对应的链表
Figure BDA00035862450500002217
并根据公式(23)、(24)计算
Figure BDA0003586245050000225
Figure BDA0003586245050000226
然后将元素
Figure BDA0003586245050000227
添加到链表
Figure BDA00035862450500002218
的末尾。
Step5.如果
Figure BDA0003586245050000228
(此表达式代表链表
Figure BDA00035862450500002219
中最大的
Figure BDA0003586245050000231
值)的值小于当前变量f,则用其当前值替换原变量f的值,并将此时对应的链表
Figure BDA00035862450500002313
替换原存储变量
Figure BDA00035862450500002314
中的记录,再将当前m的值替换m*中的记录;否则f、
Figure BDA00035862450500002315
、m*中的原始值不变。
Step6.将m的值增加1后,继续执行Step3。
Step7.根据计算的目标位置,把当前变量
Figure BDA00035862450500002316
存放的链表中的任务插到链表
Figure BDA0003586245050000232
所对应的位置上。将计数器k增加1后,继续执行Step2。
Step8.结束任务的分配。
s5.4在用户设备上根据如下公式计算应用n的预计处理时间σn
Figure BDA0003586245050000233
其中,
Figure BDA0003586245050000234
Figure BDA0003586245050000235
是由离线映射计算出的预计完成时间和开始时间,并且
Figure BDA0003586245050000236
式(13)中
Figure BDA0003586245050000237
是用户n的设备和边缘计算设备m'之间的传输时间。边缘计算设备m'需满足其上任务tni′
Figure BDA0003586245050000238
是所有
Figure BDA0003586245050000239
中取值最小的,传输时间
Figure BDA00035862450500002310
也是类似描述。
s5.5用户n向无线区域内的边缘服务设备mn发送计算卸载的请求
Figure BDA00035862450500002311
其中rn是应用的卸载请求释放时间,ln是用户应用的截止期限,bn是用户应用在边缘计算网络上能成功处理完成的期望开销,也就是用户对应用能成功完成所能体现的价值,
Figure BDA00035862450500002312
是应用的DAG结构,σn是应用在申请的计算资源上能成功执行完的预计处理时间。
s6.协同器收集当前时刻所有用户发送来的卸载请求,并给每个用户请求计算一个期望开销权值
Figure BDA0003586245050000241
然后把收到的用户请求按照μn值升序排列一个队列
Figure BDA0003586245050000245
中。
s7.从
Figure BDA0003586245050000246
中找出μn值最大的请求
Figure BDA0003586245050000242
并读取出其对应用户应用n的离线分配映射表
Figure BDA0003586245050000243
s8.遍历离线分配映射表
Figure BDA0003586245050000247
中与每个边缘计算设备相对应的链表
Figure BDA0003586245050000248
并把链表上元素
Figure BDA0003586245050000244
对应的任务分配到边缘计算设备m的计算队列上。
图3、4、5示出了上述方法(对应于图中AU-PCP)与其它目前相对较为先进的方法(CEFO、Selfish、Zhang’s PCP、ITAGS)在同一边缘计算网络中的测试结果。结果表明,本实施例所涉计算资源分配方法在应用的总价值、平均执行跨度和平均成功率方面均表现出较佳的效果,综合来看,本实施例所涉方法的总体测试结果要明显优于其它方法。由此说明本实施例所涉方法能够在边缘计算网络中实现计算资源更合理、充分保障用户应用的价值,并缩短应用的平均处理时间,提高边缘计算网络的运行效率。
上述实施例为本发明较佳的实现方案,除此之外,本发明还可以其它方式实现,在不脱离本技术方案构思的前提下任何显而易见的替换均在本发明的保护范围之内。
为了让本领域普通技术人员更方便地理解本发明相对于现有技术的改进之处,本发明的一些附图和描述已经被简化,并且为了清楚起见,本申请文件还省略了一些其它元素,本领域普通技术人员应该意识到这些省略的元素也可构成本发明的内容。

Claims (10)

1.边缘计算中基于任务图整体资源需求的多应用在线计算卸载资源调度方法,其特征在于,包括以下步骤:
S1.用
Figure FDA0003586245040000011
表示要执行计算卸载的应用n对应的DAG模型,其中,
Figure FDA0003586245040000012
和εn分别为应用n的任务集合和有向边集合,
Figure FDA0003586245040000013
中任务的总数
Figure FDA0003586245040000014
应用n中的一个任务为
Figure FDA0003586245040000015
其中i表示集合
Figure FDA0003586245040000016
中的第i个任务,任务tni的计算负载量表示成δni
S2.给应用n分别增加两个计算负载量为0的伪节点作为入口和出口,即
Figure FDA0003586245040000017
Figure FDA0003586245040000018
Figure FDA0003586245040000019
在集合
Figure FDA00035862450400000110
中的编号分别用0和In+1表示,且从
Figure FDA00035862450400000111
发出的有向边和进入
Figure FDA00035862450400000112
的有向边都分别赋予一个数据传输量,其中,
Figure FDA00035862450400000113
出边的传输量表示要从用户设备上卸载的应用数据量,其数值大小表示为
Figure FDA00035862450400000114
表示
Figure FDA00035862450400000115
的后继;
Figure FDA00035862450400000116
入边的数据传输量表示要传回用户设备的结果数据量,其数值大小表示为
Figure FDA00035862450400000117
代表
Figure FDA00035862450400000118
的前驱;
S3.根据应用n的DAG结构计算每个任务的优先级;
S4.构建一个用于记录算出的部分关键路径——PCP的空集
Figure FDA00035862450400000122
根据计算出的任务优先级为应用n的DAG结构计算PCP路径,将获得的PCP路径存放在集合
Figure FDA00035862450400000123
中,并用
Figure FDA00035862450400000124
表示集合
Figure FDA00035862450400000125
包含的PCP路径的数目;
S5.根据所有边缘计算设备的处理能力和单位时间执行开销,将集合
Figure FDA00035862450400000119
中的每条PCP路径分配到为应用卸载生成的离线分配映射表
Figure FDA00035862450400000120
中;所述离线分配映射表
Figure FDA00035862450400000121
其数据结构为链表
Figure FDA0003586245040000021
每一条链表
Figure FDA0003586245040000022
都与一个边缘计算设备m相对应将应用n的每条PCP路径都映射到各个链表
Figure FDA0003586245040000023
中,由所有链表
Figure FDA0003586245040000024
构成离线分配映射表
Figure FDA0003586245040000025
S6.用
Figure FDA0003586245040000026
表示执行计算卸载的应用向某一边缘计算设备mn发送的计算卸载请求,其中rn为应用的卸载请求释放时间,ln为截止期限,bn为应用在边缘计算网络上成功处理完成的期望开销,
Figure FDA0003586245040000027
是应用的DAG结构,σn是应用在申请的计算资源上能成功执行完的预计处理时间;
S7.计算各计算卸载请求的期望开销权值μn=bnn,并把各计算卸载请求按照μn值升序排列一个队列
Figure FDA0003586245040000028
中;
S8.从
Figure FDA0003586245040000029
中找出μn值最大的请求
Figure FDA00035862450400000210
并读取出其对应应用n的离线分配映射表
Figure FDA00035862450400000211
S9.遍历离线分配映射表
Figure FDA00035862450400000212
中与每个边缘计算设备m相对应的链表
Figure FDA00035862450400000213
并把链表上元素
Figure FDA00035862450400000214
对应的任务分配到边缘计算设备m的计算队列上。
2.如权利要求1所述多应用在线计算卸载资源调度方法,其特征在于,步骤S3中按下式计算应用n中的任务
Figure FDA00035862450400000215
的优先级:
Figure FDA00035862450400000216
其中,
Figure FDA00035862450400000217
表示边缘计算网络中所有计算设备的平均数据传输率;
Figure FDA00035862450400000218
是边缘计算网络中所有计算单元的平均处理能力。
3.如权利要求2所述多应用在线计算卸载资源调度方法,其特征在于:步骤S4中,使用SearchPCP算法递归地计算PCP路径。
4.如权利要求3所述多应用在线计算卸载资源调度方法,其特征在于:计算PCP路径过程中,使用已标记任务来辅助标定任务,所述已标记任务是在计算PCP的过程中已经被标记过的任务,对于给定的应用n,初始时伪节点
Figure FDA0003586245040000031
Figure FDA0003586245040000032
始终当作已标记任务,其它任务都当作未标记的任务;并用H(tni)表示任务tni的一个特定子集,在该特定子集中,每一个任务都不是已标记任务,但每个任务的父任务都是已标记任务;对于一个已标记任务tni,如果其子任务tnj在集合H(tni)中有最高的优先级,那么将该子任务tnj作为关键子任务,并将已标记任务tni的关键子任务表示为Hcri(tni);
之后再从入口节点
Figure FDA0003586245040000033
开始使用SearchPCP算法递归地计算PCP,并把为应用n计算出的PCP存入集合
Figure FDA0003586245040000034
节点
Figure FDA0003586245040000035
Figure FDA0003586245040000036
不在集合
Figure FDA0003586245040000037
中。
5.如权利要求1所述多应用在线计算卸载资源调度方法,其特征在于:步骤S5中,链表
Figure FDA0003586245040000038
有p个元素,初始时,
Figure FDA0003586245040000039
为带头结点
Figure FDA00035862450400000310
的空链表并且边缘计算设备m的可用时间Rm记录在
Figure FDA00035862450400000311
中;
Figure FDA00035862450400000312
其中,Q(m)表示边缘计算设备m的计算队列,tn′,i′为在Q(m)中的一个等待任务,
Figure FDA00035862450400000313
表示任务tn′i′的完成时间,其一般化形式为
Figure FDA00035862450400000314
Figure FDA00035862450400000315
为任务tni的完成时间;
若任务tni为作为入口或出口的伪任务,则其按下式计算:
Figure FDA00035862450400000316
在式(3)中,第一个条件下,rn是应用n的卸载请求的释放时间,故其直接就是伪任务
Figure FDA0003586245040000041
的完成时间;第二个条件表示伪任务
Figure FDA0003586245040000042
需要收到发送回应用n的结果数据;
若任务tni不是伪任务,则
Figure FDA0003586245040000043
由下式计算:
Figure FDA0003586245040000044
其中,R(ani)表示要执行任务tni的边缘设备m在分配规划ani下准备执行tni的时间,
Figure FDA0003586245040000045
Figure FDA0003586245040000046
表示任意两个依赖任务tni和tnj在边缘计算设备m的网络环境中的数据传输时间,其值根据下式计算:
Figure FDA0003586245040000047
其中,
Figure FDA0003586245040000048
m,m′∈{1,...,M},
Figure FDA0003586245040000049
是应用n所对应的用户设备和其所属无线信号覆盖区域的边缘计算设备mn之间的传输率;
将链表
Figure FDA00035862450400000410
中的一个元素用一个二元组
Figure FDA00035862450400000411
表示,其中,
Figure FDA00035862450400000412
Figure FDA00035862450400000413
分别为
Figure FDA00035862450400000414
第ψ个元素中对应的任务tni的预计开始时间和预计完成时间,
Figure FDA00035862450400000415
按下式计算:
Figure FDA0003586245040000051
其中,ψ'是链表
Figure FDA0003586245040000052
中任务tnj的表位置编号,若
Figure FDA0003586245040000053
Figure FDA0003586245040000054
为同一个链表,即m=m′,则
Figure FDA0003586245040000055
Figure FDA0003586245040000056
是边缘计算设备m根据任务tni在链表
Figure FDA0003586245040000057
的排序,能够执行任务tni的就绪时间,其值按下式计算:
Figure FDA0003586245040000058
其中,p≠0表示链表
Figure FDA0003586245040000059
不是空表,若p=0,则表示链表
Figure FDA00035862450400000510
仅有一个头结点
Figure FDA00035862450400000511
表示在链表
Figure FDA00035862450400000512
上排在任务tni之前的子链表,ψ-1是子链表
Figure FDA00035862450400000513
的长度,i'是记录在链表元素ζ中的任务tni′的任务编号;当链表
Figure FDA00035862450400000514
不是空表时,
Figure FDA00035862450400000515
的计算值由子链表
Figure FDA00035862450400000516
上最后的任务决定;链表
Figure FDA00035862450400000517
上任务tni的预计完成时间通过下式计算:
Figure FDA00035862450400000518
在链表
Figure FDA00035862450400000519
的计算中,按下式为每个任务tni计算一个最迟完成时间
Figure FDA00035862450400000520
Figure FDA00035862450400000521
其中,ρmax表示边缘设备网络能提供的最大处理能力,
Figure FDA00035862450400000522
表示所有边缘服务设备之间的平均传输率,ln是应用n正常执行完毕必须要满足的截止期限。
6.如权利要求5所述多应用在线计算卸载资源调度方法,其特征在于:在链表
Figure FDA0003586245040000061
的计算中,是将应用n的任务映射到各个边缘计算设备m相对应链表
Figure FDA0003586245040000062
上的目标位置,所述目标位置是从边缘设备m对应的链表
Figure FDA0003586245040000063
头节点开始遍历所找出的第一个可以放置任务tni的位置,所述目标位置满足以下条件:
一、tni
Figure FDA0003586245040000064
的第ψ个元素上的预计开始时间满足下式:
Figure FDA0003586245040000065
Figure FDA0003586245040000066
其中,j和j'分别是tnj和tnj′在集合
Figure FDA0003586245040000067
中的编号,τ是整个系统的当前时间,并且tnj和tnj′分别记录在链表的第ψ-1和第ψ+1元素上;式(10)的第一个条件表示tni被放置在
Figure FDA0003586245040000068
的第一个元素上,式(11)的第一个条件表示tni被添加在
Figure FDA0003586245040000069
的最后一个元素上;
二、若
Figure FDA00035862450400000610
不满足式(11),则其应当满足下式:
Figure FDA00035862450400000611
其中
Figure FDA00035862450400000612
Figure FDA00035862450400000613
是应用n中所有任务的最迟完成时间的最大值;上述式中,ψ=1表示紧跟链表
Figure FDA00035862450400000614
头节点的位置是目标位置,ψ=p+1表示链表
Figure FDA00035862450400000615
的最后一个节点是目标位置。
7.如权利要求6所述多应用在线计算卸载资源调度方法,其特征在于,具体按以下步骤把应用n在链表
Figure FDA00035862450400000616
中的任务映射到离线分配映射表
Figure FDA0003586245040000071
中:
S501.设置一个计数器k,初值设为1;
S502.从应用n的PCP构成的集合
Figure FDA00035862450400000710
中取出第k条PCP路径,并设置三个存储变量m*、f、
Figure FDA00035862450400000711
其中f初值为无穷大;用m表示设备集合
Figure FDA00035862450400000712
中设备的计数器,初值设为1;若集合
Figure FDA00035862450400000713
中仍有PCP路径,执行步骤S503,否则执行步骤S508;
S503.从设备集合中取出第m个设备,生成一个新的空链表
Figure FDA00035862450400000714
当设备集合不为空时执行步骤S504,否则执行步骤S507;
S504.依次取出第k条PCP路径上的每个任务tni,对于每个任务tni,遍历第m个设备所对应的链表
Figure FDA0003586245040000072
并计算
Figure FDA0003586245040000073
Figure FDA0003586245040000074
然后将元素
Figure FDA0003586245040000075
添加到链表
Figure FDA0003586245040000076
的末尾;
S505.若
Figure FDA0003586245040000077
的值小于当前变量f,则用其当前值替换原变量f的值,并将此时对应的链表
Figure FDA00035862450400000715
替换原存储变量
Figure FDA00035862450400000716
中的记录,再将当前m的值替换m*中的记录,
Figure FDA0003586245040000078
为链表
Figure FDA00035862450400000717
中最大的
Figure FDA0003586245040000079
值;否则f、
Figure FDA00035862450400000718
m*中的原始值不变;
S506.将m的值增加1后,继续执行步骤S503;
S507.根据计算的目标位置,把当前变量
Figure FDA00035862450400000720
存放的链表中的任务插到链表
Figure FDA00035862450400000719
所对应的位置上;将计数器k增加1后,继续执行步骤S502;
S508.结束任务的分配。
8.如权利要求1-7中任意一项所述多应用在线计算卸载资源调度方法,其特征在于:步骤S6中,预计处理时间σn按下式计算:
Figure FDA0003586245040000081
其中,
Figure FDA0003586245040000082
Figure FDA0003586245040000083
是由离线映射计算出的预计完成时间和开始时间,并且
Figure FDA0003586245040000084
Figure FDA0003586245040000085
是应用n所对应的用户设备和边缘计算设备m'之间的传输时间,边缘计算设备m'需满足其上任务tni′
Figure FDA0003586245040000086
是所有
Figure FDA0003586245040000087
中取值最小的。
9.边缘计算中基于任务图整体资源需求的多应用在线计算卸载系统,包括分布在移动网络边缘的多个边缘计算设备m,所述边缘计算设备m通过网络连接形成边缘云,所述边缘云中至少有一边缘计算设备m作为协调器,所述协调器周期性地获取系统状态信息并发送给所有边缘计算设备m,每一边缘计算设备m均对应独立的无线覆盖区域并通过无线网络为其所覆盖区域内的用户设备提供在线计算卸载服务,其特征在于:系统根据权利要求1-8中任意一项所述的多应用在线计算卸载资源调度方法分配计算资源。
10.如权利要求9所述多应用在线计算卸载系统,其特征在于,执行计算卸载的过程包括:
s1.应用n要卸载计算任务时,通过其所对应的用户设备向所处无线覆盖区域的边缘设备mn注册计算卸载的请求;
s2.边缘计算设备mn基于正交频分多路访问技术为成功注册的用户设备分配无线信道并发送系统状态信息,所述系统状态信息包括所有边缘计算设备的处理能力、单位时间的执行成本和各边缘计算设备间的平均数据传输率;
s3.用户设备基于接收到的当前系统状态信息以及要卸载执行的应用的任务图结构为应用n创建离线分配映射表
Figure FDA0003586245040000091
并根据生成的离线映射表
Figure FDA0003586245040000092
确定计算卸载的相关参数;
s4.用户设备向边缘计算设备mn发送卸载请求;
s5.协调器从各边缘计算设备m收集当前所有要进行计算卸载的用户请求,根据当前整个网络中计算设备的负载量和用户应用资源请求的状况,从用户卸载请求集合中选出合适的用户,并根据用户的离线映射表
Figure FDA0003586245040000093
为该用户的DAG任务做出实际的任务调度决策,分配计算资源;
s6.应用n处理完毕后,边缘计算设备mn删除其注册信息,同时释放为其分配的无线信道;
s7.当有一个新的用户卸载请求到达,或者任意一个应用在系统中全部处理完成时,重复执行步骤s5,直到所有用户的卸载请求全部处理完毕。
CN202210366936.0A 2022-04-08 2022-04-08 边缘计算中基于任务图整体资源需求的多应用在线计算卸载资源调度方法和系统 Pending CN114610503A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210366936.0A CN114610503A (zh) 2022-04-08 2022-04-08 边缘计算中基于任务图整体资源需求的多应用在线计算卸载资源调度方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210366936.0A CN114610503A (zh) 2022-04-08 2022-04-08 边缘计算中基于任务图整体资源需求的多应用在线计算卸载资源调度方法和系统

Publications (1)

Publication Number Publication Date
CN114610503A true CN114610503A (zh) 2022-06-10

Family

ID=81868520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210366936.0A Pending CN114610503A (zh) 2022-04-08 2022-04-08 边缘计算中基于任务图整体资源需求的多应用在线计算卸载资源调度方法和系统

Country Status (1)

Country Link
CN (1) CN114610503A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116719629A (zh) * 2023-08-10 2023-09-08 华能信息技术有限公司 一种基于工业互联网的任务分解方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116719629A (zh) * 2023-08-10 2023-09-08 华能信息技术有限公司 一种基于工业互联网的任务分解方法
CN116719629B (zh) * 2023-08-10 2023-10-31 华能信息技术有限公司 一种基于工业互联网的任务分解方法

Similar Documents

Publication Publication Date Title
CN110099384B (zh) 基于边-端协同的多用户多mec任务卸载资源调度方法
Yu et al. Joint subcarrier and CPU time allocation for mobile edge computing
CN109788046B (zh) 一种基于改进蜂群算法的多策略边缘计算资源调度方法
CN110493360B (zh) 多服务器下降低系统能耗的移动边缘计算卸载方法
Hazra et al. Cooperative transmission scheduling and computation offloading with collaboration of fog and cloud for industrial IoT applications
CN108566659B (zh) 一种基于可靠性的5g网络切片在线映射方法
CN109951821A (zh) 基于移动边缘计算的最小化车辆能耗任务卸载方案
US20120266176A1 (en) Allocating Tasks to Machines in Computing Clusters
CN109669768A (zh) 一种面向边云结合架构的资源分配和任务调度方法
CN105656973A (zh) 一种分布式节点组内任务调度方法及系统
WO2019072162A1 (zh) 虚拟网络映射方法、设备和存储介质
CN113535393B (zh) 异构边缘计算中卸载dag任务的计算资源分配方法
US10063478B2 (en) Switching device and control method of switching device
CN109947551A (zh) 一种多轮次任务分配方法、边缘计算系统及其存储介质
CN113641417B (zh) 一种基于分支定界法的车辆安全任务卸载方法
CN112799823A (zh) 边缘计算任务的在线分派调度方法和系统
CN114172558B (zh) 一种车辆网络中基于边缘计算和无人机集群协同的任务卸载方法
CN109005211B (zh) 一种无线城域网环境下的微云部署及用户任务调度方法
CN106598727B (zh) 一种通信系统的计算资源分配方法及系统
CN110377352A (zh) 基于移动设备云系统的任务处理方法和装置
CN115484205A (zh) 确定性网络路由与队列调度方法及装置
CN110996390B (zh) 一种无线接入网络计算资源分配方法及网络系统
CN114610503A (zh) 边缘计算中基于任务图整体资源需求的多应用在线计算卸载资源调度方法和系统
CN117407160A (zh) 一种边缘计算场景下在线任务和离线任务的混合部署方法
CN116939044A (zh) 一种基于区块链技术的算力路由规划方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination