一种多目标云工作流调度方法及装置与流程

文档序号:22626562发布日期:2020-10-23 19:34阅读:99来源:国知局
一种多目标云工作流调度方法及装置与流程

本发明涉及云计算技术领域,具体涉及一种多目标云工作流调度方法及装置。



背景技术:

云计算平台是当前应用较为广泛的服务提供平台,其中基础设施即服务是云计算平台最为基本的服务模式。在基础设施即服务模式下,云计算平台里的资源以虚拟机的方式向外提供。通过租赁不同类型和数目的虚拟机,用户可以支付不同的成本获取不同的工作流应用执行性能,如完成时间等。

由于云计算平台拥有庞大的虚拟资源和用户群体,云服务提供商需要频繁的根据各个用户的需求进行资源管理,因此云计算环境下的工作流调度问题一直是云计算的一个主要研究方向,因为调度结果既影响用户的执行成本、应用的执行时间等,也影响云计算提供商的资源利用率以及负载平衡程度。

目前,在云工作流调度问题中主要应用多目标优化方法来同时优化两个目标,此方法可以生成不同的执行时间和执行成本组合供用户选择,用户可以根据自身的需求做出合理的决策。然而,现有的多目标优化方法,利用遗传算法进行时间/成本种群的个体更新工作,时间/成本种群内的个体只关注各自时间/成本的优化,得到的最优个体并不能对执行时间和执行成本同时进行优化,同时得到的最优个体还存在易收敛至帕累托局部前沿的问题,从而不能给用户提供最优的调度结果。

需要注意的是,本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。



技术实现要素:

本发明实施例提供一种多目标云工作流调度方法及装置,以解决现有技术中的多目标优化方法进行云工作流调度时,存在的得到的最优个体并不能对执行时间和执行成本同时进行优化且易收敛至帕累托局部前沿的问题。

第一方面,本发明实施例提供一种多目标云工作流调度方法,包括:

建立包含n个时间个体的时间种群,以及包含n个成本个体的成本种群;从所述时间种群和所述成本种群中分别选取多个非支配的时间个体和成本个体作为第一优化个体,建立第一外部种群;

将所述时间种群中包含的时间个体进行自适应交叉运算和变异运算,得到n个更新后的时间个体;将所述成本种群中包含的成本个体进行自适应交叉运算和变异运算,得到n个更新后的成本个体;根据精英学习方法对所述第一外部种群中包含的第一优化个体进行更新运算,得到多个更新后的第一优化个体;将第一优化个体、更新后的时间个体、更新后的成本个体以及更新后的第一优化个体作为第二优化个体,建立第二外部种群,并根据种群更新方法对所述第二外部种群进行更新运算;

当确定迭代的更新次数达到预设的最大迭代更新次数时,根据更新后的所述第二外部种群中包含的小于等于n个的第二优化个体对云工作流进行调度。

第二方面,本发明实施例提供一种多目标云工作流调度装置,包括:

种群建立单元,用于建立包含n个时间个体的时间种群,以及包含n个成本个体的成本种群;从所述时间种群和所述成本种群中分别选取多个非支配的时间个体和成本个体作为第一优化个体,建立第一外部种群;

种群更新单元,用于将所述时间种群中包含的时间个体进行自适应交叉运算和变异运算,得到n个更新后的时间个体;将所述成本种群中包含的成本个体进行自适应交叉运算和变异运算,得到n个更新后的成本个体;根据精英学习方法对所述第一外部种群中包含的第一优化个体进行更新运算,得到多个更新后的第一优化个体;将第一优化个体、更新后的时间个体、更新后的成本个体以及更新后的第一优化个体作为第二优化个体,建立第二外部种群,并根据种群更新方法对所述第二外部种群进行更新运算;

更新确定单元,用于当确定迭代的更新次数达到预设的最大迭代更新次数时,根据更新后的所述第二外部种群中包含的小于等于n个的第二优化个体对云工作流进行调度。

第三方面,本发明实施例还提供一种云计算设备,包括处理器和存储器,其中存储器内存储有执行指令,处理器读取存储器内的执行指令用于执行上述多目标云工作流调度方法所述的步骤。

第四方面,本发明实施例还提供一种计算机可读存储介质,包含计算机执行指令,所述计算机执行指令被用于执行上述多目标云工作流调度方法所述的步骤。

本发明实施例提供的多目标云工作流调度方法及装置,针对云计算平台下工作流调度需要同时优化执行时间与执行成本的问题,采用多种群多目标的协同演化技术解决传统多目标优化方法中个体适应度分配和种群多样性维持的问题,得到的最优个体能够对执行时间和执行成本同时进行优化,同时采用精英学习方法可以增强种群向帕累托最优前沿收敛的能力。

