CN109634742A - 一种基于蚁群算法的时间约束科学工作流优化方法 - Google Patents
一种基于蚁群算法的时间约束科学工作流优化方法 Download PDFInfo
- Publication number
- CN109634742A CN109634742A CN201811357048.2A CN201811357048A CN109634742A CN 109634742 A CN109634742 A CN 109634742A CN 201811357048 A CN201811357048 A CN 201811357048A CN 109634742 A CN109634742 A CN 109634742A
- Authority
- CN
- China
- Prior art keywords
- task
- time
- virtual machine
- workflow
- resource
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000005457 optimization Methods 0.000 title claims abstract description 33
- 239000003016 pheromone Substances 0.000 claims abstract description 61
- 238000013507 mapping Methods 0.000 claims abstract description 19
- 241000257303 Hymenoptera Species 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims description 21
- 238000004364 calculation method Methods 0.000 claims description 13
- 230000003044 adaptive effect Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 claims description 5
- 230000015556 catabolic process Effects 0.000 claims description 4
- 238000006731 degradation reaction Methods 0.000 claims description 4
- FGXWKSZFVQUSTL-UHFFFAOYSA-N domperidone Chemical compound C12=CC=CC=C2NC(=O)N1CCCN(CC1)CCC1N1C2=CC=C(Cl)C=C2NC1=O FGXWKSZFVQUSTL-UHFFFAOYSA-N 0.000 claims description 4
- 230000003321 amplification Effects 0.000 claims description 3
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000013396 workstream Methods 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于蚁群算法的时间约束科学工作流优化方法,包括以下步骤,初始化信息,初始化所有的蚂蚁,利用初始的信息素和启发式信息,构建任务到资源之间的映射序列;利用解码算法,将编码中的信息构建出一个完整的调度方案;根据需求,局部更新信息素和全局更新信息素;更新启发式信息,根据价格和成本因素,将任务分配给虚拟机的启发式信息更新;本发明采用蚁群算法结合时间约束,保证了优化结果的质量,且对不同解的情况采用了不同的启发信息以及惩罚函数,能更好的平衡工作流的时间约束和解空间的多样性,同时通过对可用资源进行优化,进一步提高了执行效率,在优化中有良好的性能。
Description
技术领域
本发明涉及云服务平台和智能运算的研究领域,特别涉及一种基于蚁群算法的时间约束科学工作流优化方法。
背景技术
在科学计算环境中,工作流被定义为一系列原子任务,通过数据或计算上的依赖关系而形成的任务集合。工作流已经应用于许多领域,如电子商务、生物信息学、天文学和物理学。在这些领域中,任务通常分为计算密集型和数据密集型两种,而这两种任务都要求在用户可接受的时间范围内被执行完毕。为了满足服务质量,大规模工作流通常被部署在分布式环境中执行。如何协调多个任务在不同资源上的请求、优化任务完成时间和任务花费是当今的研究热点之一。
云计算是一种基于效用的分布式模型,它以提供软件应用程序和硬件基础设施作为服务。云计算可以分为三种计算模型:软件即服务、平台即服务和基础设施即服务。在基础设施即服务的模型中,云平台直接提供给消费者虚拟的计算能力(虚拟机),消费者可以根据任务的需求进行计算资源的租赁,因此基础设施即服务模型已经成功应用于大规模科学计算和电子商务领域。
在云服务平台上合理的分配工作流是一个很重要的问题,好的分配方案使得系统消耗更少的能量,且资源也得到充分利用。另外,合理的工作流调度可以帮助客户减少时间成本和经济成本。因此在本发明中,我们考虑的是在时间约束下,尽可能的减少在云服务平台上处理一个工作流的耗费。
目前,很多研究者在不同的情境下研究了工作流调度问题。一些研究者在定义虚拟机模型的时候只考虑虚拟机的计算能力和价格。在这样的模型下,虚拟计算能力要么是相同的,要么是和其价格成线性相关,因此将一个任务运行在不同的虚拟机上产生的耗费几乎是相同的,这与现实情况往往不符。在实际中,当云服务需要处理一个任务的时候,仅仅考虑CPU资源是不够的。例如,在矩阵运算中,对资源的需求属于计算密集型,运算的时间主要由CPU的速度决定。但是在数据库操作中,对资源的需求属于数据密集型,因此运行时间主要和虚拟计算资源的内存相关。特别是在大数据时代,数据密集型的任务越来越常见。因此一个更符合实际的模型,需要区别对待计算密集型任务和数据密集型任务,同时将虚拟计算资源的内存限制考虑进去。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于蚁群算法的时间约束科学工作流优化方法。
本发明的目的通过以下的技术方案实现:
一种基于蚁群算法的时间约束科学工作流优化方法,包含以下步骤:
S1、初始化信息,包括信息素矩阵和启发式信息;
S2、初始化所有的蚂蚁,利用初始的信息素和启发式信息,采用伪随机方法或者轮盘赌方法构建任务到资源之间的映射序列;
S3、利用解码算法,将编码中的信息构建出一个完整的调度方案;即计算每个蚂蚁的适应值和对运行时间进行估算;所述每个蚂蚁的适应值为工作流执行需要的总时间TT和工作流完成需要的总花费TC;
S4、局部更新信息素,即每当一个蚂蚁产生一个新的解时,利用局部更新法则更新信息素;检测蚁群中蚂蚁是否全部更新信息素,如没有全部更新信息素,则回到步骤S4;如果全部更新信息素,则进入下一步;
S6、全局更新信息素,即所有蚂蚁都构造解完成后,在全局范围里更新信息素;
S7、更新启发式信息,根据价格和成本因素,将任务分配给虚拟机的启发式信息更新如下:
α=c*Amountinfeasible/ColonySize,
其中,α为调节器,用于感知算法状态并根据算法状态调整的权重;pricej为初始化时设定的租用虚拟机种类在单元时间内需要的价格;costi,j为将任务ti和tj分配给虚拟机所需要的成本;Amountinfeasible为满足时间D约束的有效蚂蚁个数;ColonySize为初始化设定的蚁群大小;c为放大系数;
达到迭代次数,则结束优化;否则回到步骤S2。
进一步地,还包括以下步骤:为了惩罚优化过程中产生的无效解,利用惩罚函数优化;所述惩罚函数为:
其中,为局部惩罚函数,arr[i]为任务和虚拟机的映射关系,为初始化时的信息素值,TT为工作流执行需要的总时间,D为客户预设截止时间,d为依赖于任务截止时间和工作流执行时间的参数;
先利用局部惩罚函数进行局部更新信息素:
当所有解都构造完成后,再利用全局惩罚函数进行全局更新信息素:
β(i,j)=(1-ρ)*β(i,j)+ρ*Δβ(i,j),
其中,β(i,j)为任务到资源的全局更新信息素大小,ρ为权重参数,ρ∈(0,1),Δβ(i,j)为全局惩罚函数,TCgbest为全局最优时间,arrgbest[i]为全局最优的映射关系。
进一步地,所述启发式信息包含两种,一种是描述任务在虚拟机上运行的成本costi,j;另一种是描述每一个虚拟机的单位价格upj;
进一步地,所述任务再虚拟机上运行的成本costi,j,计算如下:
其中,ubi为任务对内存的需求上界,lbi为任务对内存的需求下界,msj为虚拟机的内存,tsi为任务大小,cnj为虚拟机的CPU计算性能,upj为虚拟机种类的单位价格,pti为在整个任务执行时间里与内存相关的执行时间比例;
进一步地,所述步骤S2,具体为:任务到资源的概率计算公式如下:
其中,P(i,j)为任务ti到资源rj的概率,为任务ti和资源rj之间的信息素,η(i,j)为任务ti到资源rj之间的启发式信息,optionSet为当前可以选择的资源集合,
将构建的任务序列编码为每一个蚂蚁的解;
进一步地,步骤S3中,所述对运行时间估算,具体为:
为了区别对待数据密集型任务和计算密集型任务,将一个任务分为两个部分,内存相关部分和CPU相关部分,用pti表示整个任务执行时间里与内存相关部分的执行时间比例,用sc表示内存大小和执行时间关系,执行时间计算如下:
其中,ubi为任务对内存的需求上界,lbi为任务对内存的需求下界,msj为虚拟机内存大小,degk为虚拟机速度退化速率,tsi为任务大小,cnj为虚拟机的CPU计算性能;
如果父任务和子任务分配到同一个虚拟机实例中,则有aj=0,否则aj=1,且任务之间的数据传输时间忽略,从父任务到子任务的数据传输时间计算如下:
其中,dsi为输出数据大小,B为带宽,
结合任务执行时间和数据传输时间,则处理单个任务的总时间计算如下:
TPTi=EXEi+DTTi,
其中,EXEi为任务再虚拟机实例上运行的时间,DTTi为从任务到子任务的数据传输时间;
进一步地,所述工作流执行需要的总时间TT和工作流完成需要的总花费TC,具体计算如下:
用集合M={m1,m2,…,mn}表示任务和资源之间的分配关系,且集合M大小等于任务数量,集合M中的元素m1=(vi,rk,STi,ETi)表示任务vi分配到虚拟机实例rk,预计开始执行时间为STi,完成时间为ETi,对于租用的虚拟机,分别有租用开始时间LSTk和租用结束时间LETk,则处理工作流所需要的总耗费TC和总时间TT计算如下:
TT=max{ET1,ET2,...,ETn},
其中,τ为租用一台虚拟机单位时间,upj为租用虚拟机单位价格;
把工作流调度问题看作组合优化问题,则目标是:
最小化TC
满足TT≤D,
其中,D为客户预设截止时间;
进一步地,所述每个蚂蚁的适应值,具体计算如下:
根据任务集合T,资源种类VM,最大并行数量p,arr[n]为任务和资源的映射关系,需要得到输出的一个元组S=(R,M,TC,TT);其中R为调度需要占用的资源,初始值不为零;M为工作流的调度序列,初始值不为零;TC为调度总花费,TT为执行需要的总时间;
判断任务ti所需要的虚拟机实例是否在R中,若已经包含在R中,ti的开始时间为其父任务结束完成时间和资源rarr[i]释放时间的最大值;若ti的父任务为空,则ti的开始时间为虚拟机实例的结束时间;若没有包含在R中,初始化虚拟机实例,并将其加入资源R中,判断是否有父节点,若父节点为空,则STi为bootTime,bootTime为资源初始化时启动时间,LSTrarr[i]为零;否则STi等于所有父任务的结束时间最大值,LSTrarr[i]等于STi-bootTime,
根据计算任务的执行时间和数据传输时间,得出调度计划:S=(R,M,TC,TT),最后更新全局最优序列,若TT≤D,则选择满足条件且花费最小的TC序列作为全局最优序列,若没有序列满足条件,则选择TT最小的序列作为全局最优解;
进一步地,所述全局更新信息素,在所有蚂蚁构造解完成后,在全局范围里更新信息素,具体为:
根据全局更新信息素公式:
β(i,j)=(1-ρ)*β(i,j)+ρ*Δβ(i,j),
其中,β(i,j)为任务到资源的全局更新信息素大小,ρ为权重参数,ρ∈(0,1),Δβ(i,j)为全局惩罚函数,TCgbest为全局最优时间,arrgbest[i]为全局最优的映射关系。
本发明与现有技术相比,具有如下优点和有益效果:
本发明采用蚁群算法结合时间约束,保证了优化结果的质量,且对不同解的情况采用了不同的启发信息以及惩罚函数,能更好的平衡工作流的时间约束和解空间的多样性,同时通过对可用资源进行优化,进一步提高了执行效率,在优化中有良好的性能。
附图说明
图1是本发明所述一种蚁群算法的时间约束科学工作流优化方法的方法流程图;
图2是本发明所述一种蚁群算法的时间约束科学工作流优化方法的蚂蚁编码示意图;
图3是本发明所述一种蚁群算法的时间约束科学工作流优化方法的工作流模型示意图;
图4是本发明所述一种蚁群算法的时间约束科学工作流优化方法的构造解过程示意图;
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
一种基于蚁群算法的时间约束科学工作流优化方法,如图1所示,包含以下步骤:
工作流模型
工作流被表示为一个任务优先图(TPG),用一个有向无环图表示,记为G(V,E),如图2所示。节点集合V={v1,v2,…,vn}表示工作流里有n个任务需要分配,节点之间的连边eij=(vi,vj)表示任务vi要优先于任务vj。在云服务平台上的工作流调度中,每一条边有一个权重来表示上一个任务和下一个任务之间需要传输的数据大小。另外,每一个工作流有一个客户预先设置的截止时间D,如图2所示为一个简单的工作流。
与之前的很多模型不同的是,在本发明里,为了区别计算密集型任务和数据密集型任务,工作流模型考虑了计算资源的内存限制。在工作流里,我们假设每一个任务都是原子性操作而且每一个任务需要不同大小的内存。一般来说,每一个任务对内存的需求有一个上界和下界。如果虚拟机提供的内存小于任务对内存需求的下界,那么该任务不被允许在该虚拟机上运行。如果虚拟机提供的内存在任务需求的内存上下界之间,那么该任务的运行速度随着虚拟计算资源的内存增加而增加,直到虚拟机提供的内存资源大于任务需求内存资源的上界。这样的设计是因为,随着内存的增加,可以在一定程度上减少操作系统的页错误(page faults),从而减少主存和缓存交换的次数,提高运行速度。
第一步:初始化信息,包括信息素矩阵和启发式信息;
在初始化过程中,需要初始化信息素矩阵和计算启发式信息。假设在工作流里有n个任务,最多可用的虚拟机实例数目|AR|。信息素被保存在一个n×|AR|的矩阵中,矩阵中的元素用来表示将任务vi分配给rk的信息素。初始信息素用如下公式计算:
其中TCheft是总耗费,TTheft是总执行时间,通过采用贪婪调度策略HEFT算法算出。D是预设的截止时间。当一个蚂蚁需要为任务选择虚拟机时,需要综合考虑信息素和启发式信息。在本发明中,为了加速A-ACO的收敛速度,为构造解过程引入了两种启发式信息。
所述启发式信息包含两种,一种是描述任务在虚拟机上运行的成本costi,j;另一种是描述每一个虚拟机的单位价格upj;
所述任务再虚拟机上运行的成本costi,j,计算如下:
其中,ubi为任务对内存的需求上界,lbi为任务对内存的需求下界,msj为虚拟机的内存,tsi为任务大小,cnj为虚拟机的CPU计算性能,upj为虚拟机种类的单位价格,pti为在整个任务执行时间里与内存相关的执行时间比例;
第二个启发式信息是每一个虚拟机类型的单位价格upj。在云服务平台中,合理的价格制订是,较高的单位价格的计算资源意味着拥有较高性能的计算能力。在工作流调度中,为了减少工作流的执行时间,将任务映射到较昂贵的较高性能计算资源上是合理的。所以为了满足工作流中的截止时间限制,有必要将价格作为启发式信息指导蚂蚁选择较高性能的资源。
结合以上两种启发式信息,针对将任务vi映射到虚拟机种类VMj上的实例rk的启发式信息,可以如下计算:
其中α是调整算法对机器价格和成本偏好的参数,和算法过程中产生的无效解的数量相关并由其数量自适应控制。在算法早期的时候,产生的无效解可能较多,α较大,这个时候蚂蚁会偏向于选择价格昂贵的机器来构造有效解;在算法后期的时候,蚁群里的有效解数量增加,α较小,这时候算法偏向于优化有效解而不是寻找有效解。
第二步:初始化所有的蚂蚁,利用初始的信息素和启发式信息,采用伪随机方法或者轮盘赌方法构建任务到资源之间的映射序列;
具体为:任务到资源的概率计算公式如下:
其中,P(i,j)为任务ti到资源rj的概率,为任务ti和资源rj之间的信息素,η(i,j)为任务ti到资源rj之间的启发式信息,optionSet为当前可以选择的资源集合,
将构建的任务序列编码为每一个蚂蚁的解;
在理论上,云服务的资源是无限的,但是为了定义搜索空间,定义可用资源的上限如下:
|AR|=p·q
其中p是可以并行处理的最大任务数量,q是虚拟机的种类。以图2为例,最多可以并行处理的任务数量是3:{t3,t4,t5}或{t3,t4,t7},假设有3种虚拟机类型:VM0,VM1,andVM2,那么该工作流有3*3=9个虚拟机实例可以租用。该9个虚拟机实例记为:{r0,r1,r2}属于VM0,{r3,r4,r5}属于VM1,{r6,r7,r8}属于VM2。
在工作流调度问题里,最重要的部分是找到任务和计算资源的映射关系,在本发明里,为了符合元启发式算法的计算框架,对任务和虚拟机之间的映射关系进行编码。一个长度为n的整型数组arr[1…n]用来表示映射关系,第i个元素值表示任务vi被映射到的虚拟机实例arr[i]。图3展示了一个简单编码示例。数组中第7个元素是3,表示任务v7被映射到虚拟机实例r3。尽管云资源是无限的,在本发明中,一些任务会等待某个被租用的虚拟机实例被释放。这样做的好处是减少虚拟机的使用,充分利用虚拟机的租用时间,减少租用成本。
第三步:利用解码算法,将编码中的信息构建出一个完整的调度方案;即计算每个蚂蚁的适应值和对运行时间进行估算;所述每个蚂蚁的适应值为工作流执行需要的总时间TT和工作流完成需要的总花费TC;
所述对运行时间估算,具体为:
为了区别对待数据密集型任务和计算密集型任务,将一个任务分为两个部分,内存相关部分和CPU相关部分,用pti表示整个任务执行时间里与内存相关部分的执行时间比例,用sc表示内存大小和执行时间关系,执行时间计算如下:
其中,ubi为任务对内存的需求上界,lbi为任务对内存的需求下界,msj为虚拟机内存大小,degk为虚拟机速度退化速率,tsi为任务大小,cnj为虚拟机的CPU计算性能;
如果父任务和子任务分配到同一个虚拟机实例中,则有aj=0,否则aj=1,且任务之间的数据传输时间忽略,从父任务到子任务的数据传输时间计算如下:
其中,dsi为输出数据大小,B为带宽,
结合任务执行时间和数据传输时间,则处理单个任务的总时间计算如下:
TPTi=EXEi+DTTi,
其中,EXEi为任务再虚拟机实例上运行的时间,DTTi为从任务到子任务的数据传输时间;
所述工作流执行需要的总时间TT和工作流完成需要的总花费TC,具体计算如下:
用集合M={m1,m2,…,mn}表示任务和资源之间的分配关系,且集合M大小等于任务数量,集合M中的元素m1=(vi,rk,STi,ETi)表示任务vi分配到虚拟机实例rk,预计开始执行时间为STi,完成时间为ETi,对于租用的虚拟机,分别有租用开始时间LSTk和租用结束时间LETk,则处理工作流所需要的总耗费TC和总时间TT计算如下:
TT=max{ET1,ET2,...,ETn},
其中,τ为租用一台虚拟机单位时间,upj为租用虚拟机单位价格;
把工作流调度问题看作组合优化问题,则目标是:
最小化TC
满足TT≤D,
其中,D为客户预设截止时间;
所述每个蚂蚁的适应值,具体计算如下:
根据任务集合T,资源种类VM,最大并行数量p,arr[n]为任务和资源的映射关系,需要得到输出的一个元组S=(R,M,TC,TT);其中R为调度需要占用的资源,初始值不为零;M为工作流的调度序列,初始值不为零;TC为调度总花费,TT为执行需要的总时间;
判断任务ti所需要的虚拟机实例是否在R中,若已经包含在R中,ti的开始时间为其父任务结束完成时间和资源rarr[i]释放时间的最大值;若ti的父任务为空,则ti的开始时间为虚拟机实例的结束时间;若没有包含在R中,初始化虚拟机实例,并将其加入资源R中,判断是否有父节点,若父节点为空,则STi为bootTime,bootTime为资源初始化时启动时间,LSTrarr[i]为零;否则STi等于所有父任务的结束时间最大值,LSTrarr[i]等于STi-bootTime,
根据计算任务的执行时间和数据传输时间,得出调度计划:S=(R,M,TC,TT),最后更新全局最优序列,若TT≤D,则选择满足条件且花费最小的TC序列作为全局最优序列,若没有序列满足条件,则选择TT最小的序列作为全局最优解;
第四步:局部更新信息素,即每当一个蚂蚁产生一个新的解时,利用局部更新法则更新信息素;检测蚁群中蚂蚁是否全部更新信息素,如没有全部更新信息素,则回到步骤S4;如果全部更新信息素,则进入下一步;
为了惩罚优化过程中产生的无效解,利用惩罚函数优化;所述惩罚函数为:
其中,为局部惩罚函数,arr[i]为任务和虚拟机的映射关系,为初始化时的信息素值,TT为工作流执行需要的总时间,D为客户预设截止时间,d为依赖于任务截止时间和工作流执行时间的参数;
利用惩罚函数更新信息素:
其中,为任务到资源的信息素大小。
局部信息素更新公式为:
其中,为任务ti到资源ri的信息素大小,为局部惩罚函数,arr[i]为任务和虚拟机的映射关系,为初始化时的信息素值,TT为工作流执行需要的总时间,D为任务要求的截止时间,ρ是一个参数,ρ∈(0,1);在局部更新信息素前,要检测每一个解的有效性。当一个解有效时,信息素接近于当一个解失效时,会小于意味着信息素被蒸发,失效解对应的信息素被惩罚函数降低。
解的构造
在A-ACO算法中,搜索空间会在解的构造过程中扩大。一方面,在分配一个任务之前,有着相同类型的未租用虚拟机实例是没有区别的,可以等价对待;另一方面,一旦一个虚拟机实例被租用后,这个虚拟机实例就和其他的虚拟机不同,因为有着计算性能衰退deg和租用时间属性。如图4所示,在该工作流调度里,假设有三种虚拟机类型VM0,VM1,VM2,每一种虚拟机类型有三个实例,{r0,r1,r2}属于VM0,{r3,r4,r5}属于VM1,{r6,r7,r8}属于VM2,每个虚拟机种类里的实例在没有被租赁的时候是等价的。首先将实例r0,r3,r6加入到optionSet里,假设虚拟机实例r0被分配任务v1,原先r0,r1,r2是等同的,由于r0分配了任务,r0和r1,r2产生区别,这时将r1加入到可选集合optionSet中,类似的,分配任务v2给虚拟机实例r3时,导致r3和r4,r5不同,需要将r4加入到集合optionSet里,以此类推。从图中发现,随着任务分配的进行,可选集合optionSet不断在扩大,意味着搜索空间在增加。
基于以上分析,本发明提出了一种新的构造解的方法。首先,随机产生实数q和预先设定的q0进行比较,若是q<q0,对所有虚拟机实例rj∈optionSet,选取使得值最大的rj作为ti的执行硬件;否则,采用轮盘赌根据概率P(i,j)进行选择。其次,更新optionSet,如果选取的rj已经在optionSet中,则不对optionSet进行更新,否则在optionSet中添加一个与rj同类型的资源实例。最后,重复以上步骤直到映射关系构建完成。
第五步:全局更新信息素,即所有蚂蚁都构造解完成后,在全局范围里更新信息素;
所述全局更新信息素,在所有蚂蚁构造解完成后,在全局范围里更新信息素,具体为:
根据全局更新信息素公式:
β(i,j)=(1-ρ)*β(i,j)+ρ*Δβ(i,j),
其中,β(i,j)为任务到资源的全局更新信息素大小,ρ为权重参数,ρ∈(0,1),Δβ(i,j)为全局惩罚函数,TCgbest为全局最优时间,arrgbest[i]为全局最优的映射关系。
第六步:更新启发式信息,根据价格和成本因素,将任务分配给虚拟机的启发式信息更新如下:
α=c*Amountinfeasible/ColonySize,
其中,α为调节器,用于感知算法状态并根据算法状态调整的权重;pricej为初始化时设定的租用虚拟机种类在单元时间内需要的价格;costi,j为将任务ti和tj分配给虚拟机所需要的成本;Amountinfeasible为满足时间D约束的有效蚂蚁个数;ColonySize为初始化设定的蚁群大小;c为放大系数;
达到迭代次数,则结束优化;否则回到步骤S2。
总的来说,为了更好的模拟实际中云服务平台下的计算情境,本发明构建了一种新的工作流调度模型。在新的模型里,考虑了虚拟机的内存限制对执行时间的影响,使得计算密集型任务和数据密集型任务被区别对待。通过结合成本启发式信息和新的构造解方法,本发明提出的A-ACO有着更快进入有效解搜索空间的能力。同时结合自适应价格启发式信息和对无效解的惩罚措施,A-ACO有能力为不同的任务选取合适的计算资源。
在本发明中,为了证实所提出A-ACO的有效性,我们使用四种不同类型的工作流在亚马逊EC2平台上对发明的算法进行测试。为了与发明的算法进行对比,使用PSO算法针对同样的测试集进行测试,对两种算法的结果进行比较显示,本发明的方法在满足约束的成功率和执行任务的总的花费上的效果要好于PSO算法,实验结果证明本发明在处理不同规模的带有时间约束的科学工作流调度问题上是更加稳定和高效的。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (9)
1.一种基于蚁群算法的时间约束科学工作流优化方法,其特征在于,包含以下步骤:
S1、初始化信息,包括信息素矩阵和启发式信息;
S2、初始化所有的蚂蚁,利用初始的信息素和启发式信息,采用伪随机方法或者轮盘赌方法构建任务到资源之间的映射序列;
S3、利用解码算法,将编码中的信息构建出一个完整的调度方案;即计算每个蚂蚁的适应值和对运行时间进行估算;所述每个蚂蚁的适应值为工作流执行需要的总时间TT和工作流完成需要的总花费TC;
S4、局部更新信息素,即每当一个蚂蚁产生一个新的解时,利用局部更新法则更新信息素;检测蚁群中蚂蚁是否全部更新信息素,如没有全部更新信息素,则回到步骤S4;如果全部更新信息素,则进入下一步;
S5、全局更新信息素,即所有蚂蚁都构造解完成后,在全局范围里更新信息素;
S6、更新启发式信息,根据价格和成本因素,将任务分配给虚拟机的启发式信息更新如下:
α=c*Amountinfeasible/ColonySize,
其中,α为调节器,用于感知算法状态并根据算法状态调整的权重;pricej为初始化时设定的租用虚拟机种类在单元时间内需要的价格;costi,j为将任务ti和tj分配给虚拟机所需要的成本;Amountinfeasible为满足时间约束的有效蚂蚁个数;ColonySize为初始化设定的蚁群大小;c为放大系数;
达到迭代次数,则结束优化;否则回到步骤S2。
2.根据权利要求1所述的一种基于蚁群算法的时间约束科学工作流优化方法,其特征在于,还包括以下步骤:为了惩罚优化过程中产生的无效解,利用惩罚函数优化;所述惩罚函数为:
其中,为局部惩罚函数,arr[i]为任务和虚拟机的映射关系,为初始化时的信息素值,TT为工作流执行需要的总时间,D为客户预设截止时间,d为依赖于任务截止时间和工作流执行时间的参数;
先利用局部惩罚函数进行局部更新信息素:
当所有解都构造完成后,再利用全局惩罚函数进行全局更新信息素:
β(i,j)=(1-ρ)*β(i,j)+ρ*Δβ(i,j),
其中,β(i,j)为任务到资源的全局更新信息素大小,ρ为权重参数,ρ∈(0,1),Δβ(i,j)为全局惩罚函数,TCgbest为全局最优时间,arrgbest[i]为全局最优的映射关系。
3.根据权利要求1所述的一种基于蚁群算法的时间约束科学工作流优化方法,其特征在于,所述启发式信息包含两种,一种是描述任务在虚拟机上运行的成本costi,j;另一种是描述每一个虚拟机的单位价格upj。
4.根据权利要求3所述的一种基于蚁群算法的时间约束科学工作流优化方法,其特征在于,所述任务再虚拟机上运行的成本costi,j,计算如下:
其中,ubi为任务对内存的需求上界,lbi为任务对内存的需求下界,msj为虚拟机的内存,tsi为任务大小,cnj为虚拟机的CPU计算性能,upj为虚拟机种类的单位价格,pti为在整个任务执行时间里与内存相关的执行时间比例。
5.根据权利要求1所述的一种基于蚁群算法的时间约束科学工作流优化方法,其特征在于,所述步骤S2,具体为:任务到资源的概率计算公式如下:
其中,P(i,j)为任务ti到资源rj的概率,为任务ti和资源rj之间的信息素,η(i,j)为任务ti到资源rj之间的启发式信息,optionSet为当前可以选择的资源集合,
将构建的任务序列编码为每一个蚂蚁的解。
6.根据权利要求1所述的一种基于蚁群算法的时间约束科学工作流优化方法,其特征在于,步骤S3中,所述对运行时间估算,具体为:
为了区别对待数据密集型任务和计算密集型任务,将一个任务分为两个部分,内存相关部分和CPU相关部分,用pti表示整个任务执行时间里与内存相关部分的执行时间比例,用sc表示内存大小和执行时间关系,执行时间计算如下:
其中,ubi为任务对内存的需求上界,lbi为任务对内存的需求下界,msj为虚拟机内存大小,degk为虚拟机速度退化速率,tsi为任务大小,cnj为虚拟机的CPU计算性能;
如果父任务和子任务分配到同一个虚拟机实例中,则有aj=0,否则aj=1,且任务之间的数据传输时间忽略,从父任务到子任务的数据传输时间计算如下:
其中,dsi为输出数据大小,B为带宽,
结合任务执行时间和数据传输时间,则处理单个任务的总时间计算如下:
TPTi=EXEi+DTTi,
其中,EXEi为任务再虚拟机实例上运行的时间,DTTi为从任务到子任务的数据传输时间。
7.根据权利要求1所述的一种基于蚁群算法的世界约束科学工作流优化方法,其特征在于,所述工作流执行需要的总时间TT和工作流完成需要的总花费TC,具体计算如下:
用集合M={m1,m2,...,mn}表示任务和资源之间的分配关系,且集合M大小等于任务数量,集合M中的元素m1=(vi,rk,STi,ETi)表示任务vi分配到虚拟机实例rk,预计开始执行时间为STi,完成时间为ETi,对于租用的虚拟机,分别有租用开始时间LSTk和租用结束时间LETk,则处理工作流所需要的总耗费TC和总时间TT计算如下:
TT=max{ET1,ET2,...,ETn},
其中,τ为租用一台虚拟机单位时间,upj为租用虚拟机单位价格;
把工作流调度问题看作组合优化问题,则目标是:
其中,D为客户预设截止时间。
8.根据权利要求7所述的一种基于蚁群算法的时间约束科学工作流优化方法,其特征在于,所述每个蚂蚁的适应值,具体计算如下:
根据任务集合T,资源种类VM,最大并行数量p,arr[n]为任务和资源的映射关系,需要得到输出的一个元组S=(R,M,TC,TT);其中R为调度需要占用的资源,初始值不为零;M为工作流的调度序列,初始值不为零;TC为调度总花费,TT为执行需要的总时间;
判断任务ti所需要的虚拟机实例是否在R中,若已经包含在R中,ti的开始时间为其父任务结束完成时间和资源rarr[i]释放时间的最大值;若ti的父任务为空,则ti的开始时间为虚拟机实例的结束时间;若没有包含在R中,初始化虚拟机实例,并将其加入资源R中,判断是否有父节点,若父节点为空,则STi为bootTime,bootTime为资源初始化时启动时间,LSTrarr[i]为零;否则STi等于所有父任务的结束时间最大值,LSTrarr[i]等于STi-bootTime,
根据计算任务的执行时间和数据传输时间,得出调度计划:S=(R,M,TC,TT),最后更新全局最优序列,若TT≤D,则选择满足条件且花费最小的TC序列作为全局最优序列,若没有序列满足条件,则选择TT最小的序列作为全局最优解。
9.根据权利要求1所述的一种基于蚁群算法的时间约束科学工作流优化方法,其特征在于,所述虚拟机类型为VMj。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811357048.2A CN109634742B (zh) | 2018-11-15 | 2018-11-15 | 一种基于蚁群算法的时间约束科学工作流优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811357048.2A CN109634742B (zh) | 2018-11-15 | 2018-11-15 | 一种基于蚁群算法的时间约束科学工作流优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109634742A true CN109634742A (zh) | 2019-04-16 |
CN109634742B CN109634742B (zh) | 2023-05-05 |
Family
ID=66068162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811357048.2A Active CN109634742B (zh) | 2018-11-15 | 2018-11-15 | 一种基于蚁群算法的时间约束科学工作流优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109634742B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110111006A (zh) * | 2019-05-08 | 2019-08-09 | 中国石油大学(华东) | 一种基于混沌蚁群系统的云中科学工作流费用优化调度方法 |
CN111813525A (zh) * | 2020-07-09 | 2020-10-23 | 西北工业大学 | 一种异构系统工作流调度方法 |
CN111861412A (zh) * | 2020-07-27 | 2020-10-30 | 上海交通大学 | 面向完成时间优化的科学工作流调度方法及系统 |
CN112700065A (zh) * | 2021-01-14 | 2021-04-23 | 上海交通大学 | 基于深度学习的业务流程完成时间区间预测方法和系统 |
CN113722076A (zh) * | 2021-10-29 | 2021-11-30 | 华南理工大学 | 基于QoS和能耗协同优化的实时工作流调度方法 |
CN113986518A (zh) * | 2021-12-28 | 2022-01-28 | 华南理工大学 | 一种基于蚁群算法的实时云任务多目标优化调度方法 |
CN114077475A (zh) * | 2020-08-11 | 2022-02-22 | 中移(苏州)软件技术有限公司 | 任务调度方法、装置、电子设备及存储介质 |
CN115080236A (zh) * | 2022-06-24 | 2022-09-20 | 西安电子科技大学 | 基于图分割的工作流部署方法 |
CN116170365A (zh) * | 2023-04-24 | 2023-05-26 | 驿羚江苏大数据有限公司 | 基于蚁群算法的多用户SaaS服务部署系统及方法 |
CN117785381A (zh) * | 2023-12-19 | 2024-03-29 | 江南大学 | 一种基于多种群蚁群算法的虚拟机部署规划方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120084743A1 (en) * | 2010-09-30 | 2012-04-05 | Ispir Mustafa | Method and apparatus for improving the interconnection and multiplexing cost of circuit design from high level synthesis using ant colony optimization |
CN103970609A (zh) * | 2014-04-24 | 2014-08-06 | 南京信息工程大学 | 一种基于改进蚁群算法的云数据中心任务调度方法 |
CN106055395A (zh) * | 2016-05-18 | 2016-10-26 | 中南大学 | 一种基于蚁群优化算法的云环境中截止时间约束工作流调度方法 |
-
2018
- 2018-11-15 CN CN201811357048.2A patent/CN109634742B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120084743A1 (en) * | 2010-09-30 | 2012-04-05 | Ispir Mustafa | Method and apparatus for improving the interconnection and multiplexing cost of circuit design from high level synthesis using ant colony optimization |
CN103970609A (zh) * | 2014-04-24 | 2014-08-06 | 南京信息工程大学 | 一种基于改进蚁群算法的云数据中心任务调度方法 |
CN106055395A (zh) * | 2016-05-18 | 2016-10-26 | 中南大学 | 一种基于蚁群优化算法的云环境中截止时间约束工作流调度方法 |
Non-Patent Citations (3)
Title |
---|
WEI-NENG CHEN 等: "An Ant Colony Optimization Approach to a Grid Workflow Scheduling Problem With Various QoS Requirements", 《 IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS, PART C (APPLICATIONS AND REVIEWS) 》 * |
YUE ZHOU等: "Scheduling Workflow in Cloud Computing Based on Ant Colony Optimization Algorithm", 《2013 SIXTH INTERNATIONAL CONFERENCE ON BUSINESS INTELLIGENCE AND FINANCIAL ENGINEERING》 * |
付治政等: "基于信息素调整的蚁群算法求解JSP问题", 《计算机工程与设计》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110111006A (zh) * | 2019-05-08 | 2019-08-09 | 中国石油大学(华东) | 一种基于混沌蚁群系统的云中科学工作流费用优化调度方法 |
CN111813525A (zh) * | 2020-07-09 | 2020-10-23 | 西北工业大学 | 一种异构系统工作流调度方法 |
CN111813525B (zh) * | 2020-07-09 | 2024-05-03 | 西北工业大学 | 一种异构系统工作流调度方法 |
CN111861412A (zh) * | 2020-07-27 | 2020-10-30 | 上海交通大学 | 面向完成时间优化的科学工作流调度方法及系统 |
CN111861412B (zh) * | 2020-07-27 | 2024-03-15 | 上海交通大学 | 面向完成时间优化的科学工作流调度方法及系统 |
CN114077475A (zh) * | 2020-08-11 | 2022-02-22 | 中移(苏州)软件技术有限公司 | 任务调度方法、装置、电子设备及存储介质 |
CN112700065A (zh) * | 2021-01-14 | 2021-04-23 | 上海交通大学 | 基于深度学习的业务流程完成时间区间预测方法和系统 |
CN112700065B (zh) * | 2021-01-14 | 2022-03-11 | 上海交通大学 | 基于深度学习的业务流程完成时间区间预测方法和系统 |
CN113722076B (zh) * | 2021-10-29 | 2022-03-29 | 华南理工大学 | 基于QoS和能耗协同优化的实时工作流调度方法 |
CN113722076A (zh) * | 2021-10-29 | 2021-11-30 | 华南理工大学 | 基于QoS和能耗协同优化的实时工作流调度方法 |
CN113986518B (zh) * | 2021-12-28 | 2022-05-24 | 华南理工大学 | 一种基于蚁群算法的实时云任务多目标优化调度方法 |
CN113986518A (zh) * | 2021-12-28 | 2022-01-28 | 华南理工大学 | 一种基于蚁群算法的实时云任务多目标优化调度方法 |
CN115080236A (zh) * | 2022-06-24 | 2022-09-20 | 西安电子科技大学 | 基于图分割的工作流部署方法 |
CN115080236B (zh) * | 2022-06-24 | 2024-04-16 | 西安电子科技大学 | 基于图分割的工作流部署方法 |
CN116170365A (zh) * | 2023-04-24 | 2023-05-26 | 驿羚江苏大数据有限公司 | 基于蚁群算法的多用户SaaS服务部署系统及方法 |
CN116170365B (zh) * | 2023-04-24 | 2023-08-04 | 驿羚江苏大数据有限公司 | 基于蚁群算法的多用户SaaS服务部署系统及方法 |
CN117785381A (zh) * | 2023-12-19 | 2024-03-29 | 江南大学 | 一种基于多种群蚁群算法的虚拟机部署规划方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109634742B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634742A (zh) | 一种基于蚁群算法的时间约束科学工作流优化方法 | |
CN110737529B (zh) | 一种面向短时多变大数据作业集群调度自适应性配置方法 | |
Li et al. | Two-level multi-task scheduling in a cloud manufacturing environment | |
Deldari et al. | CCA: a deadline-constrained workflow scheduling algorithm for multicore resources on the cloud | |
CN110489229B (zh) | 一种多目标任务调度方法及系统 | |
Kaur et al. | Deep‐Q learning‐based heterogeneous earliest finish time scheduling algorithm for scientific workflows in cloud | |
CN107656799B (zh) | 一种多云环境下考虑通信和计算代价的工作流调度方法 | |
US11816509B2 (en) | Workload placement for virtual GPU enabled systems | |
CN103970609A (zh) | 一种基于改进蚁群算法的云数据中心任务调度方法 | |
CN112181620B (zh) | 云环境下虚拟机服务能力感知的大数据工作流调度方法 | |
Arabnejad et al. | Maximizing the completion rate of concurrent scientific applications under time and budget constraints | |
CN108628665A (zh) | 基于数据密集型科学工作流的任务调度与虚拟机整合方法 | |
Li et al. | An effective scheduling strategy based on hypergraph partition in geographically distributed datacenters | |
Venugopal et al. | A deadline and budget constrained scheduling algorithm for eScience applications on data grids | |
Zhou et al. | Concurrent workflow budget-and deadline-constrained scheduling in heterogeneous distributed environments | |
CN109710372B (zh) | 一种基于猫头鹰搜索算法的计算密集型云工作流调度方法 | |
Mousavi Khaneghah et al. | A mathematical multi-dimensional mechanism to improve process migration efficiency in peer-to-peer computing environments | |
Qureshi et al. | Grid resource allocation for real-time data-intensive tasks | |
Nadeem et al. | Predicting the execution time of grid workflow applications through local learning | |
Saeedizade et al. | DDBWS: a dynamic deadline and budget-aware workflow scheduling algorithm in workflow-as-a-service environments | |
CN117032902A (zh) | 一种基于负载的改进离散粒子群算法的云任务调度方法 | |
CN117687759A (zh) | 一种任务调度方法、装置、处理设备及可读存储介质 | |
CN114217930A (zh) | 一种基于混合任务调度的加速器系统资源优化管理方法 | |
Ye et al. | A cost-driven intelligence scheduling approach for deadline-constrained IoT workflow applications in cloud computing | |
Badr et al. | Task consolidation based power consumption minimization in cloud computing environment |
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 |