一种基于改进非支配遗传算法的多目标云工作流调度方法与流程

文档序号:18142084发布日期:2019-07-10 11:11阅读:215来源:国知局
一种基于改进非支配遗传算法的多目标云工作流调度方法与流程

本发明涉及一种多目标云工作流调度方法,具体涉及一种基于改进非支配遗传算法的多目标云工作流调度方法,属于云计算技术领域。



背景技术:

云计算是一种分布式系统计算范例,具有资源快速提供、按使用付费以及按需弹性扩展等诸多优势,为科学应用提供了经济、高效的管理与自动运行环境。很多科学家使用工作流来构建他们的复杂应用并部署在云平台上执行。工作流可以建模为由多个任务根据数据和控制流依赖关系连接而成的有向无环图,其中“顶点”表示任务,“边”表示任务之间的数据或控制依赖关系。

通常,复杂科学工作流包含大量费时的科学计算任务。云计算的按使用付费与弹性资源模式,为大规模科学工作流的快速、分布式高效执行提供了易于访问、灵活、可扩展的基础设施与部署环境,同时也带来了很多挑战。比如,网格计算环境大多着重于任务执行时间的优化问题,而云环境下的工作流调度,除了追求最短执行完工时间,更加关注执行成本的优化。也就是说,云工作流调度往往需要同时考虑工作流执行时间、执行成本与资源利用率的优化等,是一个典型的多目标优化问题。

目前,对多目标优化问题,主要有两种解决思路:一是约束优化,即,选择一个目标作为优化目标,其余目标作为约束条件,如doga等,主要针对严格优化一个目标的场合,但是,由于约束条件的参数难以精确设定,无法保证期望的优化效果。二是基于pareto准则,对多个目标同时进行优化,并产生一组满足约束条件的pareto优化调度方案,可供决策者根据用户的实际需求从中选择最终的满意解,此类算法可分为启发式和随机搜索两种,例如,多目标异构最早完成时间(moheft)算法,是一种基于枚举的启发式方法,时间复杂度较高,不适用于处理大规模工作流调度问题。多目标差分演化(mode)算法是基于非支配遗传算法的多目标优化方法,可以找到权衡执行时间和成本的调度方案,但其基于传统的网格异构环境,直接应用于云环境较为困难。另外,基于多种群的蚁群(moacs)优化算法和粒子群(ecmsmoo)是一种随机搜索方法,采用多个种群分别优化一个目标,并通过在多个目标之间进行权衡来获得高质量的工作流调度方案,但是寻找最优pareto解集的算法性能还有待进一步提升。



技术实现要素:

本发明的目的是为解决云环境下的复杂工作流调度问题,提出一种基于改进非支配遗传算法的多目标云工作流调度方法。

本发明方法的基本思想是:采用非支配遗传算法,对满足工作流约束的虚拟机-任务调度方案进行遍历搜索,寻找同时最小化执行时间和成本的最优工作流调度方案。同时,针对现有非支配遗传算法在云工作流调度方面存在的不足,进行以下改进:(1)引入计分机制,综合考虑历史种群和当前种群信息的影响,对个体(调度方案)进行全面评价,以提高算法寻优方向的准确性;(2)采用基于层级决策和计分机制的个体评价方法,优化个体选择过程,以增强算法的自适应调节性能,使算法找到最优解集的概率进一步提升;(3)采用基于闭环反馈的自适应调节策略,一方面,当算法陷入局部寻优时,通过自适应调节算法参数改善寻优方式,以跳出局部最优域并找到更多、更靠近最优pareto前沿的解。另一方面,当算法趋于发散时,通过自适应调节个体选择策略改变寻优方向,使算法趋于收敛、加速寻优进程。

为实现上述目的,本发明采取以下技术方案。首先,初始化每个染色体,形成初始种群。然后,计算初始种群个体方案的性能指标。之后,创建初始种群层级结构。然后,迭代更新个体选择,再进行交叉变异操作、更新层级结构。

当若迭代次数达到设定上限,则整个流程结束;否则,继续迭代更新个体选择并执行后续步骤。

有益效果

本发明方法对比现有技术,具有以下优点:

1.引入计分机制思想,全面考虑当前种群和历史种群信息对个体主导信息的影响,进一步改善了种群个体评价的准确性,提高了算法迭代搜索的效率,使其能够找到更加靠近pareto前沿的解集。

2.构建种群层级结构,直观刻画了算法搜索所遍历的最优解的多样性、最优性,通过改善父代个体选择方式,并在算法迭代过程中,根据子代个体接近pareto最优的程度对种群层级结构进行动态更新,提高了算法找到的解接近pareto最优的可能性。

3.提出基于最优层级个体监测的算法搜索方向自适应调整策略,通过设置局部最优和发散检测参数,能够在算法搜索陷入局部最优或者趋于发散时,及时调整算法相关参数,改变寻优方向使其跳出局部最优或者回归收敛,不断探求更接近pareto前沿的解集。

附图说明

图1为本发明方法的流程图。

图2为简单云工作流调度dag图。

图3为层级结构示意图。

图4为采用montage_25工作流进行实验的结果对比图。

图5为采用inspiral_50工作流进行实验的结果对比图。

图6为采用epigenomics_100工作流进行实验的结果对比图。

具体实施方式

下面结合附图对本发明方法做进一步具体详细说明。

本方法考虑的两个具体优化目标为整个工作流的总执行时间和成本,现以工作流中子任务总数为12、虚拟机数量为4且种群个体数为6的简单云工作流调度问题为例,对本发明方法的具体实施方式进行详细阐述。然后,针对更复杂的工作流调度问题,进一步检验本发明方法的调度性能。

一种基于改进非支配遗传算法的多目标云工作流调度方法,如图1所示,包括以下步骤:

步骤一、种群初始化。即,初始化每个染色体,形成初始种群。

其中,染色体初始化包括任务分配方案和任务执行顺序方案。

任务分配方案初始化,通过任务分配方案编码方式随机生成;

任务执行顺序方案初始化,具体步骤为:

步骤1.1、遍历原始任务集筛选入口任务,并将其作为可执行任务加入到待执行任务队列中;所述入口任务即没有父代任务;

步骤1.2、从待执行任务队列中,随机选择一个任务加入执行顺序方案队列,同时将其从待执行任务队列中移除;

步骤1.3、对任务执行顺序方案队列中新加入的任务,检索其子任务列表。若其子任务列表中存在可执行任务,则将该子任务加入到待执行任务队列中;

步骤1.4、当所有工作流任务都被加入到当前任务执行顺序方案队列中时,任务执行顺序方案生成结束;否则转步骤1.2。

任务执行顺序方案初始化的特点是突破了现有方法的任务层级限制,最大限度地拓展了任务执行顺序方案的生成空间;同时,本方法采用待执行队列与执行顺序方案队列对任务进行管控,以确保所有任务都被加入到任务执行顺序方案之中。

步骤二、计算初始种群个体方案的性能指标。即,对初始种群中的每个个体方案,依次计算其相应的工作流执行时间、执行成本和染色体密度。其中,密度概念由nsgaii算法引入。

每个调度方案指导下的工作流执行时间和成本如下:

其中,set为工作流的总执行时间,ti表示第i个子任务,表示任务ti的完工时间,t为子任务集合;sec表示工作流的执行成本,rk表示第k个虚拟资源,表示虚拟资源rk的单价,表示虚拟资源rk的总租用时间,tu为云资源计费时间单位,r表示虚拟资源集合。任务ti的完工时间如下:

其中,表示任务ti的开始执行时间,avail[kr]为虚拟资源rk的可用时间,parent(ti)表示任务ti的父任务集合,由avail[rk]、父任务的完工时间以及父任务与ti之间的传输时间共同决定,表示任务ti在虚拟资源rk上的执行时间,fpo(ti)表示任务ti的指令长度,pc(rk)表示虚拟资源rk的处理能力,为入口任务tentry的开始执行时间,表示任务tj到任务ti的传输时间。如采用点对点传输模式,则在同一虚拟资源上执行的两个任务之间的传输时间忽略不计:

其中,表示任务tj和任务ti之间传输数据的大小,bandwidth表示虚拟资源的传输带宽,分别表示为任务tj、ti所分配的虚拟资源。

步骤三、创建初始种群层级结构,即,通过竞赛计分机制进行个体层级划分,生成初始种群层次结构。其中,竞赛计分机制是针对多目标优化问题引入的一种个体优劣评价策略,为本发明的创新点之一。其基本原理为:将每个优化目标视为一个竞赛项目,如果个体在某一项目上获胜,则获得相应得分。每个个体在多个竞赛项目上的得分之和称为该个体的获胜积分,且获胜积分较多的个体获胜。初始种群层次结构生成的具体步骤为:

步骤3.1、从种群中任取一个个体,将其层级定义为最高层级,创建初始种群层级结构,如图3(a)所示;

步骤3.2、若种群中无剩余个体,则种群层级结构初始化完成,转步骤四;否则,从种群剩余个体中任取一个个体,称之为当前个体,将当前个体与最低层级中的个体进行竞赛比较;

步骤3.3、若当前个体未战胜当前层级中的所有个体,则创建新层级并加入当前个体后,将其插入到当前层级下面,更新种群层级结构,转步骤3.2,示意图如3(b)所示;

步骤3.4、若当前个体战胜当前层级中的部分个体,则将其加入当前层级,转步骤3.2,示意图如3(c)所示;

步骤3.5、若当前个体战胜当前层级中的所有个体,且当前层级为最高层级,则创建新层级并加入当前个体后,将其插入为新的最高层级,更新种群层级结构,转3.2,示意图如3(d)所示;否则,将当前个体与当前层级的高一层级中的个体进行竞赛比较,转3.3;

值得注意的是,计分机制体现在两个方面,一是竞赛时,个体在每个竞赛项目上的相应计分;二是竞赛结束后,根据所有竞赛项目上的胜负结果对个体的计分。约定个体获胜积2分,战平积1分,战败积0分。在加入新个体的同时,需将该个体所在层级之上的所有个体总分值按(7)式进行更新:

score=score+wp(7)

其中,score表示个体的得分值,wp表示竞赛比较获胜的积分。

步骤四、迭代更新个体选择,为本算法的主要创新点之一,具体步骤为:

步骤4.1、按(8)式计算每个层级对应选中的概率,并据此生成赌盘。运用赌盘选择法,每次选中一个层级,构建特定数目的候选个体集合。

其中,hl、hp分别表示第l、p个层级,h为层级总数,表示层级hp所占的权重,hsize表示层级结构中的总层级数,为层级hp被选中的概率。β和α为层级差异因子,随算法的动态调节而变化,以避免层级数变化引起的个体更新选择不平衡,从而提升算法的优化效果,β在未进行动态调节时的值等于1。e表示科学计数常数。

若选中层级个体的数目小于设定的候选个体数目n0,则重复赌盘选择步骤直至选中的个体数大于或等于预设候选个体数;若超出设定候选个体数目n0,则通过淘汰得分较多的个体,或者淘汰得分相同个体中密度值较大的个体,剔除多余的候选个体直至候选个体数等于预设候选个体数;

步骤4.2、从候选个体集中选出进行交叉变异的父代个体,综合采用以下两种方法:二元锦标赛选择法和随机选择法,具体如下:

其中,choseparents表示选中的父代个体,tournament(population)表示二元锦标赛种群个体选择,randomchose(population)随机种群个体选择。x0、x表示概率取值,x0、x∈[0,1],其中,x0为设定概率,x为0-1之的随机数。值得注意的是,设定概率x0同样会随算法的动态调节而变化,将在后续步骤中说明。

步骤五、交叉变异操作。对选出的父代个体进行交叉变异操作,并采用单点交叉的方式,产生子代个体,且包含任务分配方案和任务执行顺序方案两个方面;

步骤六、更新层级结构。若没有产生足够的子代种群,则转步骤四;若已产生足够的子代,则运用产生的子代种群对原有父代层级结构进行更新,具体步骤为:

步骤6.1、若子代种群的所有个体均已与当前层级结构中的个体进行了比较,则种群层级结构更新完毕,转步骤七;否则,从子代种群任取一个个体,与当前最低层级中的个体进行竞赛比较;

步骤6.2、若该个体其未战胜当前层级中的所有个体,则层级结构不更新,转6.1;

步骤6.3、若该个体战胜当前层级中的部分个体,则将其加入到当前层级,若子代个体加入层级为当前层级结构最低层级,则在子代战胜的个体中随机淘汰一个个体;否则,在当前最低层级中随机淘汰一个个体;同时,根据公式计算出加入子代个体得分,更新层级结构,转6.1。子代个体得分按(10)式计算:

score=wp×(cen+itn×popn)(10)

其中,score表示个体的得分,cen表示当前个体加入层级结构前所淘汰的个体数,itn表示算法迭代的次数,popn表示种群个体数。

步骤6.4、若该个体战胜当前层级中的所有个体且当前层级为最高层级,则创新建新层级并加入该个体后,将其插入为新的最高层级,转步骤6.1;否则,将该个体与当前层级的高一层级中的个体进行竞赛比较,转6.2;

需要说明的是,当子代新个体因竞赛失败淘汰或者被加入到层级结构时,需将该子代个体所比较层级之上的所有个体积分按(7)式进行更新。此外,步骤六中子代新个体加入层级、新建层级等操作流程与步骤三相同,在此不再赘述;

步骤七、若迭代次数达到设定上限,则流程结束;否则,转步骤四。

上述步骤为本方法的主要流程,除此之外,本方法还引入了基于最优层级个体数目监测的算法搜索方向自适应调整策略,通过设置局部最优和发散趋势检测参数,并根据参数的动态变化识别算法出现局部最优和发散的倾向,以自适应地调整算法搜索方向,避免陷入局部最优和趋于发散。

其中,避免陷入局部最优的调节步骤为:

步骤a、判断局部最优控制参数z1是否达到设定值zn1,z1的值等于局部最优调节机制开启的次数;如果z1达到设定值,则认为本方法找到了最优解,不再进入局部最优调节,否则,执行步骤b。所述设定值zn1,要能够使本方法具有更好的搜索效率;

步骤b:判断检测参数z0是否达到设定值zn0,z0的值等于加入到最优解集的个体数;如果z0达到设定值,则说明本方法陷入局部最优,执行步骤c;所述设定值zn0,要能够使本方法最优解集具有更好的主导性和多样性;

步骤c、在算法的迭代更新个体选择阶段,采取动态调整策略进行调节,具体为:

在步骤4.1中,修改层级差异因子β和α,将β设置为-1,将α调大,使层级结构的最高层级中的个体作为父代候选个体集的主要组成部分;

在步骤4.2中,将选择参数x0调大,使本方法能够在迭代不超过5次的情况下,找到步骤d所要求的最优解;

步骤d、如果搜索到的新最优解主导当前最优解解集,或者该最优解不主导当前最优解集,并与当前最优解集中的个体密度存在较大差值,即,搜索到的新最优解的密度值与当前最优解集的边缘个体密度值之差,大于当前最优解集边缘个体与中心个体密度之差,则本方法回到常规运行策略;否则,本方法直接按照调整后的策略运行,直至找到符合条件的最优解;

所述避免发散的调节具体步骤为:

步骤a、判断检测参数f0是否达到设定值fn0,如果f0达到设定值,则说明本方法趋于发散,执行步骤b;其中,检测参数f0表示本方法寻找的当前最优个体未能加入到最优层级的持续代数。所述设定值fn0,要能够使本方法具有更好的搜索效率;

步骤b、执行动态调整策略,具体为:

在步骤4.2中,将选择参数x0调大,使本方法能够在迭代不超过5次的情况下,找到能够加入最高层级的最优解;

步骤c、如果搜索到的新最优解能够加入到当前最优解解集,则本方法回到常规运行策略;否则,本方法直接按照调整后的策略运行,直至找到能够加入到当前最优解解集的最优解。

复杂实例验证

为了检验本发明方法的效果,使用云计算仿真工具workflowsim模拟数据中心,实验选取常见的多目标优化算法进行对比:nsgaii,mode,moacs和ecmsmoo。

选取三种不同种类不同规模工作流:montage_25,inspiral_50,epigenomics_100进行实验。为避免结果的随机性,每种方法分别运行10次并绘制结果分布图,性能指标以是否更靠近pareto前沿来评价,对比结果如图4至图6所示,本方法图例名称为sdh-nsgaii。

由图4至图6可以看出,在三种不同类型和规模的工作流下,本发明方法所找到的解集更贴近pareto解集前沿,且更靠近前沿中心,其性能远远优于nsgaii和mode,且与当前最新的算法moacs相比也有一定优势。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1