此外,本发明可以生成多个不同的执行时间与执行成本的组合,能够帮助用户在选择不同的资源集合执行工作流应用时做出合理的决策。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种多目标云工作流调度方法的实现流程图;

图2为本发明实施例提供的一种多目标云工作流调度装置的结构示意图;

图3为本发明实施例提供的一种云计算设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

云计算平台中,是以虚拟机的形式向外提供打包的资源集合,用户可以通过租赁的方式获取资源来执行工作流应用。工作流应用由一组具有依赖关系的子任务组成,但是工作流的结构也是繁杂多样的,比如流水线式、数据分布式、数据聚集式、数据重分布式或者这些基本样式的组合。

云计算平台以弹性的方式向外提供无限的计算资源,其可以提供多种不同配置和价格组合的虚拟机类型。在云计算平台中,运行于同一物理机之上的多个虚拟机会竞争不可共享的资源,从而造成虚拟机运算能力和通信能力的下降。工作流的执行时间等于出口任务的完成时间,工作流的执行成本等于所有租赁虚拟机的执行成本。

本发明的目的是设计一种基于协同演化的多目标云工作流调度方法集及装置,针对云计算平台下工作流管理需要同时优化执行时间与执行成本的问题,采用多种群多目标的协同演化技术解决传统多目标优化方法中个体适应度分配和种群多样性维持的问题,每个种群均采用交叉运算和变异运算优化主优化目标,同时兼顾次优化目标。同时,采用精英学习方法增强种群向帕累托最优前沿收敛的能力。另外,本方法及装置可以生成多个不同的执行时间与执行成本组合,帮助用户在选择不同的资源集合执行工作流应用时做出合理的决策。

参照图1所示,本发明实施例公开了一种多目标云工作流调度方法,该方法主要包括如下步骤:

101、建立包含n个时间个体的时间种群,以及包含n个成本个体的成本种群;从时间种群和成本种群中分别选取多个非支配的时间个体和成本个体作为第一优化个体,建立第一外部种群。

步骤101中,在接收到用户输入的对云计算平台进行工作流调度的请求时,从云计算平台中获取需要执行的工作流应用、虚拟机的数目和类型等信息,然后进入工作流调度方法的初始化阶段。在该阶段,需要建立三个种群,即时间种群、成本种群和外部种群。同时,还需要预设一些参数,至少包括交叉率、变异率、时间种群和成本种群的种群规模n、外部种群所能容纳的最大个体数目n以及最大的迭代更新次数。

需要说明的是,时间种群的建立与成本种群的建立没有严格的顺序关系,可以同时建立,也可以先后建立,本实施例对此不做限定。

优选地,在建立包含n个时间个体的时间种群,以及包含n个成本个体的成本种群时,可通过以下步骤来实现:

a1、根据启发式算法,以最小化执行时间为目标生成1个时间个体;从生成的时间个体中随机选取一个工作流子任务,并为工作流子任务随机分配一个虚拟机,生成n/2个时间个体;分别为每个工作流子任务随机分配一个虚拟机,生成n/2-1个时间个体;根据生成的n个时间个体,建立时间种群。

其中,时间个体为云工作流任务模型中若干个工作流子任务到云计算资源模型中若干个虚拟机的一种映射方式。

建立的时间种群中,每个时间个体都代表多个工作流子任务到多个虚拟机的一种映射方式,同时也代表了一种调度方法。该时间种群为初始种群,初始种群应满足三个特征:高质量的个体、解空间的均匀覆盖、基因多样性。

通过上述步骤建立时间种群时,首先采用启发式算法,如heft、peft等算法,以最小化执行时间为目标生成1个时间个体,该时间个体为优秀个体。然后,对生成的该优秀的时间个体施加随机扰动,即从该时间个体中随机选取一个工作流子任务,并为该工作流子任务随机分配一个另外的虚拟机,以此再生成n/2个时间个体。最后,分别为云计算平台中需执行的工作流应用中每个工作流子任务随机分配一个虚拟机,以此生成n/2-1个时间个体。

通过这三个步骤,总共生成了n个时间个体,从而据此建立时间种群。第一个步骤和第二个步骤中生成的时间个体解决了高质量的个体问题,而第二个步骤和第三个步骤中生成的时间个体解决了解空间的均匀覆盖问题以及基因多样性问题。而传统的方法一般以随机的方式生成初始种群,虽然此种方式生成的种群能够均匀覆盖整个解空间,但是缺少优秀个体,种群收敛缓慢。

