CN114296828B - 数据计算任务的卸载方法及装置、存储介质、设备 - Google Patents
数据计算任务的卸载方法及装置、存储介质、设备 Download PDFInfo
- Publication number
- CN114296828B CN114296828B CN202111652283.4A CN202111652283A CN114296828B CN 114296828 B CN114296828 B CN 114296828B CN 202111652283 A CN202111652283 A CN 202111652283A CN 114296828 B CN114296828 B CN 114296828B
- Authority
- CN
- China
- Prior art keywords
- node
- task
- unloading
- calculation
- nodes
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000004364 calculation method Methods 0.000 claims abstract description 229
- 238000010586 diagram Methods 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims description 29
- 230000010076 replication Effects 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 6
- 238000004422 calculation algorithm Methods 0.000 description 24
- 238000005516 engineering process Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开是关于一种数据计算任务的卸载方法及装置、存储介质、设备,设计无线通信技术领域,该方法包括:根据网络状态图模块中包括的网络状态图模型,计算多接入边缘计算网络的当前网络状态流信息;根据当前网络状态流信息,计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延;根据所述第一时延以及第二时延构建卸载费用流模型,并根据卸载费用流模型计算所述数据计算任务的卸载决策;将所述卸载决策发送至所述请求节点,以使得所述请求节点将所述数据计算任务发送至所述卸载决策中包括的协作节点,实现所述数据计算任务的卸载。本公开实现了请求节点与协作节点之间的负载均衡。
Description
技术领域
本公开实施例涉及无线通信技术领域,具体而言,涉及一种数据计算任务的卸载方法、数据计算任务的卸载装置、计算机可读存储介质以及电子设备。
背景技术
5G技术的实践落地与物联网技术的飞速发展,催生了大量具有时延敏感与计算密集型任务的高级应用。为满足5G应用场景的低时延需求,计算卸载技术在孤立的边缘设备之间建立协同管理能力,将计算任务调度至最佳的计算节点,按需分配网络资源,满足用户业务需求,最大化网络资源利用率,实现网络的负载均衡。
然而,由于边缘设备本身的算力不强,且链路质量不稳定,当用户业务的时延容忍度较低时,对任务调度与资源分配的要求将更为严格。传统的计算卸载技术不能较好地对网络状况与业务特性进行充分利用,是的数据计算任务的处理效率较低,很难按时满足用户需求。
为了解决上述技术问题,在一些方案中,可以基于随机卸载策略为数据计算任务重新分配边缘设备。也即,在整个网络中随机寻找一个计算节点,将数据计算任务的输入数据传输到该节点上。
但是,上述方案虽然能避免数据计算任务无法在本地按时完成的情形,但由于计算节点为随机寻找的,无法保证该随机节点对数据计算任务的处理效率,进而使得数据计算任务的处理效率较低。
因此,需要提供一种新的数据计算任务的卸载方法及装置。
需要说明的是,在上述背景技术部分发明的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种数据计算任务的卸载方法、数据计算任务的卸载装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的数据计算任务的处理效率较低的问题。
根据本公开的一个方面,提供一种数据计算任务的卸载方法,包括:
通过计算卸载模块接收请求节点发送的计算卸载请求,并根据网络状态图模块中包括的网络状态图模型,计算多接入边缘计算网络的当前网络状态流信息;
根据所述当前网络状态流信息,计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延;
根据所述第一时延以及第二时延构建卸载费用流模型,并根据所述卸载费用流模型计算所述数据计算任务的卸载决策;
将所述卸载决策发送至所述请求节点,以使得所述请求节点将所述数据计算任务发送至所述卸载决策中包括的协作节点,实现所述数据计算任务的卸载。
在本公开的一种示例实施例中,根据网络状态图模块中包括的网络状态图模型,计算多接入边缘计算网络的当前网络状态流信息,包括:
获取网络状态图模块中包括的网络状态图模型,以及所述网络状态图模型中包括的各节点的节点性能信息以及链路状态信息;
根据各节点的节点性能信息以及链路状态信息,计算所述多接入边缘计算网络的当前网络状态流信息;
其中,所述节点性能信息中包括节点的第一顶标以及第一二元组,所述第一顶标为所述请求节点和/或协作节点的节点索引,所述第一二元组为所述请求节点和/或协作节点的计算资源总量以及存储资源总量;
所述链路状态信息中包括第二顶标以及第二二元组,所述第二顶标为从请求节点到协作节点的有向路径,所述第二二元组为所述有向路径的平均链路速率以及连接建立时间。
在本公开的一种示例实施例中,根据所述当前网络状态流信息,计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延,包括:
从所述当前网络状态流信息中获取所述请求节点的第一计算速度、所述协作节点的第二计算速度以及从所述请求节点到协作节点之间的有向路径的平均链路速率;
根据所述数据计算任务的任务工作量以及第一计算速度,计算所述数据计算任务在请求节点进行本地执行的第一时延;
根据所述数据计算任务的输入数据量、任务工作量、第二计算速度以及平均链路速率,计算所述数据计算任务卸载在协作节点上执行的第二时延。
在本公开的一种示例实施例中,根据所述第一时延以及第二时延构建卸载费用流模型,并根据所述卸载费用流模型计算所述数据计算任务的卸载决策,包括:
利用所述计算卸载模块根据所述卸载费用流模型,以最小化所述多接入边缘计算网络中所有任务处理的总时延为第一目标,以使用支持高并发的改进最小费用最大流为第二目标,计算所述数据计算任务的卸载决策;
其中,所述卸载费用流模型用于表征在某个时刻的任务卸载效用的模型,所述卸载费用流模型包括源点、汇点、节点集合以及链路集合;
所述节点集合包括左部以及右部两个子部,左部包括所有的请求节点以及协作节点,右部包括请求节点;
所述源点与所有协作节点相连得到第一连接边,每条第一连接边的容量为1,费用为0;所述汇点与所有请求节点相连得到第二连接边,每条第二连接边的容量为1,费用为0;每个请求节点与协作节点相连得到第三连接边,每条第三连接边的容量为1,费用为所述第二时延;
每个请求节点与该请求节点的复制节点相连,每条边的容量为1,时延为所述第一时延,复制节点与每个协作节点不相连。
在本公开的一种示例实施例中,利用所述计算卸载模块根据所述卸载费用流模型,以最小化所述多接入边缘计算网络中所有任务处理的总时延为第一目标,以使用支持高并发的改进最小费用最大流为第二目标,计算所述数据计算任务的卸载决策,包括:
其中,表示最小化将计算任务卸载到协作节点的总时延,M表示请求节点的第一节点数量,N表示协作节点的第二节点数量,xm,n表示卸载决策,xm,n=1表示请求节点m将数据计算任务卸载至协作节点n;xm,N+m=1表示数据计算任务在请求节点本地执行;为第二时延,为第一时延;Dm为数据计算任务的输入数据量、Rm,n为平均链路速率,Wm为任务工作量,Fn为第二计算速度,Fm为第一计算速度。
在本公开的一种示例实施例中,所述数据计算任务的卸载方法还包括:
判断所述卸载费用流模型中包括的第二节点数量是否大于第一节点数量;
若所述第二节点数量大于等于所述第一节点数量,则一个协作节点最多被分配一个数据计算任务;
若所述二节点数量小于所述第一节点数量,则根据所述第一节点数量以及第二节点数量计算所述请求节点的第一虚拟节点数量以及协作节点的第二虚拟节点数量;
基于所述第一虚拟节点数量以及第二虚拟节点数量对所述请求节点以及协作节点进行扩充,直至扩充后的协作节点的第二节点数量大于等于扩充后的请求节点的第一节点数量。
在本公开的一种示例实施例中,在将所述卸载决策发送至所述请求节点之前,所述数据计算任务的卸载方法还包括:
获取多接入边缘计算网络中包括的所有节点的计算任务队列,以及所述计算任务队列中包括的计算任务的任务数量;
判断所述计算任务的任务数量是否大于预设阈值,并在确定任一节点的任务数量大于等于所述预设阈值,则将该节点确定为目标节点;其中,所述目标节点为请求节点和/或协作节点;
提取任务数量小于所述预设阈值的节点作为其他节点,并根据所述其他节点构建第一节点集合;
在确定所述第一节点集合为非空集合时,基于所述第一节点集合为所述目标节点中包括的计算任务重新分配协作节点。
在本公开的一种示例实施例中,基于所述第一节点集合为所述目标节点中包括的计算任务重新分配协作节点,包括:
计算所述目标节点中包括的计算任务的执行成本,并根据所述执行成本对所述计算任务排序;
从排序结果中提取执行成本最大的计算任务作为目标任务,并计算所述第一节点集合中所包括的其他节点中包括的计算任务的总执行成本;
从所述第一节点集合中提取总执行成本最小的节点作为当前节点,并将所述目标执行任务分配至所述当前节点。
在本公开的一种示例实施例中,在基于所述第一节点集合为所述目标节点中包括的计算任务重新分配协作节点之后,所述数据计算任务的卸载方法还包括:
更新所述多接入边缘计算网络中包括的所有节点的任务数量进行更新,并判断更新后的目标节点的任务数量是否大于预设阈值;
若是,则重复协作节点分配步骤,直至目标节点的任务数量小于预设阈值。
根据本公开的一个方面,提供一种数据计算任务的卸载装置,包括:
网络状态流信息计算模块,用于通过计算卸载模块接收请求节点发送的计算卸载请求,并根据网络状态图模块中包括的网络状态图模型,计算多接入边缘计算网络的当前网络状态流信息;
时延计算模块,用于根据所述当前网络状态流信息,计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延;
卸载决策计算模块,用于根据所述第一时延以及第二时延构建卸载费用流模型,并根据所述卸载费用流模型计算所述数据计算任务的卸载决策;
数据计算任务卸载模块,用于将所述卸载决策发送至所述请求节点,以使得所述请求节点将所述数据计算任务发送至所述卸载决策中包括的协作节点,实现所述数据计算任务的卸载。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述任意一项示例实施例中所述的数据计算任务的卸载方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行前述任意一项示例实施例中所述的数据计算任务的卸载方法。
本公开实施例提供的一种数据计算任务的卸载方法,一方面,由于可以根据当前网络状态流信息,计算计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延;进而根据第一时延以及第二时延构建卸载费用流模型,并根据卸载费用流模型计算数据计算任务的卸载决策;最后将卸载决策发送至请求节点,以使得请求节点将数据计算任务发送至卸载决策中包括的协作节点,实现数据计算任务的卸载,避免了现有技术中由于计算节点为随机寻找的,无法保证该随机节点对数据计算任务的处理效率,进而使得数据计算任务的处理效率较低的问题,提高了数据计算任务的处理效率;另一方面,由于可以根据第一时延以及第二时延构建卸载费用流模型,并根据卸载费用流模型计算数据计算任务的卸载决策,进而避免了由于某一节点中被分配的数据执行任务过多导致该节点任务过重的问题,同时还可以避免由于某一节点被分配的数据计算任务过少导致该节点资源浪费的问题,进而实现了请求节点以及协作节点之间的负载均衡。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出根据本公开示例实施例的一种数据计算任务的卸载方法的流程图。
图2示意性示出根据本公开示例实施例的一种数据计算任务的卸载方法的应用场景示例图。
图3示意性示出根据本公开示例实施例的一种网络状态图模型的示例图。
图4示意性示出根据本公开示例实施例的一种计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延的方法流程图。
图5示意性示出根据本公开示例实施例的一种卸载费用流模型的示例图。
图6示意性示出了根据本示例实施例的一种请求节点以及协作节点的扩充方法的示例图。
图7示意性示出了根据本示例实施例的一种对协作节点进行重新分类的方法流程图。
图8示意性示出了根据本示例实施例的一种对数据计算任务进行卸载前的计算场景示例图。
图9示意性示出了根据本示例实施例的一种对数据计算任务进行卸载后的计算场景示例图。
图10示意性示出根据本公开示例实施例的另一种数据计算任务的卸载方法的流程图。
图11示意性示出根据本公开示例实施例的一种数据计算任务的卸载装置的框图。
图12示意性示出根据本公开示例实施例的一种用于实现上述数据计算任务的卸载方法的电子设备。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
在一些基于边缘设备的数据计算任务的处理方案中,由于边缘设备所在的节点本身的算力有限,如任务在本地执行,将无法在截止期限完成计算任务。因此,需要将任务调度到其它节点协作执行,以满足任务的截止期限,如何寻找合适的协作节点成为核心问题。为了解决该问题,提供了如下方案
一种方案是,预先判断出能在截止期限内完成该任务的节点集合,将计算任务随机卸载到这些节点集合的一个节点上,该方法虽然能保证任务按时完成,且决策速度快,但选择的节点并不是最优的,可能会对网络的资源利用率造成影响。
另一种方案是,贪心卸载策略。即,在整个网络中寻找一个最佳的计算节点,将计算任务卸载到该节点时,能最小化任务处理的时延。该方案虽然能保证单个任务的最优,却不具备长远考虑的特性,容易陷入局部最优,对整个网络而言不能求出令人满意的决策结果。
再一种方案是,基于启发式算法的卸载策略,即综合考虑实时的网络状态与任务特征,使用启发式算法求解卸载决策。该方案依然有如下缺陷:1)时间复杂度高,算法性能较依赖于设置的超参数,难以避免局部最优;2)算法对场景的依赖程度过强,很难具备普适性,不能将该算法无缝切换至其它场景;3)没有考虑过往的网络资源分配状况和上一次卸载决策结果对现有的卸载决策造成的影响,忽略了时隙与时隙之间的卸载决策的关联性。
基于此,本示例实施方式中首先提供了一种数据计算任务的卸载方法,该方法可以运行于边缘设备、服务器、服务器集群或云服务器等;当然,本领域技术人员也可以根据需求在其他平台运行本公开的方法,本示例性实施例中对此不做特殊限定。参考图1所示,该数据计算任务的卸载方法可以包括以下步骤:
步骤S110.通过计算卸载模块接收请求节点发送的计算卸载请求,并根据网络状态图模块中包括的网络状态图模型,计算多接入边缘计算网络的当前网络状态流信息;
步骤S120.根据所述当前网络状态流信息,计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延;
步骤S130.根据所述第一时延以及第二时延构建卸载费用流模型,并根据所述卸载费用流模型计算所述数据计算任务的卸载决策;
步骤S140.将所述卸载决策发送至所述请求节点,以使得所述请求节点将所述数据计算任务发送至所述卸载决策中包括的协作节点,实现所述数据计算任务的卸载。
上述数据计算任务的卸载方法,一方面,由于可以根据当前网络状态流信息,计算计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延;进而根据第一时延以及第二时延构建卸载费用流模型,并根据卸载费用流模型计算数据计算任务的卸载决策;最后将卸载决策发送至请求节点,以使得请求节点将数据计算任务发送至卸载决策中包括的协作节点,实现数据计算任务的卸载,避免了现有技术中由于计算节点为随机寻找的,无法保证该随机节点对数据计算任务的处理效率,进而使得数据计算任务的处理效率较低的问题,提高了数据计算任务的处理效率;另一方面,由于可以根据第一时延以及第二时延构建卸载费用流模型,并根据卸载费用流模型计算数据计算任务的卸载决策,进而避免了由于某一节点中被分配的数据执行任务过多导致该节点任务过重的问题,同时还可以避免由于某一节点被分配的数据计算任务过少导致该节点资源浪费的问题,进而实现了请求节点以及协作节点之间的负载均衡。
以下,将结合附图对本公开示例实施例数据计算任务的卸载方法中包括的各步骤进行详细的解释以及说明。
首先,对本公开示例实施例的发明目的进行解释以及说明。具体的,面向5G的多接入边缘计算网络负载均衡策略需考虑用户业务的多样性与边缘服务器的多维资源负载情况,还需考虑网络端到端链路质量,使用传统的负载均衡方案均无法获知业务调度过程中完整的网络状态信息,网络资源利用率低,影响用户体验。基于此,本申请通过构建网络状态图以表征网络拓扑、链路质量、节点资源负载等空时属性,将用户业务到达时的负载均衡问题转换为卸载费用流的最小费用最大流问题进行求解,实现多接入边缘计算网络的拓扑动态更新,保证用户业务调度过程的高稳定性与高可靠性;与此同时,还提出改进的最小费用最大流算法以支持高并发的业务调度,通过设计卸载费用流扩充与过载退避机制,能保证在不同应用场景下的算法参数自由切换,实现业务的灵活调度与资源的按需分配,提升用户服务质量。
其次,对本公开示例实施例的数据计算任务的卸载方法的应用场景进行解释以及说明。
具体的,参考图2所示,该数据计算任务的卸载方法可以应用于对面向5G的多接入边缘计算网络中包括的数据计算任务进行卸载。其中,该多接入边缘计算网络的网络拓扑如图可以参考图2所示。再该网络拓扑图中,可以包括多个用户设备210,以及多个边缘设备(每个边缘设备对应一个节点),用户设备通过无线或者有线网络与边缘设备连接,各边缘设备基于通信链路相连;该边缘设备例如可以包括边缘设备A、边缘设备B、边缘设备C以及边缘设备D等等,边缘设备的具体数量根据网络的具体情况决定,本示例对此不做特殊限定;该边缘设备可以是边缘盒子,也可以是边缘服务器,本示例对此不做特殊限制。
进一步的,该边缘设备具有一定的计算能力与存储能力,可以独立处理用户业务;节点之间的连接线表示了设备之间的通信链路。同时,该网络以时隙结构运行;为简化表述,可以假设每个节点只能同时处理一个任务。在某个时隙t,节点A与节点B有一个时延敏感且计算密集型的任务需要处理。由于节点A、B本身的算力有限,如任务在本地执行,将无法在截止期限完成计算任务,因此,需要将任务调度到其它节点协作执行,以满足任务的截止期限。因此,当计算任务从一个边缘设备到达时,我们需要通过计算卸载模块决策,任务应该本地执行还是卸载到其它节点,如果卸载,应卸载到哪个节点为最优节点。
以下,结合图2对本公开示例实施例的数据计算任务的卸载方法进行详细的解释以及说明。
在步骤S110中,通过计算卸载模块接收请求节点发送的计算卸载请求,并根据网络状态图模块中包括的网络状态图模型,计算多接入边缘计算网络的当前网络状态流信息。
在本实力实施例中,首先,在多接入边缘计算网络中,选择边缘节点部署计算卸载模块与网络状态图模块,其中,计算卸载模块可以用于负责任务调度,网络状态图模块可以用于负责根据网络状况导出网络状态图模型。此处需要补充说明的是,计算卸载模块与网络状态图模块可以部署在同一个边缘节点上,且该边缘节点应尽可能位于整个网络的拓扑中心,以最小化其它节点请求计算卸载模块的时延。
其次,每隔一定时间,网络状态图模块依据收集到的网络状态信息,更新网络状态图模型;其中,可以通过部署网络监控模块(如Prometheus与Grafana),获知该多接入边缘计算网络的所有网络状态信息;并且,网络状态图模型的更新时间τ可以由实际场景决定,默认为20ms,其具体确定规则由以下公式(1)给出:
进一步的,当计算卸载模块与网络状态图模块部署完成后,当计算任务到达某个边缘节点时,该边缘节点(即请求节点)即可向部署了计算卸载模块的边缘节点发出计算卸载请求;其中,该计算卸载请求中可以包括数据计算任务的任务ID、任务类型以及任务到达边缘节点的IP(也即请求节点的IP)等等,当然还可以包括其他信息,例如该数据计算任务的任务工作量等,本示例对此不做特殊限制。
最后,接收到该计算卸载请求以后,即可根据网络状态图模块中包括的网络状态图模型,计算多接入边缘计算网络的当前网络状态流信息。具体的,可以包括:首先,获取网络状态图模块中包括的网络状态图模型,以及所述网络状态图模型中包括的各节点的节点性能信息以及链路状态信息;其次,根据各节点的节点性能信息以及链路状态信息,计算所述多接入边缘计算网络的当前网络状态流信息;其中,所述节点性能信息中包括节点的第一顶标以及第一二元组,所述第一顶标为所述请求节点和/或协作节点的节点索引,所述第一二元组为所述请求节点和/或协作节点的计算资源总量以及存储资源总量;所述链路状态信息中包括第二顶标以及第二二元组,所述第二顶标为从请求节点到协作节点的有向路径,所述第二二元组为所述有向路径的平均链路速率以及连接建立时间。
举例来说,首先,可以获取网络状态图模型;其中,计算卸载请求网络状态图模块的时间戳与网络状态图模块最后一次更新网络状态的时间戳之间的时间差值应该不大于一定的时间差(例如20ms以内),若时间差值过大,则可以在下一次更新完成后再进行该步骤;其次,在示例实施例中所提供的网络状态图模型,可以是一种表征在某个时刻的网络空时信息的模型,包括节点性能信息与链路状态信息,其基本结构如图3所示。
其中,每个节点由第一顶标L与第一二元组P唯一确定,如A(15,80)。第一顶标L表示了节点的索引,第一二元组P由二个数字组成,分别表示了节点的计算资源总量(单位MHz)、存储资源总量(单位MB);并且,每条边均为有向边,由一组第二顶标G、第二二元组Q唯一确定,如(A,B)[9,3]。第二顶标G表示了边的方向(如从A到B),第二二元组Q由二个数字组成,分别表示了该条边的平均链路速率(Mbps)、连接建立时间(ms)。此处需要补充说明的是,在图3所示出的示例图中,每个节点为边缘设备的抽象,每条带权边为通信链路的抽象。
在步骤S120中,根据所述当前网络状态流信息,计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延。
在本实力实施例中,参考图4所示,根据所述当前网络状态流信息,计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延,可以包括以下步骤:
步骤S410,从所述当前网络状态流信息中获取所述请求节点的第一计算速度、所述协作节点的第二计算速度以及从所述请求节点到协作节点之间的有向路径的平均链路速率;
步骤S420,根据所述数据计算任务的任务工作量以及第一计算速度,计算所述数据计算任务在请求节点进行本地执行的第一时延;
步骤S430,根据所述数据计算任务的输入数据量、任务工作量、第二计算速度以及平均链路速率,计算所述数据计算任务卸载在协作节点上执行的第二时延。
以下,将对步骤S410-步骤S430进行解释以及说明。首先,数据计算任务在请求节点所在的本地执行的第一时延的计算方法如公式(2)所示:
其中,τm为第一时延,Wm为任务的工作量(单位:CPU周期数),也即,完成该数据计算任务需要多少CPU周期数;fm为请求节点m的第一计算速度(单位为MHz)。
其次,数据计算任务在协作节点执行的第二时延的计算方法如下公式(3)所示:
其中,τm,n为卸载的总时延(也即第二时延),即请求节点m将任务卸载协作节点n的总时延;τup为数据计算任务的输入数据上传时延,与数据计算任务的输入数据大小、信道速率有关;为协作节点执行计算任务的处理时延,与任务工作量、节点计算速度有关;τwait为节点任务的等待时延,可以认为每个节点在一个时隙只执行一个任务,因此该部分为0;τdown为结果下载时延,由于下行链路质量较好,该部分时延可忽略不计;
在忽略掉极小的时延部分以后,第二时延的计算方法如公式(4):
在公式(4)中,Dm为数据计算任务的输入数据量(单位MB),Rm,n为从节点m到节点n的平均链路速率(单位Mbps),fn为协作节点n的第二计算速度(单位MHz)。
在步骤S130中,根据所述第一时延以及第二时延构建卸载费用流模型,并根据所述卸载费用流模型计算所述数据计算任务的卸载决策。
在本实力实施例中,可以利用所述计算卸载模块根据所述卸载费用流模型,以最小化所述多接入边缘计算网络中所有任务处理的总时延为第一目标,以使用支持高并发的改进最小费用最大流为第二目标,计算所述数据计算任务的卸载决策;其中,所述卸载费用流模型用于表征在某个时刻的任务卸载效用的模型,所述卸载费用流模型包括源点、汇点、节点集合以及链路集合;所述节点集合包括左部以及右部两个子部,左部包括所有的请求节点以及协作节点,右部包括请求节点;所述源点与所有协作节点相连得到第一连接边,每条第一连接边的容量为1,费用为0;所述汇点与所有请求节点相连得到第二连接边,每条第二连接边的容量为1,费用为0;每个请求节点与协作节点相连得到第三连接边,每条第三连接边的容量为1,费用为所述第二时延;每个请求节点与该请求节点的复制节点相连,每条边的容量为1,时延为所述第一时延,复制节点与每个协作节点不相连。
具体的,本实力实施例中所记载的卸载费用流模型,可以是一种表征在某个时刻的任务卸载效用的模型,是网络费用流模型的一种特殊形式,其可以包括源点(S)、汇点(T)、节点集合与链路集合,其基本结构如图5所示。在具体的应用过程中,可以将节点集合看作二部图的两个子部,其中左部包括所有的请求节点与协作节点,右部包括请求节点。不相连的边表示两者不互通。在图5中,源点(S)与所有协作节点(例如C、D)相连,每条边的容量为1,费用为0;所有请求节点(例如A、B)与汇点(T)相连,每条边的容量为1,费用为0;每个请求节点与协作节点相连,每条边的容量为1,费用为将请求节点的计算任务卸载到协作节点完成的总时延;每个请求节点与其复制节点(即在左部的,顶标相同的请求节点)相连,每条边的容量为1,费用为节点本地执行任务的时延;每个请求节点不与复制节点相连。此处需要补充说明的是,在图5所示出卸载费用流模型中,源点与汇点为虚拟节点,其它节点可以看作二部图的两个子部,其中左部包括所有节点(即请求节点与协作节点),右部只包括请求节点,源点只与左部节点相连,汇点只与右部节点,源点、汇点与其它节点相连的边的容量均为1,费用均为0;左部与右部的节点相连的边的容量均为1,费用为将右部节点任务卸载到左部对应节点的时延。
进一步的,利用所述计算卸载模块根据所述卸载费用流模型,以最小化所述多接入边缘计算网络中所有任务处理的总时延为第一目标,以使用支持高并发的改进最小费用最大流为第二目标,计算所述数据计算任务的卸载决策,可以通过如下公式(5)实现:
其中,表示最小化将计算任务卸载到协作节点的总时延,M表示请求节点的第一节点数量,N表示协作节点的第二节点数量,xm,n表示卸载决策,xm,n=1表示请求节点m将数据计算任务卸载至协作节点n;xm,N+m=1表示数据计算任务在请求节点本地执行;为第二时延,为第一时延;Dm为数据计算任务的输入数据量、Rm,n为平均链路速率,Wm为任务工作量,Fn为第二计算速度,Fm为第一计算速度。
具体的,在卸载决策计算的过程中,还需要构建如公式(6)-公式(9)所示的约束条件:
其中,约束条件C1限定了任务处理的总时延不能超过计算任务的截止期限;约束条件C2限定了每个计算任务的输入数据不能超过节点的存储资源大小;约束条件C3限定了每个任务每个计算任务要么本地执行,要么将任务调度到一个协作节点;约束条件C4限定了每个协作节点最多同时接收一个来自其他用户设备的计算任务;在具体的求解过程中,可以基于SPFA算法实现,在实际场景中也可使用Bellman-Ford算法、I-Dijkstra算法、Primal-Dual算法求解,本示例对此不做特殊限制;并且,支持高并发的改进最小费用最大流算法,是以现有的经典最小费用最大流算法为基础进行改良,使其同时支持低并发与高并发的场景,且能根据实际应用场景中的并发数进行算法模式切换,进而起到解决现有技术中存在的对场景的依赖程度过强,很难具备普适性,不能将该算法无缝切换至其它场景的问题。
图6示意性地公开了根据本示例实施例的一种请求节点以及协作节点的扩充方法的示例图。参考图6所示,该请求节点以及协作节点的扩孔方法可以包括以下步骤:
步骤S610,判断所述卸载费用流模型中包括的第二节点数量是否大于第一节点数量;
步骤S620,若所述第二节点数量大于等于所述第一节点数量,则一个协作节点最多被分配一个数据计算任务;
步骤S630,若所述二节点数量小于所述第一节点数量,则根据所述第一节点数量以及第二节点数量计算所述请求节点的第一虚拟节点数量以及协作节点的第二虚拟节点数量;
步骤S640,基于所述第一虚拟节点数量以及第二虚拟节点数量对所述请求节点以及协作节点进行扩充,直至扩充后的协作节点的第二节点数量大于等于扩充后的请求节点的第一节点数量。
以下,将对步骤S610-步骤S640进行解释以及说明。具体的,记所述请求节点的总数为M,所述协作节点的总数为N。由于优化目标为执行时延最小化,因此为了保证每个请求节点的业务优先完成,当M≤N时,每个请求节点的计算任务会优先分配到不同的协作节点(即每个协作节点在同一时刻接收一个请求节点的计算任务)。然而,当M>N(即任务并发数过大)时,如果每个协作节点仍只同时接收一个计算任务,将导致M-N个任务被网络拒绝,导致业务交付率下降,影响用户体验,因此需要对原有策略进行改进,以支持每个协作节点为多任务提供服务。在保证最小费用最大流算法不变的前提下,可以对卸载费用流模型进行扩充,具体地,包括以下2种扩充策略:
(1)最小扩充策略:在右部补充个虚拟节点,再在左部补充个虚拟节点,其矩阵较小,方便计算,但是限制了每个节点能接受的最大任务数。具体的扩充示例如下所示:
(2)最大扩充策略:在右部补充N(M-1)个虚拟节点,再在左部补充M(N-1)个虚拟节点,其矩阵较大,计算复杂度相对高,但每个节点能接受的最大任务数无限制。具体的扩充示例如下所示:
扩充后的虚拟节点与其它节点间的边的容量与费用的确定规则如下:
1)扩充的边的容量均为1;(2)扩充的边的费用为:a,左部实际节点m与右部虚拟节点n之间的边的权值,与左部实际节点m与右部实际节点之间的边的权值相等;b,左部虚拟节点m与右部实际节点n之间的边的权值均为∞。
在步骤S140中,将所述卸载决策发送至所述请求节点,以使得所述请求节点将所述数据计算任务发送至所述卸载决策中包括的协作节点,实现所述数据计算任务的卸载。
图7示意性示出根据本公开示例实施例的一种协作节点的重新分配方法。具体的,参考图7所示,该协作节点的重新分配方法可以包括以下步骤:
步骤S710,获取多接入边缘计算网络中包括的所有节点的计算任务队列,以及所述计算任务队列中包括的计算任务的任务数量;
步骤S720,判断所述计算任务的任务数量是否大于预设阈值,并在确定任一节点的任务数量大于等于所述预设阈值,则将该节点确定为目标节点;其中,所述目标节点为请求节点和/或协作节点;
步骤S730,提取任务数量小于所述预设阈值的节点作为其他节点,并根据所述其他节点构建第一节点集合;
步骤S740,在确定所述第一节点集合为非空集合时,基于所述第一节点集合为所述目标节点中包括的计算任务重新分配协作节点。
其中,基于所述第一节点集合为所述目标节点中包括的计算任务重新分配协作节点,可以包括:首先,计算所述目标节点中包括的计算任务的执行成本,并根据所述执行成本对所述计算任务排序;其次,从排序结果中提取执行成本最大的计算任务作为目标任务,并计算所述第一节点集合中所包括的其他节点中包括的计算任务的总执行成本;最后,从所述第一节点集合中提取总执行成本最小的节点作为当前节点,并将所述目标执行任务分配至所述当前节点。
进一步的,在基于所述第一节点集合为所述目标节点中包括的计算任务重新分配协作节点之后,所述数据计算任务的卸载方法还包括:首先,更新所述多接入边缘计算网络中包括的所有节点的任务数量进行更新,并判断更新后的目标节点的任务数量是否大于预设阈值;其次,若是,则重复协作节点分配步骤,直至目标节点的任务数量小于预设阈值。若否,则可以直接将卸载决策发送至请求节点,并执行后续的步骤。
以下,将对步骤S710-步骤S730进行解释以及说明。具体的,考虑到执行多个任务的协作节点的资源负载情况,保证每个任务都被顺利交付。因此需要对算法流程进行修正,在求出最小费用最大流后,对节点负载进行统计,将过载节点的任务分配至其它节点。因此,可以设计一种过载退避机制解决该问题,具体地,包括以下步骤:
(1)记多接入边缘计算网络中的每个节点(请求节点以及协作节点)的缓冲队列为l,其长度为L,上限长度为Lmax。所述缓冲队列表示同时分配给该节点的计算任务队列,缓冲队列上限长度表示能同时分配给该节点的计算任务数。
(2)在某一时刻,如果网络节点n的缓冲队列ln的实际长度Ln大于其缓冲对上限长度Lmax,则求出此时缓冲队列未满的协作节点集合为Cn;
(3)如果集合为空集,则拒绝该任务,否则继续执行以下步骤;
(4)求解出每个任务m(m∈Ln)的执行成本函数P(m)。所述成本函数P(m)表示在当前节点执行该任务的时延与在截止期限前完成该任务所需资源的加权,其表达式为:
其中,θt以及θf为加权因子,且满足θt+θf=1;默认地,θt=θf=0.5;
(5)对缓冲队列ln中所有的计算任务m(m∈Ln)进行排序,将成本函数值P(m)最高的计算任务出队,重新为其分配协作节点;
(6)求出集合Cn中各节点上所有任务成本函数值之和最小的节点记为将任务放置在节点
(7)更新节点n的缓冲队列ln,并更新集合Cn;如果节点n的缓冲队列ln的实际长度仍然大于上线,则重复步骤(4)~(7)。
至此,即可得到卸载决策;然后,再将该卸载决策发送至请求节点,以使得请求节点将所述数据计算任务发送至卸载决策中包括的协作节点,实现数据计算任务的卸载。具体的,本实例示示例所记载的卸载决策,是一种表征任务卸载结果的模型,是一个由请求节点到协作节点的映射集合。其中,每一组映射表征了卸载的结果,如映射m→n表示将请求节点m的计算任务卸载到协作节点n;同时,当得到卸载决策以后,可以通过计算卸载模块将决策结果回传给相应的请求节点,请求节点根据收到的决策结果,将计算任务的输入数据依据指定路径传输至指定的协作节点,完成计算卸载,卸载之前的数据计算任务场景可以参考图8(节点B包括两个计算任务)所示,卸载以后的数据计算任务场景可以参考图9(将其中的一个数据计算任务分配至节点C)所示;其中,计算卸载决策回传应包括以下内容:任务ID、任务类型、卸载目标边缘节点的IP。
以下,结合图10对本公开示例实施例数据计算任务的卸载方法进行进一步的解释以及说明。具体的,参考图10所示,该数据计算任务的卸载方法可以包括以下步骤:
步骤S1001,网络预配置:在多接入边缘计算网络中,选择一个边缘节点部署计算卸载模块与网络状态图模块;
步骤S1002,模型更新:每隔一定时间,网络状态图模块依据收集到的网络状态信息,更新网络流模型;
步骤S1003,卸载请求:当计算任务到达某个边缘节点时,该边缘节点(即请求节点)向部署了计算卸载模块的边缘节点发出计算卸载请求;
步骤S1004,时延预处理:计算卸载模块向网络状态图模块请求网络流信息,依据网络状态流信息求出计算任务在本地执行与卸载在协作节点上处理的时延,构建卸载费用流;
步骤S1005,MCMF:计算卸载模块依据卸载费用流,以最小化网络中所有任务处理的总时延为优化目标,使用支持高并发的改进最小费用最大流算法求解出卸载决策;
步骤S1006,决策回传:计算卸载模块将决策结果回传给相应的请求节点,请求节点根据收到的决策结果,将计算任务的输入数据依据指定路径传输至指定的协作节点,完成计算卸载。
本公开示例实施例所提供的数据计算任务的卸载方法,与现有技术相比,至少具有以下效果:
(1)设计了网络状态图模型,作为整体封装网络性能数据的数据模型。它通过对网络的算力状态进行可视化展示,可直观判断全网各节点的负载状况,能为计算卸载的过程提供实时、高效的数据支撑,保证了计算卸载的快速性与准确性,也能减轻计算卸载模块获取并收集网络资源负载情况的运算压力。
(2)提出了卸载费用流模型,作为计算卸载的预处理模型;设计支持高并发的改进最小费用最大流算法,完成卸载决策的求解。卸载费用流可以直观反映计算卸载可选决策的权重差异,不仅方便算法执行,也方便观察调试;我们的优化目标是全网的计算任务的执行时延最小化,能同时保证用户的良好体验与服务质量;支持高并发的改进最小费用最大流算法具有较低的多项式时间复杂度,且通过时延矩阵扩充与过载退避机制,能在不同的并发状态下灵活切换算法参数,求解出理论最优解,支持多样化的业务调度,为卸载决策的性能提供了稳定的保证。
(3)提出的负载均衡方法,能综合网络节点性能、网络链路质量与用户业务特征,进行统一的计算卸载决策,对网络状态进行了充分利用,具备极强的算法鲁棒性;我们的负载均衡技术具备随时可用的特性,不受特定垂直应用场景的限制,即插即用,无需预训练过程,且能通过我们设置的模型直观反映出卸载决策的中间结果,易于在部署时进行数据可视化,在展示平台直观反映出负载均衡技术的性能。
本公开示例实施例还提供了一种数据计算任务的卸载装置。参考图11所示,该数据计算任务的卸载装置可以包括网络状态流信息计算模块1110、时延计算模块1120、卸载决策计算模块1130以及数据计算任务卸载模块1140。其中:
网络状态流信息计算模块1110,可以用于通过计算卸载模块接收请求节点发送的计算卸载请求,并根据网络状态图模块中包括的网络状态图模型,计算多接入边缘计算网络的当前网络状态流信息;
时延计算模块1120,可以用于根据所述当前网络状态流信息,计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延;
卸载决策计算模块1130,可以用于根据所述第一时延以及第二时延构建卸载费用流模型,并根据所述卸载费用流模型计算所述数据计算任务的卸载决策;
数据计算任务卸载模块1140,可以用于将所述卸载决策发送至所述请求节点,以使得所述请求节点将所述数据计算任务发送至所述卸载决策中包括的协作节点,实现所述数据计算任务的卸载。
在本公开的一种示例实施例中,根据网络状态图模块中包括的网络状态图模型,计算多接入边缘计算网络的当前网络状态流信息,包括:
获取网络状态图模块中包括的网络状态图模型,以及所述网络状态图模型中包括的各节点的节点性能信息以及链路状态信息;
根据各节点的节点性能信息以及链路状态信息,计算所述多接入边缘计算网络的当前网络状态流信息;
其中,所述节点性能信息中包括节点的第一顶标以及第一二元组,所述第一顶标为所述请求节点和/或协作节点的节点索引,所述第一二元组为所述请求节点和/或协作节点的计算资源总量以及存储资源总量;
所述链路状态信息中包括第二顶标以及第二二元组,所述第二顶标为从请求节点到协作节点的有向路径,所述第二二元组为所述有向路径的平均链路速率以及连接建立时间。
在本公开的一种示例实施例中,根据所述当前网络状态流信息,计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延,包括:
从所述当前网络状态流信息中获取所述请求节点的第一计算速度、所述协作节点的第二计算速度以及从所述请求节点到协作节点之间的有向路径的平均链路速率;
根据所述数据计算任务的任务工作量以及第一计算速度,计算所述数据计算任务在请求节点进行本地执行的第一时延;
根据所述数据计算任务的输入数据量、任务工作量、第二计算速度以及平均链路速率,计算所述数据计算任务卸载在协作节点上执行的第二时延。
在本公开的一种示例实施例中,根据所述第一时延以及第二时延构建卸载费用流模型,并根据所述卸载费用流模型计算所述数据计算任务的卸载决策,包括:
利用所述计算卸载模块根据所述卸载费用流模型,以最小化所述多接入边缘计算网络中所有任务处理的总时延为第一目标,以使用支持高并发的改进最小费用最大流为第二目标,计算所述数据计算任务的卸载决策;
其中,所述卸载费用流模型用于表征在某个时刻的任务卸载效用的模型,所述卸载费用流模型包括源点、汇点、节点集合以及链路集合;
所述节点集合包括左部以及右部两个子部,左部包括所有的请求节点以及协作节点,右部包括请求节点;
所述源点与所有协作节点相连得到第一连接边,每条第一连接边的容量为1,费用为0;所述汇点与所有请求节点相连得到第二连接边,每条第二连接边的容量为1,费用为0;每个请求节点与协作节点相连得到第三连接边,每条第三连接边的容量为1,费用为所述第二时延;
每个请求节点与该请求节点的复制节点相连,每条边的容量为1,时延为所述第一时延,复制节点与每个协作节点不相连。
在本公开的一种示例实施例中,利用所述计算卸载模块根据所述卸载费用流模型,以最小化所述多接入边缘计算网络中所有任务处理的总时延为第一目标,以使用支持高并发的改进最小费用最大流为第二目标,计算所述数据计算任务的卸载决策,包括:
其中,表示最小化将计算任务卸载到协作节点的总时延,M表示请求节点的第一节点数量,N表示协作节点的第二节点数量,xm,n表示卸载决策,xm,n=1表示请求节点m将数据计算任务卸载至协作节点n;xm,N+m=1表示数据计算任务在请求节点本地执行;为第二时延,为第一时延;Dm为数据计算任务的输入数据量、Rm,n为平均链路速率,Wm为任务工作量,Fn为第二计算速度,Fm为第一计算速度。
在本公开的一种示例实施例中,所述数据计算任务的卸载装置还可以包括:
第一判断模块,可以用于判断所述卸载费用流模型中包括的第二节点数量是否大于第一节点数量;
第一分配模块,可以用于若所述第二节点数量大于等于所述第一节点数量,则一个协作节点最多被分配一个数据计算任务;
节点数量计算模块,可以用于若所述二节点数量小于所述第一节点数量,则根据所述第一节点数量以及第二节点数量计算所述请求节点的第一虚拟节点数量以及协作节点的第二虚拟节点数量;
节点扩充模块,可以用于基于所述第一虚拟节点数量以及第二虚拟节点数量对所述请求节点以及协作节点进行扩充,直至扩充后的协作节点的第二节点数量大于等于扩充后的请求节点的第一节点数量。
在本公开的一种示例实施例中,所述数据计算任务的卸载装置还可以包括:
计算任务队列获取模块,可以用于获取多接入边缘计算网络中包括的所有节点的计算任务队列,以及所述计算任务队列中包括的计算任务的任务数量;
目标节点确定模块,可以用于判断所述计算任务的任务数量是否大于预设阈值,并在确定任一节点的任务数量大于等于所述预设阈值,则将该节点确定为目标节点;其中,所述目标节点为请求节点和/或协作节点;
第一节点集合构建模块,可以用于提取任务数量小于所述预设阈值的节点作为其他节点,并根据所述其他节点构建第一节点集合;
协作节点重新分配模块,可以用于在确定所述第一节点集合为非空集合时,基于所述第一节点集合为所述目标节点中包括的计算任务重新分配协作节点。
在本公开的一种示例实施例中,基于所述第一节点集合为所述目标节点中包括的计算任务重新分配协作节点,包括:
计算所述目标节点中包括的计算任务的执行成本,并根据所述执行成本对所述计算任务排序;
从排序结果中提取执行成本最大的计算任务作为目标任务,并计算所述第一节点集合中所包括的其他节点中包括的计算任务的总执行成本;
从所述第一节点集合中提取总执行成本最小的节点作为当前节点,并将所述目标执行任务分配至所述当前节点。
在本公开的一种示例实施例中,所述数据计算任务的卸载装置还可以包括:
任务数量更新模块,可以用于更新所述多接入边缘计算网络中包括的所有节点的任务数量进行更新,并判断更新后的目标节点的任务数量是否大于预设阈值;
节点分配步骤重复模块,可以用于若是,则重复协作节点分配步骤,直至目标节点的任务数量小于预设阈值。
上述数据计算任务的卸载装置中各模块的具体细节已经在对应的数据计算任务的卸载方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图12来描述根据本公开的这种实施方式的电子设备1200。图12显示的电子设备1200仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图12所示,电子设备1200以通用计算设备的形式表现。电子设备1200的组件可以包括但不限于:上述至少一个处理单元1210、上述至少一个存储单元1220、连接不同系统组件(包括存储单元1220和处理单元1210)的总线1230以及显示单元1240。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1210执行,使得所述处理单元1210执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元1210可以执行如图1中所示的步骤S110:通过计算卸载模块接收请求节点发送的计算卸载请求,并根据网络状态图模块中包括的网络状态图模型,计算多接入边缘计算网络的当前网络状态流信息;步骤S120:根据所述当前网络状态流信息,计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延;步骤S130:根据所述第一时延以及第二时延构建卸载费用流模型,并根据所述卸载费用流模型计算所述数据计算任务的卸载决策;步骤S140:将所述卸载决策发送至所述请求节点,以使得所述请求节点将所述数据计算任务发送至所述卸载决策中包括的协作节点,实现所述数据计算任务的卸载。
存储单元1220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)12201和/或高速缓存存储单元12202,还可以进一步包括只读存储单元(ROM)12203。
存储单元1220还可以包括具有一组(至少一个)程序模块12205的程序/实用工具12204,这样的程序模块12205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1200也可以与一个或多个外部设备1300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1200交互的设备通信,和/或与使得该电子设备1200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1250进行。并且,电子设备1200还可以通过网络适配器1260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1260通过总线1230与电子设备1200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
Claims (11)
1.一种数据计算任务的卸载方法,其特征在于,包括:
通过计算卸载模块接收请求节点发送的计算卸载请求,并获取网络状态图模块中包括的网络状态图模型,以及所述网络状态图模型中包括的各节点的节点性能信息以及链路状态信息;根据各节点的节点性能信息以及链路状态信息,计算多接入边缘计算网络的当前网络状态流信息;
根据所述当前网络状态流信息,计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延;
根据所述第一时延以及第二时延构建卸载费用流模型,并利用所述计算卸载模块根据所述卸载费用流模型,以最小化所述多接入边缘计算网络中所有任务处理的总时延为第一目标,以使用支持高并发的改进最小费用最大流为第二目标,计算所述数据计算任务的卸载决策,包括:
其中,表示最小化将计算任务卸载到协作节点的总时延,M表示请求节点的第一节点数量,N表示协作节点的第二节点数量,xm,n表示卸载决策,xm,n=1表示请求节点m将数据计算任务卸载至协作节点n;xm,N+m=1表示数据计算任务在请求节点本地执行;为第二时延,为第一时延;Dm为数据计算任务的输入数据量、Rm,n为平均链路速率,Wm为任务工作量,Fn为第二计算速度,Fm为第一计算速度;
将所述卸载决策发送至所述请求节点,以使得所述请求节点将所述数据计算任务发送至所述卸载决策中包括的协作节点,实现所述数据计算任务的卸载。
2.根据权利要求1所述的数据计算任务的卸载方法,其特征在于,所述节点性能信息中包括节点的第一顶标以及第一二元组,所述第一顶标为所述请求节点和/或协作节点的节点索引,所述第一二元组为所述请求节点和/或协作节点的计算资源总量以及存储资源总量;
所述链路状态信息中包括第二顶标以及第二二元组,所述第二顶标为从请求节点到协作节点的有向路径,所述第二二元组为所述有向路径的平均链路速率以及连接建立时间。
3.根据权利要求1所述的数据计算任务的卸载方法,其特征在于,根据所述当前网络状态流信息,计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延,包括:
从所述当前网络状态流信息中获取所述请求节点的第一计算速度、所述协作节点的第二计算速度以及从所述请求节点到协作节点之间的有向路径的平均链路速率;
根据所述数据计算任务的任务工作量以及第一计算速度,计算所述数据计算任务在请求节点进行本地执行的第一时延;
根据所述数据计算任务的输入数据量、任务工作量、第二计算速度以及平均链路速率,计算所述数据计算任务卸载在协作节点上执行的第二时延。
4.根据权利要求1所述的数据计算任务的卸载方法,其特征在于,所述卸载费用流模型用于表征在某个时刻的任务卸载效用的模型,所述卸载费用流模型包括源点、汇点、节点集合以及链路集合;
所述节点集合包括左部以及右部两个子部,左部包括所有的请求节点以及协作节点,右部包括请求节点;
所述源点与所有协作节点相连得到第一连接边,每条第一连接边的容量为1,费用为0;所述汇点与所有请求节点相连得到第二连接边,每条第二连接边的容量为1,费用为0;每个请求节点与协作节点相连得到第三连接边,每条第三连接边的容量为1,费用为所述第二时延;
每个请求节点与该请求节点的复制节点相连,每条边的容量为1,时延为所述第一时延,复制节点与每个协作节点不相连。
5.根据权利要求1所述的数据计算任务的卸载方法,其特征在于,所述数据计算任务的卸载方法还包括:
判断所述卸载费用流模型中包括的第二节点数量是否大于第一节点数量;
若所述第二节点数量大于等于所述第一节点数量,则一个协作节点最多被分配一个数据计算任务;
若所述二节点数量小于所述第一节点数量,则根据所述第一节点数量以及第二节点数量计算所述请求节点的第一虚拟节点数量以及协作节点的第二虚拟节点数量;
基于所述第一虚拟节点数量以及第二虚拟节点数量对所述请求节点以及协作节点进行扩充,直至扩充后的协作节点的第二节点数量大于等于扩充后的请求节点的第一节点数量。
6.根据权利要求1所述的数据计算任务的卸载方法,其特征在于,在将所述卸载决策发送至所述请求节点之前,所述数据计算任务的卸载方法还包括:
获取多接入边缘计算网络中包括的所有节点的计算任务队列,以及所述计算任务队列中包括的计算任务的任务数量;
判断所述计算任务的任务数量是否大于预设阈值,并在确定任一节点的任务数量大于等于所述预设阈值,则将该节点确定为目标节点;其中,所述目标节点为请求节点和/或协作节点;
提取任务数量小于所述预设阈值的节点作为其他节点,并根据所述其他节点构建第一节点集合;
在确定所述第一节点集合为非空集合时,基于所述第一节点集合为所述目标节点中包括的计算任务重新分配协作节点。
7.根据权利要求6所述的数据计算任务的卸载方法,其特征在于,基于所述第一节点集合为所述目标节点中包括的计算任务重新分配协作节点,包括:
计算所述目标节点中包括的计算任务的执行成本,并根据所述执行成本对所述计算任务排序;
从排序结果中提取执行成本最大的计算任务作为目标任务,并计算所述第一节点集合中所包括的其他节点中包括的计算任务的总执行成本;
从所述第一节点集合中提取总执行成本最小的节点作为当前节点,并将所述目标执行任务分配至所述当前节点。
8.根据权利要求6所述的数据计算任务的卸载方法,其特征在于,在基于所述第一节点集合为所述目标节点中包括的计算任务重新分配协作节点之后,所述数据计算任务的卸载方法还包括:
更新所述多接入边缘计算网络中包括的所有节点的任务数量进行更新,并判断更新后的目标节点的任务数量是否大于预设阈值;
若是,则重复协作节点分配步骤,直至目标节点的任务数量小于预设阈值。
9.一种数据计算任务的卸载装置,其特征在于,包括:
网络状态流信息计算模块,用于通过计算卸载模块接收请求节点发送的计算卸载请求,并获取网络状态图模块中包括的网络状态图模型,以及所述网络状态图模型中包括的各节点的节点性能信息以及链路状态信息;根据各节点的节点性能信息以及链路状态信息,计算多接入边缘计算网络的当前网络状态流信息;
时延计算模块,用于根据所述当前网络状态流信息,计算所述计算卸载请求中包括的数据计算任务在请求节点进行本地执行的第一时延,以及卸载在协作节点上执行的第二时延;
卸载决策计算模块,用于根据所述第一时延以及第二时延构建卸载费用流模型,并利用所述计算卸载模块根据所述卸载费用流模型,以最小化所述多接入边缘计算网络中所有任务处理的总时延为第一目标,以使用支持高并发的改进最小费用最大流为第二目标,计算所述数据计算任务的卸载决策,包括:
其中,表示最小化将计算任务卸载到协作节点的总时延,M表示请求节点的第一节点数量,N表示协作节点的第二节点数量,xm,n表示卸载决策,xm,n=1表示请求节点m将数据计算任务卸载至协作节点n;xm,N+m=1表示数据计算任务在请求节点本地执行;为第二时延,为第一时延;Dm为数据计算任务的输入数据量、Rm,n为平均链路速率,Wm为任务工作量,Fn为第二计算速度,Fm为第一计算速度;
数据计算任务卸载模块,用于将所述卸载决策发送至所述请求节点,以使得所述请求节点将所述数据计算任务发送至所述卸载决策中包括的协作节点,实现所述数据计算任务的卸载。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任一项所述的数据计算任务的卸载方法。
11.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-8任一项所述的数据计算任务的卸载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111652283.4A CN114296828B (zh) | 2021-12-30 | 2021-12-30 | 数据计算任务的卸载方法及装置、存储介质、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111652283.4A CN114296828B (zh) | 2021-12-30 | 2021-12-30 | 数据计算任务的卸载方法及装置、存储介质、设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114296828A CN114296828A (zh) | 2022-04-08 |
CN114296828B true CN114296828B (zh) | 2024-08-06 |
Family
ID=80973305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111652283.4A Active CN114296828B (zh) | 2021-12-30 | 2021-12-30 | 数据计算任务的卸载方法及装置、存储介质、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114296828B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995023A (zh) * | 2021-03-02 | 2021-06-18 | 北京邮电大学 | 一种多接入边缘计算网络计算卸载系统及其计算卸载方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104869151A (zh) * | 2015-04-07 | 2015-08-26 | 北京邮电大学 | 一种业务卸载方法及系统 |
US10037231B1 (en) * | 2017-06-07 | 2018-07-31 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method and system for jointly determining computational offloading and content prefetching in a cellular communication system |
CN108449281B (zh) * | 2018-03-26 | 2020-12-08 | 北京交通大学 | 网络流量协同卸载方法及协同卸载控制器 |
CN112000388B (zh) * | 2020-06-05 | 2022-08-23 | 国网江苏省电力有限公司信息通信分公司 | 基于多边缘集群协同的并发任务调度方法及装置 |
CN111953758B (zh) * | 2020-08-04 | 2023-05-30 | 国网河南省电力公司信息通信公司 | 一种边缘网络计算卸载和任务迁移方法及装置 |
CN112911016B (zh) * | 2021-02-25 | 2022-04-08 | 北京邮电大学 | 边端协同计算卸载方法及系统、电子设备和存储介质 |
-
2021
- 2021-12-30 CN CN202111652283.4A patent/CN114296828B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995023A (zh) * | 2021-03-02 | 2021-06-18 | 北京邮电大学 | 一种多接入边缘计算网络计算卸载系统及其计算卸载方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114296828A (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
CN110297699B (zh) | 调度方法、调度器、存储介质及系统 | |
CN111641973B (zh) | 一种雾计算网络中基于雾节点协作的负载均衡方法 | |
CN107734558A (zh) | 一种基于多服务器的移动边缘计算控制及资源调度方法 | |
WO2019072162A1 (zh) | 虚拟网络映射方法、设备和存储介质 | |
CN110069341B (zh) | 边缘计算中结合功能按需配置的有依赖关系任务的调度方法 | |
CN108170530B (zh) | 一种基于混合元启发式算法的Hadoop负载均衡任务调度方法 | |
CN108897606B (zh) | 多租户容器云平台虚拟网络资源自适应调度方法及系统 | |
WO2020134133A1 (zh) | 一种资源配置方法、变电站及计算机可读存储介质 | |
CN107666448B (zh) | 一种时延感知下的5g虚拟接入网映射方法 | |
CN102857548A (zh) | 一种移动云计算资源优化配置方法 | |
WO2022142277A1 (zh) | 一种通信架构的动态调节方法及系统 | |
Meng et al. | A utility-based resource allocation scheme in cloud-assisted vehicular network architecture | |
CN114595049A (zh) | 一种云边协同任务调度方法及装置 | |
CN115580882A (zh) | 动态网络切片资源分配方法及装置、存储介质及电子设备 | |
CN112486653A (zh) | 调度多类型计算资源的方法、装置和系统 | |
CN110113140A (zh) | 一种雾计算无线网络中的计算卸载方法 | |
CN115955479A (zh) | 一种云边端协作系统中的任务快速调度与资源管理方法 | |
CN117439655B (zh) | 一种空间太赫兹信息中心网络轻量级缓存方法及装置 | |
CN110167031A (zh) | 一种面向集中式基站的资源分配方法、设备及存储介质 | |
Durga et al. | Context-aware adaptive resource provisioning for mobile clients in intra-cloud environment | |
US10986036B1 (en) | Method and apparatus for orchestrating resources in multi-access edge computing (MEC) network | |
CN115809148B (zh) | 一种面向边缘计算的负载均衡任务调度方法及装置 | |
CN113010317A (zh) | 联合服务部署与任务卸载方法、装置、计算机设备及介质 | |
CN114296828B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |