发明内容
基于此,有必要针对传统的基于边缘计算的任务调度方案难以保障任务分配的公平性以及任务处理的效率的问题,提供一种高效的多工作流任务分配方法、装置、计算机设备和存储介质。
一种多工作流任务分配方法,方法包括:
获取待分配的多工作流任务,将多工作流任务转换为多阶段子任务集;
将多阶段子任务集的当前任务信息发送至各边缘计算节点,当前任务信息包括奖励分配机制;
接收各边缘计算节点针对当前任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集,目标任务选取策略集为满足预设均衡条件下的任务选取策略集;
基于目标任务选取策略集,检测多阶段子任务集的任务选取率,根据任务选取率的检测结果对奖励分配机制进行调整,直至多阶段子任务集的任务选取率满足预设要求,得到最佳任务选取策略集。
在其中一个实施例中,预设的博弈要求包括任务选取要求;接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集包括:
接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,当前任务选取策略集是各边缘计算节点在一轮博弈结束后,根据任务信息、自身性能状态以及预设利润最大化函数制定的任务选取策略构成的集合;
按照任务选取要求调整当前任务选取策略集,计算调整后的任务选取策略集与上一轮博弈接收到的任务选取策略集的差值;
当检测到差值大于预设阈值时,将调整后的任务选取策略集更新为当前任务选取策略集发送至各边缘计算节点;
返回接收各边缘计算节点发送的当前任务选取策略集的步骤,当检测到差值小于或等于预设阈值时,将差值小于或等于预设阈值时对应的任务选取策略集确定为目标任务选取策略集。
在其中一个实施例中,按照任务选取要求调整当前任务选取策略集包括:
按照任务选取要求,检测当前任务选取策略集;
当检测到至少两个边缘计算节点同时选取某一个任务时,将该任务随机分配给同时选取该任务的任意一个边缘计算节点,得到调整后的任务选取策略集。
在其中一个实施例中,预设的博弈要求还包括博弈循环次数要求;接收各边缘计算节点针对当前任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集之前,还包括:
统计各边缘计算节点的当前博弈循环次数;
接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集包括:
当当前博弈循环次数小于或等于预设博弈循环次数时,接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集。
在其中一个实施例中,奖励分配机制与任务量以及任务重要程度有关;根据任务选取率的检测结果对奖励分配机制进行调整包括:
根据任务选取率的检测结果,按照预设的步长对奖励分配机制的参数进行调节,以改变任务量以及任务重要程度的权重。
在其中一个实施例中,根据任务选取率的检测结果对奖励分配机制进行调整,直至多阶段子任务集的任务选取率满足预设要求,得到最佳任务选取策略集包括:
当检测到多阶段子任务集的任务选取率未满足预设要求时,根据任务选取率的检测结果对奖励分配机制进行调参优化,得到调整后的当前任务信息;
将调整后的当前任务信息更新为当前任务信息,返回将多阶段子任务集的当前任务信息发送至各边缘计算节点的步骤,直到检测到多阶段子任务集的任务选取率满足预设要求。
在其中一个实施例中,还包括:
当自检到多阶段子任务集中存在未被各边缘计算节选取的任务时,选择该未被选取的任务。
一种多工作流任务分配装置,装置包括:
任务转换模块,用于获取待分配的多工作流任务,将多工作流任务转换为多阶段子任务集;
任务信息发送模块,用于将多阶段子任务集的当前任务信息发送至各边缘计算节点,当前任务信息包括奖励分配机制;
策略集调整模块,用于接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集,目标任务选取策略集为满足预设均衡条件下的任务选取策略集;
反馈调节模块,用于基于目标任务选取策略集,检测多阶段子任务集的任务选取率,根据任务选取率的检测结果对奖励分配机制进行调整,直至多阶段子任务集的任务选取率满足预设要求,得到最佳任务选取策略集。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待分配的多工作流任务,将多工作流任务转换为多阶段子任务集;
将多阶段子任务集的当前任务信息发送至各边缘计算节点,当前任务信息包括奖励分配机制;
接收各边缘计算节点针对当前任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集,目标任务选取策略集为满足预设均衡条件下的任务选取策略集;
基于目标任务选取策略集,检测多阶段子任务集的任务选取率,根据任务选取率的检测结果对奖励分配机制进行调整,直至多阶段子任务集的任务选取率满足预设要求,得到最佳任务选取策略集。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待分配的多工作流任务,将多工作流任务转换为多阶段子任务集;
将多阶段子任务集的当前任务信息发送至各边缘计算节点,当前任务信息包括奖励分配机制;
接收各边缘计算节点针对当前任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集,目标任务选取策略集为满足预设均衡条件下的任务选取策略集;
基于目标任务选取策略集,检测多阶段子任务集的任务选取率,根据任务选取率的检测结果对奖励分配机制进行调整,直至多阶段子任务集的任务选取率满足预设要求,得到最佳任务选取策略集。
上述多工作流任务分配方法、装置、计算机设备和存储介质,首先,通过将包含大量数据量的多阶段工作流任务拆分为数据量小的多阶段子任务集,能够实现多阶段工作流的并行处理,提高数据处理速度,其次,通过引入边缘计算节点间的博弈处理的理论,按照预设博弈要求,对各边缘计算节点提交的任务选取策略进行调整,使得各边缘计算节点能够实现利润最大化,最后,通过迭代优化奖励分配机制,对任务选取策略集进行反馈调节,能够得到最佳任务选取策略集,综上,通过上述方案能够在保证多阶段子任务集的任务选取率的前提下,保障了任务分配的公平性并提高了任务处理的效率。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的多工作流任务分配方法,可应用于如图1所示的应用环境图中,服务器100获取需要处理的待分配的多工作流任务,将多工作流任务转换为多阶段子任务集(包括多个阶段子任务集,每个阶段子任务集又包括多个任务,如图1所示,包括任务1、任务2、任务3以及任务4,且各阶段子任务集需要按照一定顺序进行处理),然后,将多阶段子任务集的当前任务信息发送至各边缘计算节点(也就是图1中的电脑102、手机104、平板106以及便携式电脑108),当前当前任务信息包括奖励分配机制,边缘计算节点接收到当前任务信息后,会根据当前任务信息、自身的性能状态以及预设的利润最大化函数,与除自身之外的边缘计算节点进行博弈,最终,各边缘计算节点制定出任务选取策略集,完成多阶段任务集的任务选取,使得针对多阶段任务集中每一个阶段子任务集的任务选取达到均衡,服务器102接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,根据预设博弈要求对当前任务选取策略集进行调整,得到目标任务选取策略集,根据目标任务选取策略集,基于目标任务选取策略集,检测多阶段子任务集的任务选取率,根据任务选取率的检测结果对奖励分配机制进行调整,直至多阶段子任务集的任务选取率满足预设要求,得到最佳任务选取策略集。其中,边缘计算节点可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在其中一个实施例中,如图2所示,提供了一种多工作流任务分配方法,以该方法应用于服务器为例进行说明,包括以下步骤::
步骤S200,获取待分配的多工作流任务,将多工作流任务转换为多阶段子任务集。
工作流是指一个整体的各部分或阶段按照一定的规则进行处理,并将各自处理结果按照给定规则进行传递的过程。多工作流任务即是在工作流环境下需要处理的多个业务。在实际应用中,工作人员对工作流任务以及边缘节点进行定义并建模,构建多阶段多子任务并行处理模型,具体的,建模过程包括:
1)时间t内有n个同类型的多阶段工作流任务:R={R1,R2,…,Rn};
2)多阶段工作流任务:Rj={rj,1,rj,2,…,rj,m}(1≤j≤n);
3)第i个阶段子任务集:Si={r1,i,r2,i,…,rn,i}(1≤i≤m);
4)定义子任务r
j,i=(v
j,i,C
j,i,w
j,i),其中,v
j,i代表任务量、c
j,i代表任务重要程度,w
j,i代表奖励分配,奖励分配
a
c+a
v=1,a
c以及a
v为变量,W
i为子任务集的奖励分配;
5)将各边缘计算节点定义为边缘计算节点集N={N1,N2,…,Nl},其中第k个边缘计算节点(以下简称节点)Nk=(fk,pk,Mk),1≤k≤l,fk,,pk以及Mk分别表示节点自身的计算速度、静态功率以及统计参考表。Mk还包含元素mj,i,k′,其代表节点Nk′(1≤k′≠k≤l)选取子任务rj,i的概率,与任务奖励、节点已经确认选取的任务数有关,mj,i,k′用于为节点Nk提供其余节点的选取参考,从而使节点Nk做出最有利于自身的任务选取策略;
6)定义任务选取率ρ,预设任务选取率为ρ
0,并预设任务选取率要求为ρ≥ρ
0,ρ与所有边缘计算节点在面对各阶段任务集时,所完成的任务量占总任务量的数据量比例以及任务重要程度比例有关(
π
1与π
2为常数(本实施例中,π
1与π
2分别取0.5),且π
1+π
2=1),进一步的,可以将任务选取率要求转换为要求每个阶段任务集合的完成率ρ
i≥ρ
0;
7)预设各边缘计算节点的利润最大化函数(即目标函数)
其中,δ
j,i=1,表示任务r
j,i由节点N
k处理,从而使节点N
k获得的利润为u
j,i,k,δ
j,i=0,表示任务r
j,i不是由节点N
k处理,使得节点N
k获得的利润为0;u
j,i,k=w
j,i-e
j,i,k为节点N
k在规定时间内完成任务r
j,i时所获利润,e
j,i,k为所需能耗,可表示为e
j,i,k=p
k×β×v
j,i,其中β×v
j,i表示任务r
j,i所需计算周期数。
构建完成上述多阶段多子任务并行处理模型后,使得服务器能够根据多阶段多子任务并行处理模型将获取的待分配的多工作流任务(也就是原始多工作任务流)转换为多阶段子任务集。例如,假设多工作流任务为一项计算密集型的目标识别任务,其包括5个阶段任务(可看作多阶段子任务集),即灰度,索贝尔,高斯模糊,快速转角和SAD(Sum ofabsolute differences,绝对值之和)匹配,这5个阶段的任务需按照给定的顺序进行,后一阶段需在前一阶段完成后才能开始,且整个任务具有时间限制。
步骤S400,将多阶段子任务集的当前任务信息发送至各边缘计算节点,当前任务信息包括奖励分配机制。
多阶段子任务集的当前任务信息包括各阶段子任务集的任务量vj,i、任务重要程度cj,i,奖励分配wj,i。在实际应用中,因需要得到最佳任务分配策略后,按照最佳任务分配策略完成多阶段子任务集的分配,因此,服务器完成任务转换后将多阶段子任务集的当前任务信息发送至各边缘计算节点即可,并非将任务本身发送至各边缘计算节点。
步骤S600,接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整所述当前任务选取策略集,得到目标任务选取策略集,目标任务选取策略集为满足预设均衡条件下的任务选取策略集。
目标任务选取策略集是在一轮博弈过程中,按照预设的博弈要求对当前任务选取策略进行调整后,得到的一个博弈均衡点,博弈均衡点也可以称为纳什均衡或非合作博弈均衡,是博弈论的一个重要术语。在一个博弈过程中,无论对方的策略选择如何,博弈玩家的一方都会选择某个确定的策略,则该策略被称作支配性策略。如果两个博弈玩家的策略组合分别构成各自的支配性策略,那么这个策略组合就被定义为纳什平衡。本实施例中,根据博弈论构建了非协作博弈论模型,各边缘计算节点(节点自身都具有自主选择任务的权利)在接收到服务器发送的各阶段任务集的任务信息后,会制定出各自的当前任务选取策略(也就是博弈策略),并将当前任务选取策略提交至服务器,得到当前任务选取策略集,服务器根据预设的博弈要求对各当前任务选取策略集进行调整,使得各边缘计算节点循环与除自身外的其他节点进行博弈,最终得到达到预设博弈均衡条件下的目标任务选取策略集,即当前的任务选取策略集与上一轮博弈确定的任务选取策略集的差值小于或等于给定值ε时,则认为任务选取状态已达到均衡状态,将满足预设博弈均衡条件下的当前任务选取策略集确定为目标任务选取策略集。
步骤S800,基于目标任务选取策略集,检测多阶段子任务集的任务选取率,根据任务选取率的检测结果对奖励分配机制进行调整,直至多阶段子任务集的任务选取率满足预设要求,得到最佳任务选取策略集。
在其中一个实施例中,步骤S800中根据任务选取率的检测结果对奖励分配机制进行调整,直至多阶段子任务集的任务选取率满足预设要求,得到最佳任务选取策略集包括:当检测到多阶段子任务集的任务选取率未满足预设要求时,根据任务选取率的检测结果对奖励分配机制进行调参优化,得到调整后的当前任务信息;将调整后的当前任务信息更新为当前任务信息,返回将多阶段子任务集的当前任务信息发送至各边缘计算节点的步骤,直到检测到多阶段子任务集的任务选取率满足预设要求。
各边缘计算节点接收到服务器发送的各阶段任务集的任务信息后,会开始选取任务,服务器按照预设要求对多阶段子任务集的任务选取率进行检测(也就是依次对各阶段子任务集的任务选取率进行检测),检测针对各阶段子任务集,各边缘计算节点是否在规定时限t内完成任务以及任务选取比例情况,也就是检测各边缘计算节点是否在时限t的任务选取率是否达到要求ρi≥ρ0。若第i阶段子任务集Si的任务选取率未满足预设要求,则对任务集Si的奖励分配Wi进行调参优化,得到调整后的当前任务信息、并将调整后的当前任务信息更新为当前任务信息,将当前任务信息发送至各边缘计算节点,要求各边缘计算节点重新选取任务,使其重新提交任务选取策略,然后返回步骤S600,直到检测到子任务集Si的任务选取率满足预设要求;若子任务集Si的任务选取率满足预设要求或执行任务的时间大于或等于时限t,则将满足预设要求或时限到达时的当前的奖励分配Wi作为下一阶段子任务集Si+1的初始奖励分配机制,继续下一个阶段子任务集Si+1的传输,以此方式完成多阶段子任务集的任务选取率的检测,直到所有阶段的子任务集的选取率或时限都达到要求,得到最佳任务选取策略集。
上述多工作流任务分配方法、装置、计算机设备和存储介质,首先,通过将包含大量数据量的多阶段工作流任务拆分为数据量小的多阶段子任务集,能够实现多阶段工作流的并行处理,提高数据处理速度,其次,通过引入边缘计算节点间的博弈处理的理论,按照预设博弈要求,对各边缘计算节点提交的任务选取策略进行调整,使得各边缘计算节点能够实现利润最大化,最后,通过迭代优化奖励分配机制,对任务选取策略集进行反馈调节,能够得到最佳任务选取策略集,综上,通过上述方案能够在保证多阶段子任务集的任务选取率的前提下,保障了任务分配的公平性并提高了任务处理的效率。
如图3所示,在其中一个实施例中,还包括:步骤S900,当自检到多阶段子任务集中存在未被各边缘计算节选取的任务时,选择该未被选取的任务。
在将多阶段子任务集的当前任务信息发送至各边缘计算节点后,各边缘计算节点会对选取该多阶段子任务集中任务,自检多阶段子任务集是否存在边缘计算节点未选取的任务,当检测到多阶段子任务集中存在未被各边缘计算节选取的任务时,由服务器自身选择该未被选取的任务。本实施例中,对各边缘计算节点的任务选取进行筛查,并由自身选取了未被边缘计算节点选取的任务,节省了重新将任务信息发送至各边缘计算节点的时间,提高任务分配速度。
如图4所示,在其中一个实施例中,预设的博弈要求包括任务选取要求;步骤S600包括:
步骤S602,接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,当前任务选取策略集是各边缘计算节点在一轮博弈结束后,根据任务信息、自身性能状态以及预设利润最大化函数制定的任务选取策略构成的集合;
步骤S604,按照任务选取要求调整当前任务选取策略集,计算调整后的任务选取策略集与上一轮博弈接收到的任务选取策略集的差值;
步骤S606,当检测到差值大于预设阈值时,将调整后的任务选取策略集更新为当前任务选取策略集发送至各边缘计算节点;
步骤S608,返回步骤S602,当检测到差值小于或等于预设阈值时,将差值小于或等于预设阈值时对应的任务选取策略集确定为目标任务选取策略集。
在另一个实施例中,预设的博弈要求包括博弈循环次数要求;步骤S600之前,还包括:统计各边缘计算节点的当前博弈循环次数;当所述当前博弈循环次数小于或等于预设博弈循环次数时,接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集;当所述当前博弈循环次数大于预设博弈循环次数时,发送博弈终止指令至所述各边缘计算节点,将上一轮博弈后各边缘计算节点发送的任务选取策略集确定为目标任务选取策略集。
边缘计算节点的自身性能状态即指上述实施例中的节点自身的计算速度、静态功率以及统计参考表。在实际应用中,具体上述步骤S600具体包括:
1)根据博弈论构建了非协作博弈论模型G=(N,θ,U),定义各边缘计算节点N={N1,N2,…,Nl}为博弈玩家,博弈对象为各阶段任务集Si={r1,i,r2,i,…,rn,i},节点Nk的任务选取策略θk作为其博弈策略,由子任务集可知θk有μ=2n种选择策略;所有节点的博弈策略集为θ=(θ1,θ2,…,θ1)。各边缘计算节点的利润最大化函数可以表示为U=(U1,i,U2,i,…,Ul,i),其中Uk,i(θ1,θ2,…,θl)为各边缘计算节点采用任务选取策略集θ={θ1,θ2,…,θl}时,节点Nk采用策略θk后所获得的利润值。
2)求解博弈均衡:博弈均衡可以表示为各边缘计算节点在对阶段子任务集S
i的博弈过程中,节点N
k(1≤k≤l)存在任务选取策略集
使得对任意的θ
k都满足以下不等式:
从而可以得到
为各边缘计算节点的博弈均衡点。具体的,关于各边缘计算节点的博弈,做出如下规定:
a)边缘计算节点需根据自身状态信息也就是fk,,pk以及Mk,做出最有利于自身利润最大化的任务选择,且保证任务能够按照预设要求完成,否则将不获取利润;b)各边缘计算节点完成一轮博弈后,将各自的任务选取策略θk提交至服务器,得到任务选取策略集;c)当检测到多个边缘计算节点同时选取某一个任务时,将该任务随机分配给同时选取该任务的任意一个边缘计算节点处理,得到调整后的任务选取策略集,然后再将本轮博弈策略传输给每个节点;d)当子任务rj,i被确定分配给边缘节点Nk时,边缘计算节点获得的利润Uk,i是dj,i(表示此轮博弈中选取该任务的边缘计算节点数目)的递减函数,即uj,i,k=wj,i/f(dj,i)-ej,i,k,其中f(dj,i)是定义的关于dj,i的函数。
具体的,按照预设的博弈要求调整所述当前任务选取策略集,得到目标任务选取策略集的过程如下所示:
子步骤1:根据非协作博弈论模型G,初始化Si,Wi,Mk,θ,并预设博弈循环次数为n;
子步骤2:统计各边缘计算节点的当前博弈循环次数,当当前博弈循环次数小于或等于预设博弈循环次数n时,跳转至子步骤3;
子步骤3:接收各边缘计算节点在每一轮博弈中,逐次按照上述规定a)、b)及Mk制定的任务选取策略集θ′={θ′1,θ′2,…,θ′l};
子步骤4:按照规定c)调整任务选取策略集θ′,得到调整后的任务选取策略集θ′,并计算调整后的任务选取策略集θ′与上一轮博弈得到任务选取策略集θ的差值,如果差值大于给定值ε,将调整后的任务选取策略集θ′传输给各边缘计算节点进行更新,继续返回子步骤2;如果差值小于或等于给定值ε(表明任务选取达到均衡状态),则发送博弈终止指令至各边缘计算节点,跳转子步骤6;
子步骤5:博弈循环次数加1,判断博弈循环次数:若博弈循环次数大于n,则跳转子步骤6,否则返回子步骤4;
子步骤6:输出目标任务选取策略集θ。
上述实施例中,通过引入非协作博弈论模型,使得各边缘计算节点能在各边缘计算节点的性能存在差异以及服务器与各边缘计算节点的信息不对称的前提下,按照博弈规定进行任务选取,并使得任务选取的状态达到均衡,保证任务分配的公平性以及质量。
在其中一个实施例中,奖励分配机制与任务量以及任务重要程度有关;根据任务选取率的检测结果对奖励分配机制进行调参优化包括:根据任务选取率的检测结果,按照预设的步长对奖励分配机制的参数进行调节,以改变任务量以及任务重要程度的偏重比例。
由上述实施例可知,任务选取率ρ与所有边缘计算节点在面对各阶段任务集时,所完成的任务量占总任务量的数据量比例以及任务重要程度比例有关。根据任务选取率的检测结果,按照预设的步长对奖励分配机制的参数进行调节是指对奖励分配机制中的变量ac或av进行调节。当检测结果表明主要是因为数据量的完成率不高,使得多阶段子任务集的任务选取率未满足预设要求时,则设定步长σ,以步长σ为调节单位对变量av进行递增调节,增大数据量的权重,相应的,减少任务重要程度的权重。本实施例中,步长σ=0.02,即,每次以0.02的增量完成对变量ac或av的调节。可以理解的是,在其他实施例中,步长σ的值还可以清理设定为其他数值。本实施例中,分析多阶段子任务集的任务选取率,根据任务选取率的检测结果对奖励分配制度进行调节,能够有的放矢地实现任务分配的调整,保证任务分配的合理性。
为更加清楚地解释本申请的提出的多工作流任务分配方法,下面结合一个具体实例进行说明,实例中,多工作流任务以图像识别中的图像处理任务为例,图像处理任务包括图像采样、图像增强、图像复原、图像编码与压缩和图像分割5个过程。首先,做出以下规定:
1)假设图像处理任务为在时间t内需要对n个路口摄像头的图像进行处理,表示为R={R1,R2,…,Rn};
2)对于每个路口摄像头的图像处理是同一个处理流程,即图像采样、图像增强、图像复原、图像编码与压缩和图像分割5个阶段过程,并且每个摄像头选取的任务量以及任务重要程度都各不相同,例如第个j路口的任务Rj={rj,1,rj,2,rj,3,rj,4,rj,5}(1≤j≤n);同时可以得到各阶段子任务集Si={r1,i,r2,i,…,rn,i}(1≤i≤5)。其中第j个路口任务的第i阶段子任务rj,i=(vj,i,cj,i,wj,i),分别表示图像数据量大小、图像重要程度以及奖励分配机制,其中,奖励分配机制为:
3)边缘计算节点可以假设为CPU、GPU、FPGA等处理器,确定好处理速率fk、功率pk等参数,本实施例采用Core i5-2450M CPU@2.50GHz、Core i7-8700 CPU@3.20GHz;
4)初始化奖励分配机制中的参数ac=av=0.5,预设任务选取率ρ0=0.9,且π1=π2=0.5。
根据上述规定,多工作流任务分配方法包括:
(1)获取待分配的图像处理任务,根据规定2)将图像处理任务转换为包含5个阶段的多阶段子任务集;
(2)将多阶段子任务集的当前任务信息发送至各边缘计算节点,当前任务信息包括奖励分配机制,任务量以及任务重要程度;
(3)接收各个边缘计算节点(采用Core i7-8700 CPU@3.20GHz)发送的针对当前任务信息制定实现自身利润最大化的当前任务选取策略集θ;
(4)根据当前任务选取策略集θ,将多阶段子任务集发送至各边缘计算节点;
(5)检测子任务集Si的任务选取率ρ,若任务选取率ρ小于0.9时,则以步长0.02对参数ac或av进行调节,并以调整后的奖励分配机制要求各边缘计算节点重新选取任务,并重复步骤(3),当多阶段子任务集的任务选取率都大于或等于0.9要求或时限等于t时,则将最后得到的θ确定为最佳任务选取策略集;
(6)根据最佳任务选取策略集,将多阶段子任务集发送至各边缘计算节点,若检测Si中存在边缘计算节点未完成的子任务rj,i,由服务器自身执行未完成的任务。
应该理解的是,虽然图2至图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在其中一个实施例中,如图5所示,提供了一种多工作流任务分配装置,包括:任务转换模块510、任务信息发送模块520、策略集调整模块530和反馈调节模块540,其中:
任务转换模块510,用于获取待分配的多工作流任务,将多工作流任务转换为多阶段子任务集;
任务信息发送模块520,用于将多阶段子任务集的当前任务信息发送至各边缘计算节点,当前任务信息包括奖励分配机制;
策略集调整模块530,用于接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集,目标任务选取策略集为满足预设均衡条件下的任务选取策略集;
反馈调节模块540,用于基于目标任务选取策略集,检测多阶段子任务集的任务选取率,根据任务选取率的检测结果对奖励分配机制进行调整,直至多阶段子任务集的任务选取率满足预设要求,得到最佳任务选取策略集。
在其中一个实施例中,策略集调整模块530还用于接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,当前任务选取策略集是各边缘计算节点在一轮博弈结束后,根据任务信息、自身性能状态以及预设利润最大化函数制定的任务选取策略构成的集合,按照任务选取要求调整当前任务选取策略集,计算调整后的任务选取策略集与上一轮博弈接收到的任务选取策略集的差值,当检测到差值大于预设阈值时,将调整后的任务选取策略集更新为当前任务选取策略集发送至各边缘计算节点,返回接收各边缘计算节点发送的当前任务选取策略集的步骤,当检测到差值小于或等于预设阈值时,将差值小于或等于预设阈值时对应的任务选取策略集确定为目标任务选取策略集。
在其中一个实施例中,策略集调整模块530还用于按照任务选取要求,检测当前任务选取策略集,当检测到至少两个边缘计算节点同时选取某一个任务时,将该任务随机分配给同时选取该任务的任意一个边缘计算节点,得到调整后的任务选取策略集。
在其中一个实施例中,策略集调整模块530还用于统计各边缘计算节点的当前博弈循环次数,当当前博弈循环次数小于或等于预设博弈循环次数时,接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集。
在其中一个实施例中,反馈调节模块540还用于根据任务选取率的检测结果,按照预设的步长对奖励分配机制的参数进行调节,以改变任务量以及任务重要程度的权重。
在其中一个实施例中,反馈调节模块540还用于当检测到多阶段子任务集的任务选取率未满足预设要求时,根据任务选取率的检测结果对奖励分配机制进行调参优化,得到调整后的当前任务信息,将调整后的当前任务信息更新为当前任务信息,返回将多阶段子任务集的当前任务信息发送至各边缘计算节点的步骤,直到检测到多阶段子任务集的任务选取率满足预设要求。
如图6所示,在其中一个实施例中,多工作流任务分配装置还包括自检模块550,用于当自检到多阶段子任务集中存在未被各边缘计算节选取的任务时,选择该未被选取的任务。
关于多工作流任务分配装置的具体限定可以参见上文中对于多工作流任务分配方法的限定,在此不再赘述。上述多工作流任务分配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在其中一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储工作流任务数据以及任务选取策略集等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多工作流任务分配方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在其中一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取待分配的多工作流任务,将多工作流任务转换为多阶段子任务集,将多阶段子任务集的当前任务信息发送至各边缘计算节点,当前任务信息包括奖励分配机制,接收各边缘计算节点针对当前任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集,目标任务选取策略集为满足预设均衡条件下的任务选取策略集,基于目标任务选取策略集,检测多阶段子任务集的任务选取率,根据任务选取率的检测结果对奖励分配机制进行调整,直至多阶段子任务集的任务选取率满足预设要求,得到最佳任务选取策略集。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,当前任务选取策略集是各边缘计算节点在一轮博弈结束后,根据任务信息、自身性能状态以及预设利润最大化函数制定的任务选取策略构成的集合,按照任务选取要求调整当前任务选取策略集,计算调整后的任务选取策略集与上一轮博弈接收到的任务选取策略集的差值,当检测到差值大于预设阈值时,将调整后的任务选取策略集更新为当前任务选取策略集发送至各边缘计算节点,返回接收各边缘计算节点发送的当前任务选取策略集的步骤,当检测到差值小于或等于预设阈值时,将差值小于或等于预设阈值时对应的任务选取策略集确定为目标任务选取策略集。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:按照任务选取要求,检测当前任务选取策略集,当检测到至少两个边缘计算节点同时选取某一个任务时,将该任务随机分配给同时选取该任务的任意一个边缘计算节点,得到调整后的任务选取策略集。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:统计各边缘计算节点的当前博弈循环次数,当当前博弈循环次数小于或等于预设博弈循环次数时,接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:根据任务选取率的检测结果,按照预设的步长对奖励分配机制的参数进行调节,以改变任务量以及任务重要程度的权重。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:当检测到多阶段子任务集的任务选取率未满足预设要求时,根据任务选取率的检测结果对奖励分配机制进行调参优化,得到调整后的当前任务信息,将调整后的当前任务信息更新为当前任务信息,返回将多阶段子任务集的当前任务信息发送至各边缘计算节点的步骤,直到检测到多阶段子任务集的任务选取率满足预设要求。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:当自检到多阶段子任务集中存在未被各边缘计算节选取的任务时,选择该未被选取的任务。
在其中一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待分配的多工作流任务,将多工作流任务转换为多阶段子任务集,将多阶段子任务集的当前任务信息发送至各边缘计算节点,当前任务信息包括奖励分配机制,接收各边缘计算节点针对当前任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集,目标任务选取策略集为满足预设均衡条件下的任务选取策略集,基于目标任务选取策略集,检测多阶段子任务集的任务选取率,根据任务选取率的检测结果对奖励分配机制进行调整,直至多阶段子任务集的任务选取率满足预设要求,得到最佳任务选取策略集。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,当前任务选取策略集是各边缘计算节点在一轮博弈结束后,根据任务信息、自身性能状态以及预设利润最大化函数制定的任务选取策略构成的集合,按照任务选取要求调整当前任务选取策略集,计算调整后的任务选取策略集与上一轮博弈接收到的任务选取策略集的差值,当检测到差值大于预设阈值时,将调整后的任务选取策略集更新为当前任务选取策略集发送至各边缘计算节点,返回接收各边缘计算节点发送的当前任务选取策略集的步骤,当检测到差值小于或等于预设阈值时,将差值小于或等于预设阈值时对应的任务选取策略集确定为目标任务选取策略集。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:按照任务选取要求,检测当前任务选取策略集,当检测到至少两个边缘计算节点同时选取某一个任务时,将该任务随机分配给同时选取该任务的任意一个边缘计算节点,得到调整后的任务选取策略集。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:统计各边缘计算节点的当前博弈循环次数,当当前博弈循环次数小于或等于预设博弈循环次数时,接收各边缘计算节点针对任务信息反馈的当前任务选取策略集,按照预设的博弈要求调整当前任务选取策略集,得到目标任务选取策略集。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据任务选取率的检测结果,按照预设的步长对奖励分配机制的参数进行调节,以改变任务量以及任务重要程度的权重。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:当检测到多阶段子任务集的任务选取率未满足预设要求时,根据任务选取率的检测结果对奖励分配机制进行调参优化,得到调整后的当前任务信息,将调整后的当前任务信息更新为当前任务信息,返回将多阶段子任务集的当前任务信息发送至各边缘计算节点的步骤,直到检测到多阶段子任务集的任务选取率满足预设要求。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:当自检到多阶段子任务集中存在未被各边缘计算节选取的任务时,选择该未被选取的任务。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。