a2、根据启发式算法,以最小化执行成本为目标生成1个成本个体;从生成的成本个体中随机选取一个工作流子任务,并为工作流子任务随机分配一个虚拟机,生成n/2个成本个体;分别为每个工作流子任务随机分配一个虚拟机,生成n/2-1个成本个体;根据生成的n个成本个体,建立成本种群。

其中,成本个体为云工作流任务模型中若干个工作流子任务到云计算资源模型中若干个虚拟机的一种映射方式。

与上述建立的时间种群类似,建立的成本种群中,每个成本个体都代表多个工作流子任务到多个虚拟机的一种映射方式,同时也代表了一种调度方法。该成本种群同样为初始种群,初始种群应满足三个特征:高质量的个体、解空间的均匀覆盖、基因多样性。

通过上述步骤建立成本种群时,首先采用启发式算法,如heft、peft等算法,以最小化执行成本为目标生成1个成本个体,该成本个体为优秀个体。然后,对生成的该优秀的成本个体施加随机扰动,即从该成本个体中随机选取一个工作流子任务,并为该工作流子任务随机分配一个另外的虚拟机,以此再生成n/2个成本个体。最后,分别为云计算平台中需执行的工作流应用中每个工作流子任务随机分配一个虚拟机,以此生成n/2-1个成本个体。

通过这三个步骤,总共生成了n个成本个体,从而据此建立成本种群。第一个步骤和第二个步骤中生成的成本个体解决了高质量的个体问题,而第二个步骤和第三个步骤中生成的成本个体解决了解空间的均匀覆盖问题以及基因多样性问题。而传统的方法一般以随机的方式生成初始种群,虽然此种方式生成的种群能够均匀覆盖整个解空间,但是缺少优秀个体,种群收敛缓慢。

进一步地,在建立时间种群和成本种群后,从时间种群中选取多个非支配的时间个体,同时从成本种群中也选取多个非支配的成本个体,将这些非支配个体作为第一优化个体,据此建立第一外部种群。第一外部种群内保存着工作流调度方法在执行过程中生成的非支配个体,淘汰被支配个体。

102、将时间种群中包含的时间个体进行自适应交叉运算和变异运算,得到n个更新后的时间个体;将成本种群中包含的成本个体进行自适应交叉运算和变异运算,得到n个更新后的成本个体;根据精英学习方法对第一外部种群中包含的第一优化个体进行更新运算,得到多个更新后的第一优化个体;将第一优化个体、更新后的时间个体、更新后的成本个体以及更新后的第一优化个体作为第二优化个体,建立第二外部种群,并根据种群更新方法对第二外部种群进行更新运算。

步骤102中,在通过上述步骤建立初始的时间种群、成本种群和第一外部种群后,进入工作流调度方法的迭代更新阶段。在该阶段,需要迭代更新时间种群和成本种群,并将生成的非支配个体加入到第一外部种群中。同时,第一外部种群内原有的第一优化个体也存在收敛至帕累托局部前沿的问题,因此对第一外部种群中的第一优化个体要实施精英学习方法,帮助第一优化个体跳出帕累托局部前沿,以期收敛至帕累托最优前沿。

将第一外部种群采用精英学习方法得到的更新后的第一优化个体、更新后的时间个体、更新后的成本个体加入到第一外部种群中,将第一优化个体、更新后的时间个体、更新后的成本个体以及更新后的第一优化个体作为第二优化个体,据此建立第二外部种群,然后再统一进行第二外部种群的更新运算。

优选地,在将时间种群中包含的时间个体进行自适应交叉运算和变异运算,得到n个更新后的时间个体;将成本种群中包含的成本个体进行自适应交叉运算和变异运算,得到n个更新后的成本个体之前,还包括如下步骤:

102-1、根据时间种群中包含的时间个体的执行时间适应度,按照从小到大的顺序进行排序,并按照排序结果将时间个体等分成三组,生成第一时间组、第二时间组和第三时间组;

102-2、根据成本种群中包含的成本个体的执行成本适应度,按照从小到大的顺序进行排序,并按照排序结果将成本个体等分成三组,生成第一成本组、第二成本组和第三成本组。

通过上述两个步骤,将时间种群内包含的时间个体按照执行时间适应度从小到大的顺序进行排序,同时将成本种群内包含的成本个体按照执行成本适应度从小到大的顺序进行排序,便于在迭代更新过程中时间种群和成本种群内的个体进行交叉与变异运算。

举例来说,第一时间组内包含的时间个体已经是主优化目标执行时间非常好的个体,需要关注次优化目标执行成本的优化,第三时间组内的包含的时间个体需要继续进行主优化目标执行时间的优化,而第二时间组内的包含的时间个体则需要同时优化执行时间和执行成本。类似地,第一成本组内包含的成本个体已经是主优化目标执行成本非常好的个体,需要关注次优化目标执行时间的优化,第三成本组内的包含的成本个体需要继续进行主优化目标执行成本的优化,而第二成本组内的包含的时间个体则需要同时优化执行时间和执行成本。

在对时间种群和成本种群内的个体进行交叉与变异运算时,以时间种群为例,在传统的遗传算法中,种群内的个体互相进行交叉操作。但是,本方法采用多种群多目标的优化框架,如果时间种群内的个体只与本种群的个体交叉,那么时间种群内的个体将只关注执行时间的优化,导致种群内的个体将会最终拥有极好的执行时间和极差的执行成本,收敛至帕累托最优前沿的能力也较差。因此,需要根据时间种群内个体的时间适应度选择不同种群内的个体进行交叉运算。

另外,在传统遗传算法的早期迭代过程中,由于种群内个体的差异性比较大,交叉运算对种群搜索未知区域有着很大影响,但是在迭代后期,种群趋于收敛,个体之间的差异性比较小,交叉运算的影响变小,变异运算则与之相反。因此,需要根据工作流调度问题的特征,设计合适的变异算子,以避免算法的早熟收敛,帮助个体跳出局部最优解。

优选地,在将时间种群中包含的时间个体进行自适应交叉运算和变异运算,得到n个更新后的时间个体时,可通过以下步骤来实现:

b1、将第一时间组内包含的n/3个时间个体分别与从第一成本组或第二成本组内随机选取的一个成本个体进行交叉运算,再将各时间个体中随机选取的一个工作流子任务重新分配至随机选取的另一执行成本更低的虚拟机上进行变异运算,得到n/3个更新后的时间个体。

本步骤中,由于第一时间组内包含的时间个体已经是主优化目标执行时间非常好的个体,只需要关注次优化目标执行成本的优化,可以从成本种群中的第一成本组或第二成本组内随机选择一个成本个体进行交叉运算,该步骤实现了时间种群和成本种群的直接种群通信。

进一步地,由于第一时间组内包含的时间个体在优化执行时间上表现优异,可以着重进行执行成本的优化。进行变异运算时,可以从各时间个体中随机选取一个工作流子任务,再将该工作流子任务重新分配至另一个随机选取的比原来执行成本更低的虚拟机上。该类虚拟机虽然性能差但是价格便宜,能够对执行成本进行优化。

经过上述的交叉和变异运算,得到了n/3个更新后的时间个体,使其在执行时间表现优异的同时,对执行成本也进行了优化。

b2、将第三时间组内包含的n/3个时间个体分别与从第一时间组或第二时间组内随机选取的一个时间个体进行交叉运算,再将各时间个体中随机选取的一个工作流子任务重新分配至随机选取的另一执行成本更高的虚拟机上进行变异运算,得到n/3个更新后的时间个体。

本步骤中,由于第三时间组内包含的时间个体是主优化目标执行时间比较差的个体,需要继续进行主优化目标执行时间的优化,因此从第一时间组或第二时间组内随机选择一个主优化目标执行时间较好的时间个体进行交叉运算。

进一步地,由于第三时间组内包含的时间个体在优化执行时间上表现较差,还要着重进行执行时间的优化。进行变异运算时,可以从各时间个体中随机选取一个工作流子任务,再将该工作流子任务重新分配至另一个随机选取的比原来执行成本更高的虚拟机上。该类虚拟机虽然价格昂贵但是性能强,能够对执行时间进行优化。

经过上述的交叉和变异运算,得到了另外的n/3个更新后的时间个体,使其在执行时间上得到了进一步的优化。

b3、将第二时间组内包含的n/3个时间个体分别与从第一外部种群内随机选取的一个第一优化个体进行交叉运算,再将各时间个体中随机选取的一个工作流子任务重新分配至随机选取的另一虚拟机上进行变异运算,得到n/3个更新后的时间个体。

本步骤中,由于第二时间组内包含的时间个体需要同时优化执行时间和执行成本,可以从第一外部种群内随机选择一个第一优化个体进行交叉运算,该步骤通过第一外部种群实现了时间种群和成本种群的间接种群通信。

进一步地,由于第二时间组内包含的时间个体在执行时间和执行成本上取得了比较好的平衡,进行变异运算时,可以从各时间个体中随机选取一个工作流子任务,再将该工作流子任务重新分配至另一个随机选取的虚拟机上即可。

经过上述的交叉和变异运算,得到了剩余的n/3个更新后的时间个体,使其在执行时间和执行成本上达到了相对平衡。

分别对三组时间个体进行交叉运算和变异运算后,得到了n个更新后的时间个体。

优选地,在将成本种群中包含的成本个体进行自适应交叉运算和变异运算,得到n个更新后的成本个体时,可通过以下步骤来实现:

c1、将第一成本组内包含的n/3个成本个体分别与从第一时间组或第二时间组内随机选取的一个时间个体进行交叉运算,再将各成本个体中随机选取的一个工作流子任务重新分配至随机选取的另一执行时间更低的虚拟机上进行变异运算,得到n/3个更新后的成本个体;

c2、将第三成本组内包含的n/3个成本个体分别与从第一成本组或第二成本组内随机选取的一个成本个体进行交叉运算,再将各成本个体中随机选取的一个工作流子任务重新分配至随机选取的另一执行时间更高的虚拟机上进行变异运算,得到n/3个更新后的成本个体;

c3、将第二成本组内包含的n/3个成本个体分别与从外部种群内随机选取的一个优化个体进行交叉运算,再将各成本个体中随机选取的一个工作流子任务重新分配至随机选取的另一虚拟机上进行变异运算,得到n/3个更新后的成本个体。

分别对三组成本个体进行交叉运算和变异运算后,得到了n个更新后的成本个体。上述步骤的具体过程与前述得到n个更新后的时间个体的过程类似,在前述步骤中已做详细描述,此处不再详细描述。

在工作流调度方法的执行过程中,采用第一外部种群保留时间种群和成本种群已经发现的非支配个体。第一外部种群保留的都是精英个体,同时通过交叉运算和变异运算完成了时间种群和成本种群间接的信息交换,也帮助时间种群和成本种群向帕累托最优前沿收敛。

在时间种群和成本种群均生成满足种群规模的下一代个体之后,需要进行第一外部种群的更新操作,由于精英学习方法同样会产生新的个体,因此先采用精英学习方法更新第一外部种群中的第一优化个体,再统一进行第一外部种群的更新操作。

优选地,在根据精英学习方法对第一外部种群中包含的第一优化个体进行更新运算,得到多个更新后的第一优化个体时,可通过以下步骤来实现:

d1、采用随机数生成函数生成一个大于0且小于1的随机数,并判断随机数是否小于预设的探测阈值;

d2、若随机数小于预设的探测阈值,则依次对第一外部种群中包含的第一优化个体执行以下任意一种更新运算,以得到多个更新后的第一优化个体:将第一优化个体中随机选取的一个工作流子任务重新分配至随机选取的另一虚拟机上;将第一优化个体中随机选取的一个工作流子任务重新分配至创建的另一虚拟机上;将第一优化个体中随机选取的一个虚拟机上的两个无依赖关系的工作流子任务的执行顺序进行交换;将第一优化个体中随机选取的两个工作流子任务对应的虚拟机进行交换;

d3、若随机数大于预设的探测阈值,依次对第一外部种群中包含的第一优化个体执行以下任意一种更新运算,以得到多个更新后的第一优化个体:将第一优化个体中随机选取的一个虚拟机的类型进行更改;将第一优化个体中随机选取的两个虚拟机上的工作流子任务合并至任意一个虚拟机上;将第一优化个体中随机选取的一个虚拟机上的工作流子任务重新随机分配至虚拟机和创建的相同类型的另一虚拟机上。

上述步骤中,通过比较生成的随机数与预设的探测阈值的大小,将7种学习方式分成两组,其中步骤d2中的4种学习方式为小范围的学习方式,步骤d3中的3种学习方式为大范围的学习方式。其中,探测阈值一般设置为0.5。

对第一外部种群中包含的各个第一优化个体选取其中一种学习方式进行更新运算,以此得到多个更新后的第一优化个体。

在每次迭代结束时,需要更新第一外部种群中的个体,混合第一外部种群中的第一优化个体、第一外部种群通过精英学习生成的更新后的第一优化个体、时间种群新生成的更新后的时间个体以及成本种群新生成的更新后的成本个体,将这些个体作为第二优化个体,建立第二外部种群,然后采用种群更新方法进行第二外部种群的更新运算。

在第二外部种群的更新运算执行之前,需要先计算第二外部种群中包含的第二优化个体的执行时间和执行成本适应度,即计算更新后的时间个体、更新后的成本个体、第一优化个体和更新后的第一优化个体的执行时间和执行成本适应度。

优选地,在根据种群更新方法对第二外部种群进行更新运算时,可通过以下步骤来实现:

e1、根据第二外部种群中包含的第二优化个体的执行时间适应度,按照从小到大的顺序进行排序,并将排在首位的第二优化个体的执行成本适应度作为执行成本阈值。

该步骤中,按照执行时间适应度从小到大的顺序排序后,排在后面的第二优化个体由于执行时间大于前面的第二优化个体,不可能支配前面的第二优化个体,如果想要不被前面的第二优化个体支配,那么就要具有较小的执行成本。排在首位的第二优化个体具有最小的执行时间,不可能被其他个体支配,因此其为非支配个体,将其进行保留,并将其执行成本适应度作为执行成本阈值。

e2、依次判断第二外部种群中包含的第二优化个体的执行成本适应度是否大于执行成本阈值。

该步骤中,从排在第二位的第二优化个体进行遍历,判断其执行成本适应度是否大于执行成本阈值。

e3、若是,删除该第二优化个体;否则,则保留该第二优化个体,并将该第二优化个体的执行成本适应度作为新的执行成本阈值,继续执行步骤e2。

该步骤中,若某个第二优化个体的执行成本适应度大于执行成本阈值,则说明该第二优化个体为被支配个体,需要将其删除,继续搜索下一个第二优化个体。若某个第二优化个体的执行成本适应度小于执行成本阈值,则说明该第二优化个体为非支配个体,需要将其保留,并将其执行成本适应度作为新的执行成本阈值。

重复步骤e2和e3,直至第二外部种群中包含的所有第二优化个体均被搜索过。

进一步优选地,在根据种群更新方法对第二外部种群进行更新运算时,还包括以下步骤:

f1、判断更新后的第二外部种群中包含的第二优化个体是否大于n。

本步骤中,上述的更新运算结束后,需要判断更新后的第二外部种群中包含的第二优化个体是否大于n,即需要判断更新后的第二外部种群中包含的第二优化个体的数量是否超过了第二外部种群所能容纳的最大个体数目。

f2、若是,则根据多样性维护机制在第二外部种群中保留n个第二优化个体。

该步骤中,如果更新后的第二外部种群中包含的第二优化个体的数目大于n,则需要根据多样性维护机制,如拥挤距离,择婿删除部分第二优化个体,从中选取n个第二优化个体进行保留。如果更新后的第二外部种群中包含的第二优化个体的数目小于等于n,则保留所有的第二优化个体。

重复进行时间种群中包含的时间个体的更新运算、成本种群中包含的成本个体的更新运算、第一外部种群中包含的第一优化个体的更新运算以及地儿外部种群的更新运算,直至达到预设的最大迭代更新次数。

103、当确定迭代的更新次数达到预设的最大迭代更新次数时,根据更新后的第二外部种群中包含的小于等于n个的第二优化个体对云工作流进行调度。

步骤103中,需要先确定迭代的更新次数是否达到预设的最大迭代更新次数,如果达到了,则将更新后的第二外部种群中包含的第二优化个体作为最终的优化个体输出。

优选地,在当确定迭代的更新次数达到预设的最大迭代更新次数时,根据更新后的第二外部种群中包含的小于等于n个的第二优化个体对云工作流进行调度时,可通过以下步骤来实现:

g1、判断当前迭代的更新次数是否达到预设的最大迭代更新次数;

g2、若是,则将更新后的第二外部种群中包含的小于等于n个的第二优化个体输出,并根据输出的第二优化个体对云工作流进行调度。

当确定迭代的更新次数达到预设的最大迭代更新次数时,更新后的第二外部种群中包含的第二优化个体即作为最终的优化个体输出,其数目小于等于n个。每个最终的优化个体都为帕累托最优个体,都对应不同的资源调度策略,有着不同的执行时间和执行成本,用户可以据此对云工作流进行调度,选择出满足应用性能和预算需求的调度策略。

综上,本发明实施例提供的多目标云工作流调度方法,针对云计算平台下工作流调度需要同时优化执行时间与执行成本的问题,采用多种群多目标的协同演化技术解决传统多目标优化方法中个体适应度分配和种群多样性维持的问题,得到的最优个体能够对执行时间和执行成本同时进行优化,同时采用精英学习方法可以增强种群向帕累托最优前沿收敛的能力。此外,本发明可以生成多个不同的执行时间与执行成本的组合,能够帮助用户在选择不同的资源集合执行工作流应用时做出合理的决策。

需要说明的是,对于上述方法的实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。

参照图2所示,基于同一发明构思,本发明实施例提供一种多目标云工作流调度装置,该装置主要包括:

种群建立单元21,用于建立包含n个时间个体的时间种群,以及包含n个成本个体的成本种群;从时间种群和成本种群中分别选取多个非支配的时间个体和成本个体作为第一优化个体,建立第一外部种群;

种群更新单元22,用于将时间种群中包含的时间个体进行自适应交叉运算和变异运算,得到n个更新后的时间个体;将成本种群中包含的成本个体进行自适应交叉运算和变异运算,得到n个更新后的成本个体;根据精英学习方法对第一外部种群中包含的第一优化个体进行更新运算,得到多个更新后的第一优化个体;将第一优化个体、更新后的时间个体、更新后的成本个体以及更新后的第一优化个体作为第二优化个体,建立第二外部种群,并根据种群更新方法对第二外部种群进行更新运算;

更新确定单元23,用于当确定迭代的更新次数达到预设的最大迭代更新次数时,根据更新后的第二外部种群中包含的小于等于n个的第二优化个体对云工作流进行调度。

优选地,种群建立单元21具体用于:

根据启发式算法,以最小化执行时间为目标生成1个时间个体;从生成的时间个体中随机选取一个工作流子任务,并为工作流子任务随机分配一个虚拟机,生成n/2个时间个体;分别为每个工作流子任务随机分配一个虚拟机,生成n/2-1个时间个体;根据生成的n个时间个体,建立时间种群,时间个体为云工作流任务模型中若干个工作流子任务到云计算资源模型中若干个虚拟机的一种映射方式;

根据启发式算法,以最小化执行成本为目标生成1个成本个体;从生成的成本个体中随机选取一个工作流子任务,并为工作流子任务随机分配一个虚拟机,生成n/2个成本个体;分别为每个工作流子任务随机分配一个虚拟机,生成n/2-1个成本个体;根据生成的n个成本个体,建立成本种群,成本个体为云工作流任务模型中若干个工作流子任务到云计算资源模型中若干个虚拟机的一种映射方式。

优选地,种群更新单元22具体用于:

根据时间种群中包含的时间个体的执行时间适应度,按照从小到大的顺序进行排序,并按照排序结果将所述时间个体等分成三组,生成第一时间组、第二时间组和第三时间组;

根据成本种群中包含的成本个体的执行成本适应度,按照从小到大的顺序进行排序,并按照排序结果将成本个体等分成三组,生成第一成本组、第二成本组和第三成本组。

优选地,种群更新单元22还具体用于:

将第一时间组内包含的n/3个时间个体分别与从第一成本组或第二成本组内随机选取的一个成本个体进行交叉运算,再将各时间个体中随机选取的一个工作流子任务重新分配至随机选取的另一执行成本更低的虚拟机上进行变异运算,得到n/3个更新后的时间个体;

将第三时间组内包含的n/3个时间个体分别与从第一时间组或第二时间组内随机选取的一个时间个体进行交叉运算,再将各时间个体中随机选取的一个工作流子任务重新分配至随机选取的另一执行成本更高的虚拟机上进行变异运算,得到n/3个更新后的时间个体;

将第二时间组内包含的n/3个时间个体分别与从第一外部种群内随机选取的一个第一优化个体进行交叉运算,再将各时间个体中随机选取的一个工作流子任务重新分配至随机选取的另一虚拟机上进行变异运算,得到n/3个更新后的时间个体。

优选地,种群更新单元22还具体用于:

将第一成本组内包含的n/3个成本个体分别与从第一时间组或第二时间组内随机选取的一个时间个体进行交叉运算,再将各成本个体中随机选取的一个工作流子任务重新分配至随机选取的另一执行时间更低的虚拟机上进行变异运算,得到n/3个更新后的成本个体;

将第三成本组内包含的n/3个成本个体分别与从第一成本组或第二成本组内随机选取的一个成本个体进行交叉运算,再将各成本个体中随机选取的一个工作流子任务重新分配至随机选取的另一执行时间更高的虚拟机上进行变异运算,得到n/3个更新后的成本个体;

将第二成本组内包含的n/3个成本个体分别与从第一外部种群内随机选取的一个第一优化个体进行交叉运算,再将各成本个体中随机选取的一个工作流子任务重新分配至随机选取的另一虚拟机上进行变异运算,得到n/3个更新后的成本个体。

优选地,种群更新单元22还具体用于:

采用随机数生成函数生成一个大于0且小于1的随机数,并判断随机数是否小于预设的探测阈值;

若是,则依次对第一外部种群中包含的第一优化个体执行以下任意一种更新运算,以得到多个更新后的第一优化个体:将第一优化个体中随机选取的一个工作流子任务重新分配至随机选取的另一虚拟机上;将第一优化个体中随机选取的一个工作流子任务重新分配至创建的另一虚拟机上;将第一优化个体中随机选取的一个虚拟机上的两个无依赖关系的工作流子任务的执行顺序进行交换;将第一优化个体中随机选取的两个工作流子任务对应的虚拟机进行交换;

否则,依次对第一外部种群中包含的第一优化个体执行以下任意一种更新运算,以得到多个更新后的第一优化个体:将第一优化个体中随机选取的一个虚拟机的类型进行更改;将第一优化个体中随机选取的两个虚拟机上的工作流子任务合并至任意一个虚拟机上;将第一优化个体中随机选取的一个虚拟机上的工作流子任务重新随机分配至虚拟机和创建的相同类型的另一虚拟机上。

优选地,更新确定单元23具体用于:

根据第二外部种群中包含的第二优化个体的执行时间适应度,按照从小到大的顺序进行排序,并将排在首位的第二优化个体的执行成本适应度作为执行成本阈值;

依次判断第二外部种群中包含的第二优化个体的执行成本适应度是否大于所述执行成本阈值;

若是,删除第二优化个体;否则,则保留第二优化个体,并将第二优化个体的执行成本适应度作为新的执行成本阈值,继续执行依次判断第二外部种群中包含的第二优化个体的执行成本适应度是否小于执行成本阈值的步骤。

优选地,更新确定单元23还具体用于:

判断更新后的第二外部种群中包含的第二优化个体是否大于n;

若是,则根据多样性维护机制在第二外部种群中保留n个第二优化个体。

优选地,更新确定单元23还具体用于:

判断当前迭代的更新次数是否达到预设的最大迭代更新次数;

若是,则将更新后的第二外部种群中包含的小于等于n个的第二优化个体输出,并根据输出的第二优化个体对云工作流进行调度。

综上,本发明实施例提供的多目标云工作流调度装置,针对云计算平台下工作流调度需要同时优化执行时间与执行成本的问题,采用多种群多目标的协同演化技术解决传统多目标优化方法中个体适应度分配和种群多样性维持的问题,得到的最优个体能够对执行时间和执行成本同时进行优化,同时采用精英学习方法可以增强种群向帕累托最优前沿收敛的能力。此外,本发明可以生成多个不同的执行时间与执行成本的组合,能够帮助用户在选择不同的资源集合执行工作流应用时做出合理的决策。

需要说明的是,本发明实施例提供的多目标云工作流调度装置与前述实施例所述的多目标云工作流调度方法属于相同的技术构思,其具体实施过程可参照前述实施例中对方法步骤的说明,在此不再赘述。

应当理解,以上一种多目标云工作流调度装置包括的单元仅为根据该装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的一种多目标云工作流调度装置所实现的功能与上述实施例提供的一种多目标云工作流调度方法一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例一中已做详细描述,此处不再详细描述。

参照图3所示,基于同一发明构思,本发明实施例提供一种云计算设备,该云计算设备主要包括处理器31和存储器32,其中存储器32内存储有执行指令。该处理器31读取存储器32内的执行指令用于执行上述多目标云工作流调度方法实施例中所述的步骤,例如图1所示的步骤101~103。或者,该处理器31读取存储器32内的执行指令用于实现上述多目标云工作流调度装置实施例中个单元的功能,例如图2所示的单元21~23的功能。

图3为本发明实施例提供的云计算设备的一种结构示意图,如图3所示,该云计算设备包括处理器31、存储器32和收发器33;其中,处理器31、存储器32和收发器33通过总线34相互连接。

存储器32用于存储程序;具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器32可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,简称ram);存储器32也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,简称hdd)或固态硬盘(solid-statedrive,简称ssd);存储器32还可以包括上述种类的存储器的组合。

存储器32存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:

操作指令:包括各种操作指令,用于实现各种操作。

操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

总线34可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

处理器31可以是中央处理器(centralprocessingunit,简称cpu),网络处理器(networkprocessor,简称np)或者cpu和np的组合。还可以是硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,简称asic),可编程逻辑器件(programmablelogicdevice,简称pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,简称cpld),现场可编程逻辑门阵列(fieldprogrammablegatearray,简称fpga),通用阵列逻辑(genericarraylogic,简称gal)或其任意组合。

本发明实施例还提供一种计算机可读存储介质,包含计算机执行指令,所述计算机执行指令被用于执行上述多目标云工作流调度方法实施例中所述的步骤,例如,图1所示的步骤101至103。或者,所述计算机执行指令被用于执行上述多目标云工作流调度装置实施例中各单元的功能,例如图2所示单元21至23的功能。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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