CN115480876A - 基于蚁群算法优化的云计算任务调度方法及系统 - Google Patents

基于蚁群算法优化的云计算任务调度方法及系统 Download PDF

Info

Publication number
CN115480876A
CN115480876A CN202211120555.0A CN202211120555A CN115480876A CN 115480876 A CN115480876 A CN 115480876A CN 202211120555 A CN202211120555 A CN 202211120555A CN 115480876 A CN115480876 A CN 115480876A
Authority
CN
China
Prior art keywords
task
virtual machine
ant
tasks
execution time
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.)
Pending
Application number
CN202211120555.0A
Other languages
English (en)
Inventor
史志
刘贻任
吴奕隆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202211120555.0A priority Critical patent/CN115480876A/zh
Publication of CN115480876A publication Critical patent/CN115480876A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供一种基于蚁群算法优化的云计算任务调度方法及系统,通过计算任务集中各任务在不同虚拟机上的执行时间来确定Sufferage值,按Sufferage值从高至低的优先级顺序逐一为对应的任务预分配各自理想的虚拟机,然后统计虚拟机在每次预分配操作后的剩余资源,接着逐层构造各任务在不同剩余资源状态下的状态转移概率,对于在前处理的任务会获得更多的剩余资源,其在理想虚拟机上的状态转移概率要高于在后处理的任务,进而使得对时间损失度敏感的任务比非敏感任务具有更优的虚拟机选择条件,提高了蚁群算法对时间紧迫性任务计算最优解的能力,减少任务调度跨度,将Sufferage算法与蚁群算法融合,在全局求解过程中融入了局部解的优化能力。

Description

基于蚁群算法优化的云计算任务调度方法及系统
技术领域
本发明涉及云计算服务领域,具体涉及基于蚁群算法优化的云计算任务调度方法及任务调度系统。
背景技术
云计算环境拥有数量众多的处理器,庞大的使用群体,多样化的任务类型,其数据中心时刻面临海量数据和应用任务,其核心在于如何对用户任务和计算资源进行合理地管理调度,因此任务调度问题一直是云计算研究的重点问题。云计算任务调度是指在满足用户QoS(Quality ofService)需求、负载均衡、电能消耗等条件下,根据云计算服务器上的现有资源以及各运行任务的未来预测情况将原本各自为政的用户任务呈现至合适的虚拟机中运行,并在最后返回处理结果的一个资源调度过程。
云计算任务调度策略主要分为两大类,一类是传统的非智能调度算法,包括Min-Min、Max-Min、Sufferage和RR等算法。Min-Min算法和Max-Min算法都是典型的独立任务调度算法,具有运行时间和计算复杂度低的特性,但容易导致性能更优的处理器负载过重和大任务调度时间过长的情况出现,存在负载不均衡问题;Sufferage算法能够衡量任务的时间损失度,减少任务调度跨度,充分满足用户QoS要求,但由于其完全考虑时间损失度的影响,容易产生局部最优问题,缺乏对全局任务调度的考虑。
另一类是基于启发式算法的智能调度方法,目前应用较多的主要有GA、PSO、ACO等算法。遗传算法(GA)是一种模拟自然界生物种群“优胜劣汰”自然选择过程的算法,从群体出发,具备同时搜索能力,解决并行问题能力强,易与其他算法融合,但该算法实现过程比较复杂,搜索时间耗费过长且效率不高,随着计算规模的不断扩大,易出现提前收敛;受鸟群和鱼群寻找食物的行为规律启发,Eberhart和Kennedy提出了粒子群(PSO)优化算法,其具有参数设置少、搜索和收敛速度快等特点,缺点在于初始种群随机性强,其好坏直接影响算法的搜索空间,如果初始种群选择不当会降低算法的寻优能力;受蚂蚁觅食行为的启发,Marco提出了蚁群算法(ACO),由于该算法具有优异的扩展性、多样性,其正反馈性和并发性也比较突出,适用于多目标下最优解问题的搜寻,因此被众多云计算服务运营商广泛采用,但由于该算法的核心思想是多目标优化问题,在可接受的计算代价内,给出满足各个实例的可行解,而对于某个实例来说这个解未必是最优解,尤其是对时间损失度敏感的任务,如果被分配的运算资源不够理想会使数据处理过程产生滞后性,严重降低用户服务质量。
发明内容
为了解决传统蚁群算法在计算全局最优解时,忽略了单一任务存在的执行时间紧迫性问题,本发明提供基于蚁群算法优化的云计算任务调度方法和任务调度系统,本发明将Sufferage算法与蚁群算法融合,优先将理想的虚拟机资源预分配给Sufferage值高的任务,然后统计虚拟机在每次预分配操作后的剩余资源,接着逐层构造各任务在不同剩余资源状态下的状态转移概率,使得对时间损失度敏感的任务比非敏感任务具有更优的虚拟机选择条件,更容易获得理想的虚拟机分配结果。
为了实现上述目的,本发明提供的基于蚁群算法优化的云计算任务调度方法,该方法具体包括以下步骤:
步骤1)将所有虚拟机置为空闲状态,计算任务集中各任务在不同虚拟机上的执行时间并按升序排列,将次短完成时间与最短完成时间之间的差值记为sufferage值,对所有任务的sufferage值按降序排列获得sufferage序列;
步骤2)将所有任务分配到蚁群中待执行调度作业的蚂蚁节点上,每个蚂蚁节点按sufferage序列中sufferage值顺序依次提取对应的任务,对于任意相邻的两个任务,根据执行时间择优原则先为前一任务分配虚拟机,然后从已分配虚拟机总资源内减去前一任务对资源的消耗量,获得已分配虚拟机的资源剩余量,利用各虚拟机资源剩余量计算其与后一任务之间的初始状态转移概率;
步骤3)每个蚂蚁节点利用初始状态转移概率对所有任务分别执行轮盘赌策略,从任务-虚拟机分配矩阵中选择出对应的任务-虚拟机分配方案,当所有蚂蚁节点对每个任务均完成虚拟机分配后,利用任务-虚拟机分配方案对任务-虚拟机分配矩阵进行全局信息素更新,生成全局信息素更新矩阵;
步骤4)每个蚂蚁利用全局信息素更新矩阵重新计算状态转移概率和执行轮盘赌策略,利用重新选择出的任务-虚拟机分配方案生成新的全局信息素更新矩阵;
步骤5)迭代执行步骤4),直至获得最优解的任务-虚拟机分配方案,利用该最优解对各任务执行调度作业。
进一步优选地,根据执行时间择优原则为任务分配虚拟机的过程为:
步骤211)提取当前任务最短完成时间所对应的虚拟机记为最优虚拟机,判断最优虚拟机上是否存在已分配的任务,如果不存在,则直接将该最优虚拟机分配给当前任务并执行步骤213),否则将最优虚拟机上所有已分配的任务执行时间与当前任务最短完成时间求和,得到最优虚拟机的总执行时间;
步骤212)将总执行时间与当前任务次短完成时间进行比较,如果总执行时间不大于当前任务次短完成时间,则将最优虚拟机分配给当前任务并执行步骤213),否则提取当前任务次短完成时间所对应的虚拟机记为次优虚拟机,判断次优虚拟机上是否存在已分配的任务,如果不存在,则直接将该次优虚拟机分配给当前任务并执行步骤213),否则将次优虚拟机上所有已分配的任务执行时间与当前任务次短完成时间求和,得到次优虚拟机的总执行时间并重复执行当前步骤;
步骤213)根据sufferage序列中sufferage值顺序选择下一个任务并重新执行步骤211),直至所有任务均完成虚拟机分配。
进一步优选地,所述初始状态转移概率的生成过程包括:
步骤221)计算第j个虚拟机VMj在执行第i个任务Ti调度前的资源剩余量:
Figure BDA0003846337240000031
Figure BDA0003846337240000032
其中,cpj和bwj分别表示虚拟机VMj的总计算能力和总通信带宽,Lengthm和InputSizem分别表示执行第m个任务Tm需要消耗的计算量和传输的数据量,Taskij表示在执行第i个任务Ti调度前已分配到虚拟机VMj上的所有任务集合,cp'ij和bw'ij分别表示虚拟机VMj在执行第i个任务Ti调度前的剩余计算能力和剩余通信带宽;
步骤222)利用资源剩余量计算任务Ti分配给虚拟机VMj方案上的启发信息:
Figure BDA0003846337240000033
其中,ETCij表示任务Ti在虚拟机VMj资源剩余量上的执行时间,表示为:
Figure BDA0003846337240000034
其中,Lengthi和InputSizei分别表示执行任务Ti需要消耗的计算量和传输的数据量;
步骤223)利用虚拟机VMj的总资源计算初始信息素:
Figure BDA0003846337240000041
其中,τij(0)表示在初始状态下任务Ti分配给虚拟机VMj方案上的信息素,a和b表示设定的常数;
步骤224)利用启发信息ηij和初始信息素τij(0)生成初始状态转移概率:
Figure BDA0003846337240000042
其中,
Figure BDA0003846337240000043
表示在初始状态下,第k个蚂蚁节点将任务Ti分配给虚拟机VMj的概率,K表示蚁群中蚂蚁节点总数,J表示虚拟机总数,α和β分别表示信息素权重因子和启发信息权重因子。
进一步优选地,所述步骤4)还包括采用以下公式执行全局信息素更新:
τij(t+1)=(1-ρ)τij(t)+Δτij,0≤t≤N
其中,t表示轮盘赌策略迭代次数,N表示系统设定的最大迭代次数,τij(t)表示在执行第t次轮盘赌策略前任务Ti分配给虚拟机VMj方案上的信息素,ρ表示信息素挥发因子,ρ∈(0,1),Δτij表示所有蚂蚁在任务Ti分配给虚拟机VMj方案上留下的信息素增量之和,表示为:
Figure BDA0003846337240000044
其中,
Figure BDA0003846337240000045
表示第k个蚂蚁节点在任务Ti分配给虚拟机VMj方案上留下的信息素增量,表示为:
Figure BDA0003846337240000046
其中,Q表示常量,Lk(t)表示第k个蚂蚁节点在执行第t次任务-虚拟机分配方案时的执行时间,xij表示任务Ti分配给虚拟机VMj的方案,Ck(t)表示第k个蚂蚁节点的第t次任务-虚拟机分配方案集合。
进一步优选地,所述步骤4)还包括利用启发信息ηij和更新后的全局信息素τij(t+1)重新计算状态转移概率:
Figure BDA0003846337240000047
其中,
Figure BDA0003846337240000051
表示在执行第t+1次轮盘赌策略时,第k个蚂蚁节点将任务Ti分配给虚拟机VMj的概率。
进一步优选地,所述步骤5)中最优解的任务-虚拟机分配方案选择过程包括:
步骤511)当每次轮盘赌策略执行完成后,从所有蚂蚁节点的任务-虚拟机分配方案执行时间中选择出最短执行时间对应的方案,记为候选方案;
步骤512)将最短执行时间与预设时长进行比较,如果最短执行时间不大于预设时长,则将候选方案作为最优解,否则继续执行下一次轮盘赌策略,并重复执行步骤511),直至选择出满足最优解条件的任务-虚拟机分配方案。
本发明还提供了一种基于蚁群算法优化的云计算任务调度系统,该任务调度系统具体包括:执行时间预测模块、sufferage序列生成模块、状态转移概率运算模块、轮盘赌策略执行模块、信息素更新模块和任务调度模块;
执行时间预测模块:将所有虚拟机置为空闲状态,计算任务集中各任务在不同虚拟机上的执行时间;
sufferage序列生成模块:对执行时间按升序排列,将次短完成时间与最短完成时间之间的差值记为sufferage值,对所有任务的sufferage值按降序排列获得sufferage序列;
状态转移概率运算模块:将所有任务分配到蚁群中待执行调度作业的蚂蚁节点上,每个蚂蚁节点按sufferage序列中sufferage值顺序依次提取对应的任务,对于任意相邻的两个任务,根据执行时间择优原则先为前一任务分配虚拟机,然后从已分配虚拟机总资源内减去前一任务对资源的消耗量,获得已分配虚拟机的资源剩余量,利用各虚拟机资源剩余量计算其与后一任务之间的初始状态转移概率,同时利用全局信息素更新矩阵重新计算状态转移概率;
轮盘赌策略执行模块:利用状态转移概率对所有任务分别执行轮盘赌策略,从任务-虚拟机分配矩阵中选择出对应的任务-虚拟机分配方案;
信息素更新模块:在所有蚂蚁节点对每个任务均完成虚拟机分配后,利用任务-虚拟机分配方案对任务-虚拟机分配矩阵进行全局信息素更新,生成全局信息素更新矩阵;
任务调度模块:在轮盘赌策略迭代执行过程中获得最优解的任务-虚拟机分配方案,利用该最优解对各任务执行调度作业。
本发明的云计算任务调度方法、任务调度系统的有益效果:
通过计算任务集中各任务在不同虚拟机上的执行时间来确定Sufferage值,Sufferage值越高表明任务最短与次短完成时间之间的差异越大,要求系统分配理想虚拟机的迫切性也就越强,为此按Sufferage值从高至低的优先级顺序逐一为对应的任务预分配各自理想的虚拟机,然后统计虚拟机在每次预分配操作后的剩余资源,接着逐层构造各任务在不同剩余资源状态下的状态转移概率,对于在前处理的任务会获得更多的剩余资源,其在理想虚拟机上的状态转移概率要高于在后处理的任务,进而使得对时间损失度敏感的任务比非敏感任务具有更优的虚拟机选择条件,更容易获得理想的虚拟机分配结果,提高了蚁群算法对时间紧迫性任务计算最优解的能力,减少任务调度跨度。
本发明将Sufferage算法与蚁群算法融合,优化后的任务调度算法保留了蚁群算法本身具有的特性,即对任务分配方案仍然拥有较强的全局搜索能力,蚂蚁相对独立地对各自的最短路径进行搜索,避免陷入单一Sufferage算法所产生的局部最优问题;另外,各任务通过预分配策略计算得到的初始状态转移概率各不相同,由此能够为不同优先级任务的调度提供引导,在全局求解过程中融入了局部解的优化能力,且避免了因信息匮乏导致蚁群算法前期需要花费大量时间积累信息素、初期求解速度慢的问题。
由于虚拟机被预分配的任务越多,使得其剩余资源越少,对后续待分配任务的争夺能力也就会下降,即再次被分配到任务的可能性也就会逐渐降低,直至虚拟机被剩余所有待分配任务均评价为不理想的较远路径,从而避免当前虚拟机出现过载,其余虚拟机处于空间状态的情况,导致虚拟机资源负载不均衡的问题,这种高效的负载均衡方案能够潜在地减少资源的过度配置,提高资源利用率。
附图说明
图1为本发明在一个实施例中提供的云计算任务调度方法流程图;
图2为本发明在另一个实施例中提供的云计算任务调度方法流程图;
图3为本发明提供的基于蚁群算法优化的云计算任务调度系统结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
蚁群算法是一种基于正反馈机制的启发式寻优方法,具体依赖于启发信息和信息素,通过个体努力与群体协作在位置领域进行搜索,基于正反馈增大较优路径上的信息素,选出最优路径。具体原理是蚂蚁在觅食路径上通过分泌的信息素来传递信息,信息素浓度越高,被后来的蚂蚁选择的概率越大,后来的每只蚂蚁都会在该路径上留下外激素,路径长度与外激素的浓度呈负相关关系,随着时间推移,路径越短其累计的信息素浓度就越高,蚂蚁更倾向选择信息素浓度高的路径,最后所有的蚂蚁都会选择集中于最佳的路径上,此时对应的便是最优解。但是如果当前路径不是全局最优,蚁群算法则会陷入局部最优,此问题产生的根本原因是在初始状态下,由于各路径上的信息素比较均匀且稀薄,使得蚂蚁无引导的进行盲目探索,进一步导致蚂蚁容易在非全局最优的部分区域产生较强的信息素浓度,最终造成运算收敛速度过快并陷入局部最优问题。
另一方面,蚁群算法的核心思想是多目标优化问题,在可接受的计算代价内其关心的是全局最优解,而对于个别任务来说这个解未必是最优的,甚至可能是所有的虚拟机分配方案中最不理想的分配结果,此时如果该任务对时间损失度较为敏感,那么由不理想的虚拟机执行当前任务必然会产生较大延迟,同时增加了系统运算成本,导致算法无法满足个别用户服务质量要求。时间损失度敏感的任务可通过Sufferage算法进行量化,该算法首先计算任务集合中的所有子任务在各虚拟机上的执行时间,然后将任务最短完成时间与次短完成时间差的绝对值定义为Sufferage值,它表明一个任务如果没有被分配到具有最短完成时间的理想虚拟机上会产生的时间损失程度,Sufferage值越高的任务对时间损失度越敏感。
为此,本发明利用Sufferage对蚁群算法进行优化,首先按照Sufferage算法执行虚拟机预分配模拟过程,以Sufferage值高低来确定任务被优先处理的先后顺序,优先将理想虚拟机预分配给时间损失度敏感的任务,然后统计虚拟机在每次预分配操作后的剩余资源,接着逐层构造各任务在不同剩余资源状态下的状态转移概率,某一虚拟机上剩余资源越少,计算得到的概率值越低,使得当前任务被分配到该虚拟机上的可能性越低,在非敏感任务与敏感任务指向同一理想虚拟机的情况下,由于非敏感任务比敏感任务的概率值低,从而降低了非敏感任务对该理想虚拟机的竞争能力,在前处理的任务始终比在后处理的任务具有更优的虚拟机选择条件,更容易获得理想的虚拟机分配结果,提高了蚁群算法对时间紧迫性任务挣取最优运算资源的能力,减少个别任务的时间调度跨度。同时,由于任意两个任务之间都拥有不同的概率分布结果,一方面能够为各任务提供个性化引导能力,增强不同任务的正反馈能力,从而加快搜索进度,使得优化后的蚁群算法在初期不需要花费大量时间积累信息素,提高了初期求解速度;另一方面,能够将非敏感任务分散到自身可接受的非理想虚拟机上,避免在非全局最优的部分区域聚集较强的信息素浓度,使运算结果更趋近于全局理想最优解。
如图1所示,本发明提供的基于蚁群算法优化的云计算任务调度方法,该方法具体包括以下步骤:
步骤1)将所有虚拟机置为空闲状态,计算任务集中各任务在不同虚拟机上的执行时间并按升序排列,将次短完成时间与最短完成时间之间的差值记为sufferage值,对所有任务的sufferage值按降序排列获得sufferage序列;
步骤2)将所有任务分配到蚁群中待执行调度作业的蚂蚁节点上,每个蚂蚁节点按sufferage序列中sufferage值顺序依次提取对应的任务,对于任意相邻的两个任务,根据执行时间择优原则先为前一任务分配虚拟机,然后从已分配虚拟机总资源内减去前一任务对资源的消耗量,获得已分配虚拟机的资源剩余量,利用各虚拟机资源剩余量计算其与后一任务之间的初始状态转移概率;
步骤3)每个蚂蚁节点利用初始状态转移概率对所有任务分别执行轮盘赌策略,从任务-虚拟机分配矩阵中选择出对应的任务-虚拟机分配方案,当所有蚂蚁节点对每个任务均完成虚拟机分配后,利用任务-虚拟机分配方案对任务-虚拟机分配矩阵进行全局信息素更新,生成全局信息素更新矩阵;
步骤4)每个蚂蚁利用全局信息素更新矩阵重新计算状态转移概率和执行轮盘赌策略,利用重新选择出的任务-虚拟机分配方案生成新的全局信息素更新矩阵;
步骤5)迭代执行步骤4),直至获得最优解的任务-虚拟机分配方案,利用该最优解对各任务执行调度作业。
下面以本发明提供的其中一个实施例详细阐述上述方案的具体实施过程。
首先,任务调度过程都是面向用户服务而言的,用户会向云计算系统提供如IaaS、PaaS和SaaS等服务层级上的各种服务请求,在层次规范的分解法基础上对这些服务请求逐一分解成多个任务单元,针对每个服务请求可以设置唯一的任务集Ui,包含服务请求的所有任务单元。然后,由云计算平台统计所有任务单元能够连接到的虚拟机资源,组成虚拟机集Uj
初步计算任务集Ui中各任务在不同虚拟机上的执行时间,构成执行时间矩阵:
Figure BDA0003846337240000091
上述矩阵中的元素tij表示第i个任务在第j个虚拟机上的执行时间,该执行时间是令虚拟机处于空间状态,利用总资源估算获得的,是完成任务的理论时间,I和J分别表示任务和虚拟机在各自集合中的总数。对每一行向量中的元素按升序排列,将次短完成时间与最短完成时间之间的差值记为sufferage值,然后对所有任务的sufferage值按降序排列获得sufferage序列{su1,su2,…,suI},序列中su1值最大,suI值最小。
对蚁群中的所有蚂蚁节点初始化,使蚂蚁节点处于待执行调度状态,每个蚂蚁节点均表示一个独立运行的任务调度控制单元,由云计算系统根据需要在不同的网络节点上设置有限数量的任务调度控制单元。然后将任务集Ui发送到所有蚂蚁节点上,每个蚂蚁节点根据云计算环境独立完成各自调度操作。具体地,对于每个蚂蚁节点按sufferage序列中sufferage值顺序依次提取对应的任务,假设某个蚂蚁节点提取到第i-1个任务时(i≥2),按照以下步骤为该任务预分配虚拟机:
步骤211)提取第i-1个任务最短完成时间所对应的虚拟机记为最优虚拟机,即与自身相适应的理想虚拟机,判断该最优虚拟机上是否存在已分配的任务,如果不存在,则直接将该最优虚拟机分配给第i-1个任务并执行步骤213),否则将最优虚拟机上所有已分配的任务执行时间与第i-1个任务最短完成时间求和,得到最优虚拟机的总执行时间;
步骤212)将总执行时间与第i-1个任务次短完成时间进行比较,如果总执行时间不大于第i-1个任务次短完成时间,则将最优虚拟机分配给第i-1个任务并执行步骤213),此时,虽然最优虚拟机需要完成已分配的任务才能执行第i-1个任务,但由于第i-1个任务在最优虚拟机上耗费的总时长(包括执行其他任务的等待时长和完成自身需要的执行时间)仍早于次优虚拟机的执行时长,因此将任务分配给最优虚拟机仍是最优结果;相反,如果总执行时间大于第i-1个任务次短完成时间,表明最优虚拟机已不适合执行第i-1个任务,则提取第i-1个任务次短完成时间所对应的虚拟机记为次优虚拟机,进一步判断次优虚拟机上是否存在已分配的任务,如果不存在,则直接将该次优虚拟机分配给第i-1个任务并执行步骤213),否则将次优虚拟机上所有已分配的任务执行时间与第i-1个任务次短完成时间求和,得到次优虚拟机的总执行时间,继续与第三短完成时间比较,并根据比较结果重复执行上述策略,重复执行上述过程直至选择出符合条件的虚拟机;
步骤213)根据sufferage序列中sufferage值顺序选择第i个任务并重新执行步骤211),直至所有任务均完成虚拟机分配。
在对第i个任务执行上述预分配虚拟机之前,还包括计算第i个任务的初始状态转移概率向量
Figure BDA0003846337240000101
其中
Figure BDA0003846337240000102
表示在初始状态下,第k个蚂蚁节点将任务Ti分配给虚拟机VMj的概率。假设第i-1个任务已被预分配到第j个虚拟机上,则需要先从第j个虚拟机总资源内减去第i-1个任务对资源的消耗量,同理,如果在第i-1个任务被分配之前,在第j个虚拟机上就已经分配有其他任务,则需要在其他任务执行预分配操作后,将相应任务的资源消耗量也从第j个虚拟机总资源内减去,通过逐层削减获得在执行第i个任务分配之前第j个虚拟机上的资源剩余量,然后利用各虚拟机资源剩余量计算其与第i个任务之间的初始状态转移概率,具体过程包括以下步骤:
步骤221)计算第j个虚拟机VMj在执行第i个任务Ti调度前的资源剩余量:
Figure BDA0003846337240000103
Figure BDA0003846337240000104
其中,cpj和bwj分别表示虚拟机VMj的总计算能力和总通信带宽,Lengthm和InputSizem分别表示执行第m个任务Tm需要消耗的计算量和传输的数据量,Taskij表示在执行第i个任务Ti调度前已分配到虚拟机VMj上的所有任务集合,cp'ij和bw'ij分别表示虚拟机VMj在执行第i个任务Ti调度前的剩余计算能力和剩余通信带宽;
虚拟机的总计算能力可以表示为:
cpj=numPEj×mipsPEj
numPEj表示虚拟机VMj包含的处理器数量,mipsPEj表示虚拟机VMj中单一处理器的计算能力;
步骤222)利用资源剩余量计算任务Ti分配给虚拟机VMj方案上的启发信息:
Figure BDA0003846337240000105
其中,ETCij表示任务Ti在虚拟机VMj资源剩余量上的执行时间,表示为:
Figure BDA0003846337240000111
其中,Lengthi和InputSizei分别表示执行任务Ti需要消耗的计算量和传输的数据量;
步骤223)利用虚拟机VMj的总资源计算初始信息素:
Figure BDA0003846337240000112
其中,τij(0)表示在初始状态下任务Ti分配给虚拟机VMj方案上的信息素,a和b表示设定的常数;
步骤224)利用启发信息ηij和初始信息素τij(0)生成初始状态转移概率:
Figure BDA0003846337240000113
其中,
Figure BDA0003846337240000114
表示在初始状态下,第k个蚂蚁节点将任务Ti分配给虚拟机VMj的概率,K表示蚁群中蚂蚁节点总数,J表示虚拟机总数,α和β分别表示信息素权重因子和启发信息权重因子。
通过计算每个任务在不同虚拟机上的初始状态转移概率,最终可以得到所有任务构成的初始状态转移概率矩阵:
Figure BDA0003846337240000115
由于初始信息素τij(0)是虚拟机固有属性,而任务Ti在各蚂蚁节点上的预分配方案也保持一致,因此在不同蚂蚁节点上计算的启发信息ηij也必然相同,使得上述概率矩阵中的元素必然有
Figure BDA0003846337240000116
即在概率矩阵同一位置上,不同蚂蚁节点产生的初始状态转移概率值相同,使得所有蚂蚁节点在概率分布上保持同步,为此,只需要系统执行一次概率矩阵运算过程,并将运算结果分发到各蚂蚁节点上,即可同步执行后续的轮盘赌策略,降低了运算复杂度。
上述初始状态转移概率矩阵中的I×J个概率值对应了任务-虚拟机分配矩阵中的I×J个方案xij,即对任务集中的I个任务来说,其中每一个任务都有J个虚拟机可选方案,因此可用状态转移概率矩阵表示任务-虚拟机分配矩阵,或者也可以直观地表示为以下形式:
Figure BDA0003846337240000121
在每个蚂蚁节点上,利用上述初始状态转移概率矩阵对所有任务执行轮盘赌策略,每一行向量都表示其中一个任务在轮盘上的概率分布。轮盘赌策略是一种经典的随机化选择算法,对其形象化解释为将一个圆盘划分为面积不同的多个扇形区域,指针最终将落在某一区域内,区域面积越大,指针停留的可能性也就越高。同样地,将第i个任务在J个虚拟机上的概率值
Figure BDA0003846337240000122
按比例映射到圆盘上的扇形区域,概率值越大的虚拟机对应的扇形区域面积也越大,在随机轮转中被选中的可能性也就越大,以此确定第i个任务在每次轮盘赌策略上的实际分配结果。
当蚂蚁节点完成一次任务分配过程后,即所有蚂蚁节点将所有任务都分配到指定的虚拟机上后,信息素需要执行一次全局更新,可以采用以下公式执行全局信息素更新:
τij(t+1)=(1-ρ)τij(t)+Δτij,0≤t≤N
其中,t表示轮盘赌策略迭代次数,N表示系统设定的最大迭代次数,τij(t)表示在执行第t次轮盘赌策略前任务Ti分配给虚拟机VMj方案上的信息素,τij(t+1)表示在执行第t+1次轮盘赌策略前任务Ti分配给虚拟机VMj方案上的信息素,ρ表示信息素挥发因子,ρ∈(0,1),Δτij表示所有蚂蚁在任务Ti分配给虚拟机VMj方案上留下的信息素增量之和,表示为:
Figure BDA0003846337240000123
其中,
Figure BDA0003846337240000124
表示第k个蚂蚁节点在任务Ti分配给虚拟机VMj方案上留下的信息素增量,表示为:
Figure BDA0003846337240000125
其中,Q表示常量,Lk(t)表示第k个蚂蚁节点在执行第t次任务-虚拟机分配方案时的执行时间,xij表示任务Ti分配给虚拟机VMj的方案,Ck(t)表示第k个蚂蚁节点的第t次任务-虚拟机分配方案集合。
通过上述运算得到的全局信息素更新矩阵表示为:
Figure BDA0003846337240000131
该矩阵中的每个元素对应任务-虚拟机分配矩阵中唯一的子方案。由上述运算过程可知,虽然初始状态转移概率在各蚂蚁节点上保持同步,但由于轮盘赌策略本身具有一定随机性,使得不同蚂蚁节点在执行轮盘赌策略后产生的分配方案也不会相同,正是这种差异保持了蚂蚁拥有自由选择路径的特性,才使得在各方案上的全局性信息素更新结果具有客观性,计算得到的最优解符合客观变化规律。
当所有蚂蚁节点执行完成一轮蚁群算法后,从所有蚂蚁节点的任务-虚拟机分配方案执行时间中选择出最短执行时间对应的方案,如果选出的方案满足最优解条件,则终止关于当前用户服务的任务分配过程,否则继续执行下一轮蚁群算法,每个蚂蚁利用全局信息素更新矩阵重新计算状态转移概率,然后利用更新的状态转移概率重新执行下一次轮盘赌策略。在本实施例中,本发明采用启发信息ηij和更新后的全局信息素τij(t+1)重新计算状态转移概率:
Figure BDA0003846337240000132
其中,
Figure BDA0003846337240000133
表示在执行第t+1次轮盘赌策略时,第k个蚂蚁节点将任务Ti分配给虚拟机VMj的概率,通过上述运算得到的状态转移概率矩阵表示为:
Figure BDA0003846337240000134
同样地,由于信息素τij(t+1)是由所有蚂蚁节点提供的信息增量进行全局更新的结果,上述概率矩阵中的元素必然有
Figure BDA0003846337240000135
因此在所有蚂蚁节点上,都可以用同一状态转移概率向量
Figure BDA0003846337240000136
Figure BDA0003846337240000141
来表示任务Ti在虚拟机上的概率分布。
在本实施例中还提供了一种最优解的选择方法,具体包括以下步骤:
步骤511)当每次轮盘赌策略执行完成后,从所有蚂蚁节点的任务-虚拟机分配方案执行时间中选择出最短执行时间对应的方案,记为候选方案;
每个蚂蚁节点的任务-虚拟机分配方案包含了所有任务的分配子方案,关于任务Ti的分配子方案就是从任务-虚拟机分配矩阵第i行向量(xi1,xi2,…xij…,xiJ)中选择一个虚拟机作为分配结果,由于各虚拟机之间采用并行运算模式,而在虚拟机内部则是按任务队列串行计算,只有当前一任务执行结束后,下一个任务才开始执行,所以任务-虚拟机分配方案的执行时间是指所有虚拟机中完成任务执行时间最长的虚拟机所对应的完工时间,可表示为:
Figure BDA0003846337240000142
Figure BDA0003846337240000143
表示第k个蚂蚁节点的任务-虚拟机分配方案执行时间,Cj表示第j个虚拟机上分配的所有任务执行时间之和,
Figure BDA0003846337240000144
M表示分配给第j个虚拟机的任务总数,cmj表示第j个虚拟机上被分配的第m个任务的执行时间,进一步地,所述最短执行时间为
Figure BDA0003846337240000145
步骤512)将最短执行时间与预设时长进行比较,如果最短执行时间不大于预设时长,则将候选方案作为最优解,否则继续执行下一次轮盘赌策略,并重复执行步骤511),直至选择出满足最优解条件的任务-虚拟机分配方案。
一个良好的云资源任务调度算法不仅要考虑到任务执行效率的高低,还需要照顾到虚拟机的负载均衡。虽然本发明能够通过资源的剩余量来引导任务指向资源充裕的虚拟机,在一定程度上避免部分虚拟机出现负载过重,另一部分虚拟机处于空闲状态的情况;但是因轮盘赌策略的执行结果仍具有随机性,使得任务最终分配结果不一定指向概率最大的虚拟机上,而且在迭代过程中信息素浓度会在分配方案上不断递增,故仍会导致部分分配方案与理想结果存在一定偏差,导致部分虚拟机产生负载失衡。为此,在本发明提供的以下实施例中,分别采用多种负载均衡方法来实现虚拟机的负载均衡。
其中一种方式是采用动态均衡方法实现虚拟机负载均衡,本发明提供了关于启发信息ηij的动态修正方法,在蚁群算法的每轮运算完成后,根据实际分配结果对每个方案对应的启发信息ηij实施更新,并利用更新后的启发信息ηij参与计算下一轮蚁群算法使用的状态转移概率。该方法的具体过程为:
步骤a)在一次轮盘赌策略执行完成后,统计同一虚拟机在不同蚂蚁节点上被分配到的所有任务累计执行的总时间:
Figure BDA0003846337240000151
其中,
Figure BDA0003846337240000152
表示第j个虚拟机在第k个蚂蚁节点执行第t次轮盘赌策略后,被分配到的所有任务累计执行总时间,
Figure BDA0003846337240000153
表示第j个虚拟机在第k个蚂蚁节点执行第t次轮盘赌策略后,被分配到的第i个任务Ti执行时间,
Figure BDA0003846337240000154
表示第j个虚拟机在第k个蚂蚁节点执行第t次轮盘赌策略后,被分配到的所有任务集合;
步骤b)利用总时间计算同一虚拟机在不同蚂蚁节点上的稳态系数:
Figure BDA0003846337240000155
其中,
Figure BDA0003846337240000156
表示第j个虚拟机在第k个蚂蚁节点执行第t次轮盘赌策略后的稳态系数,r表示集合
Figure BDA0003846337240000157
中任务总数;
步骤c)将同一虚拟机在所有蚂蚁节点上产生的稳态系数求均值,生成虚拟机的均值系数:
Figure BDA0003846337240000158
其中,
Figure BDA0003846337240000159
表示第j个虚拟机在所有蚂蚁节点执行第t次轮盘赌策略后的均值系数,K表示蚁群中蚂蚁节点总数;
步骤d)利用均值系数对启发信息进行修正,获得修正后的启发信息:
Figure BDA00038463372400001510
其中,ηt_ij表示第j个虚拟机在所有蚂蚁节点执行第t次轮盘赌策略后,任务Ti分配给虚拟机VMj方案上的启发信息;
步骤e)利用修正后的启发信息ηt_ij计算下一次轮盘赌策略使用的状态转移概率:
Figure BDA00038463372400001511
其中,
Figure BDA0003846337240000161
表示在执行第t+1次轮盘赌策略时,第k个蚂蚁节点将任务Ti分配给虚拟机VMj的概率。
本发明的上述动态负载均衡方法以每一次轮盘赌策略分配结果来确定虚拟机真实的负载情况,利用均化的稳态系数来反映虚拟机的负载稳定程度,均值系数越低表明虚拟机的整体性能越稳定,负载程度也就越低,反之则稳定性差,负载程度高;利用该系数进一步修正每个分配子方案对应的启发信息,由上述公式可知启发信息与均值系数成反比,即均值系数越低的虚拟机VMj给任务Ti带来的启发信息越高;最后计算得到各分配子方案在下一次轮盘赌策略中的状态转移概率;同样地,对于均值系数越低的虚拟机VMj,对任务Ti产生的概率值越高,因此该虚拟机在任务Ti的概率分布中所占有的比例也就越大,在执行下一次轮盘赌策略中任务Ti也就越容易指向该虚拟机VMj,进而实现全局资源优化,进一步提高资源利用率。
在本发明提供的另一个实施例中,采用启发信息权重因子修正方法实现虚拟机负载均衡。在迭代运算的初始阶段,概率值的变化主要受启发信息引导,而信息素对概率值的计算影响不大,随着迭代次数逐渐增加,信息素通过不断地更新,对获得最优解的影响程度也在不断增大,而启发信息对结果的影响逐渐减小。在传统的转移概率函数中,启发信息权重因子β是一个常数,使得启发信息对结果的影响程度始终保持一致性,不受迭代次数的约束,但是蚁群算法本质上是以蚂蚁节点在方案上留下的信息素为依据来引导次轮方案的选择,因此在迭代运算中后期,更多的是希望凸显信息素浓度变化所带来的影响,并尽量削弱启发信息给计算结果带来的干扰。为此,本发明通过设计启发信息权重因子β递减函数,在迭代运算中逐次降低启发信息值,所述的启发信息权重因子修正方法具体包括以下步骤;
步骤a)设定启发信息权重因子的初始常数值,并以初始常数值构建启发信息权重因子递减函数:
Figure BDA0003846337240000162
其中,β0表示设定的初始常数值,β0>1,t表示轮盘赌策略迭代次数,tmax表示系统设定的最大迭代次数,当t=0时有β(0)=β0,即初始状态下的启发信息权重因子就是初始常数值,随着迭代次数增加,启发信息权重因子β(t)趋近于零;
步骤b)利用修正后的启发信息权重因子计算下一次轮盘赌策略使用的状态转移概率:
Figure BDA0003846337240000171
其中,
Figure BDA0003846337240000172
表示在执行第t+1次轮盘赌策略时,第k个蚂蚁节点将任务Ti分配给虚拟机VMj的概率。由上述公式可知,随着迭代次数增加,当β(t+1)→0时,由启发信息参与的部分函数值[ηij]β(t+1)→1,此时计算的概率值近乎完全由信息素表征,有效地降低了启发信息给运算结果带来的干扰,使信息素拥有绝对主导作用,更有利于找到最优解。
在本发明提供的另一个实施例中,还可采用改进的信息素更新函数实现虚拟机负载均衡。在全局信息素更新函数中增加一个调整系数对信息素增量进行调整,在蚁群算法的每轮运算完成后,通过调整系数反馈各虚拟机的负载情况,对负载重的虚拟机适当降低信息素增量的浓度,对空闲的虚拟机适当增高信息素增量的浓度,使得在下一次轮盘赌策略执行过程中,增强空闲虚拟机对蚂蚁节点的吸引度,更容易被分配到任务,降低负载过重的虚拟机对蚂蚁节点的吸引度,本发明提供的基于改进的信息素更新函数的负载均衡方法具体包括以下步骤:
步骤a)在一次轮盘赌策略执行完成后,统计同一虚拟机在不同蚂蚁节点上被分配到的所有任务累计执行的总时间:
Figure BDA0003846337240000173
其中,
Figure BDA0003846337240000174
表示第j个虚拟机在第k个蚂蚁节点执行第t次轮盘赌策略后,被分配到的所有任务累计执行总时间,
Figure BDA0003846337240000175
表示第j个虚拟机在第k个蚂蚁节点执行第t次轮盘赌策略后,被分配到的第i个任务Ti执行时间,
Figure BDA0003846337240000176
表示第j个虚拟机在第k个蚂蚁节点执行第t次轮盘赌策略后,被分配到的所有任务集合;
步骤b)计算同一虚拟机在所有蚂蚁节点上获得的总时间的均值:
Figure BDA0003846337240000177
其中,
Figure BDA0003846337240000178
表示在所有蚂蚁节点执行第t次轮盘赌策略后,第j个虚拟机在所有蚂蚁节点上累计执行总时间的均值;
步骤c)利用均值计算同一虚拟机中信息素增量的调整系数:
Figure BDA0003846337240000181
其中,Et_avg表示在所有蚂蚁节点执行第t次轮盘赌策略后,所有虚拟机的均值
Figure BDA0003846337240000182
的平均值,表示为:
Figure BDA0003846337240000183
步骤d)利用调整系数生成改进的信息素更新函数:
τij(t+1)′=(1-ρ)τij(t)+Δτijσt_j,0≤t≤tmax
其中,τij(t+1)'表示由改进的信息素更新函数修正的信息素,t表示轮盘赌策略迭代次数,tmax表示系统设定的最大迭代次数,τij(t)表示在执行第t次轮盘赌策略后任务Ti分配给虚拟机VMj方案上的信息素,ρ表示信息素挥发因子,ρ∈(0,1,Δτij表示所有蚂蚁在任务Ti分配给虚拟机VMj方案上留下的信息素增量之和,可进一步表示为:
Figure BDA0003846337240000184
其中,
Figure BDA0003846337240000185
表示第k个蚂蚁节点在任务Ti分配给虚拟机VMj方案上留下的信息素增量;
步骤e)利用修正后的信息素τij(t+1)'计算下一次轮盘赌策略使用的状态转移概率:
Figure BDA0003846337240000186
其中,
Figure BDA0003846337240000187
表示在执行第t+1次轮盘赌策略时,第k个蚂蚁节点将任务Ti分配给虚拟机VMj的概率。
在上述改进的信息素更新函数中加入了虚拟机负载状况的影响因素,当虚拟机的负载程度过大时,调整系数σt_j的值减小,信息素更新函数反馈到对应方案上的概率值也就会减小,即当进行下一次迭代运算时,负载过重的虚拟机被分配任务的概率也随之减小,从而实现负载均衡。
以上各种负载均衡方法可以同步实施到同一个实施例中,也可单独或以组合形式实施到不同的实施例中。如图2所示,结合本发明提供的云计算任务调度方法,形成具有负载均衡控制功能的任务调度方法具体包括以下步骤:
步骤1)将所有虚拟机置为空闲状态,计算任务集中各任务在不同虚拟机上的执行时间并按升序排列,将次短完成时间与最短完成时间之间的差值记为sufferage值,对所有任务的sufferage值按降序排列获得sufferage序列;
步骤2)将所有任务分配到蚁群中待执行调度作业的蚂蚁节点上,每个蚂蚁节点按sufferage序列中sufferage值顺序依次提取对应的任务,对于任意相邻的两个任务,根据执行时间择优原则先为前一任务分配虚拟机,然后从已分配虚拟机总资源内减去前一任务对资源的消耗量,获得已分配虚拟机的资源剩余量,利用各虚拟机资源剩余量计算其与后一任务之间的初始状态转移概率;
步骤3)每个蚂蚁节点利用初始状态转移概率对所有任务分别执行轮盘赌策略,从任务-虚拟机分配矩阵中选择出对应的任务-虚拟机分配方案,当所有蚂蚁节点对每个任务均完成虚拟机分配后,利用任务-虚拟机分配方案对任务-虚拟机分配矩阵进行全局信息素更新,生成全局信息素更新矩阵;
步骤4)每个蚂蚁节点利用全局信息素更新矩阵重新计算状态转移概率,同时利用负载均衡方法对状态转移概率进行修正;
步骤5)利用修正后的状态转移概率执行轮盘赌策略,由重新选择出的任务-虚拟机分配方案生成新的全局信息素更新矩阵;
步骤6)迭代执行步骤4)和步骤5),直至获得最优解的任务-虚拟机分配方案,利用该最优解对各任务执行调度作业。
在本发明的另一个实施例中,采用信息熵对最优解进行分析评估。由于理想最优解只是一个假想的结果,通过迭代执行前述任务调度算法,使计算得到的解能够更趋近于这种预期的理想状况,但如何判断当前轮次运算结果的收敛状态是模糊的,考虑到任务所消耗的计算资源和时间成本,也只能通过有限次迭代运算来确定一个相对合理的结果,但很难判断这个结果与理想状态之间的差距;为此,本发明考虑运用熵理论在设定的最大运算次数范围内寻找趋于稳定状态下的最优解。
信息熵表示一个系统的混乱程度,其中系统越混乱,其熵值也就越高,通过采用数值形式表达随机变量取值的不确定性程度,目的是刻画信息含量的多少。本发明利用各任务在不同虚拟机上产生的状态转移概率来计算对应任务的熵值,然后将前后两轮蚁群算法的熵值比较确定偏离程度,如果偏离程度满足设定的参数要求,则将后一轮蚁群算法的最优解确定为最终解,否则继续执行下一轮蚁群算法,在最大运算次数范围内找到符合条件的最终解,或以最大次数的运算结果作为最终解,本实施例提供的任务-虚拟机分配方案的最优解分析方法具体包括以下步骤:
步骤521)从前后两次轮盘赌策略分别产生的状态转移概率矩阵中提取每个任务对应的行向量,行向量中的标量表示任务在各虚拟机上产生的状态转移概率,所有标量形成一个任务在轮盘上的概率分布;
步骤522)利用状态转移概率计算前后两次轮盘赌策略中各任务的信息熵:
Figure BDA0003846337240000201
Figure BDA0003846337240000202
其中,
Figure BDA0003846337240000203
Figure BDA0003846337240000204
分别表示第k个蚂蚁节点在执行第t次和第t+1次轮盘赌策略中第i个任务的信息熵,
Figure BDA0003846337240000205
Figure BDA0003846337240000206
分别表示在执行第t次和第t+1次轮盘赌策略时,第k个蚂蚁节点将任务Ti分配给第j个虚拟机的概率;
步骤523)将前后两次轮盘赌策略中所有任务产生的信息熵分别组成一个信息熵集,计算两个信息熵集在I维空间中的距离:
Figure BDA0003846337240000207
其中,两个信息熵集可表示为
Figure BDA0003846337240000208
Figure BDA0003846337240000209
I表示任务集中任务总数;
步骤524)将距离dt+1与预设的距离参数dbest比较,如果dt+1≤dbest,则终止执行t+2次轮盘赌策略,将执行第t+1次轮盘赌策略后产生的最优解作为最终解,如果dt+1>dbest,进一步判断t+1是否达到最大轮盘赌次数,如果是则终止执行t+2次轮盘赌策略,将执行第t+1次轮盘赌策略后产生的最优解作为最终解,否则,继续执行第t+2次轮盘赌策略,并重新执行步骤521)。
对于同一任务来说,如果前后两轮次产生的熵值差越大,表明其在轮盘上显示的概率分布结果差异越大,任务的解与理想最优解偏离程度也就越高。但是,由于蚁群算法本质上仍是为计算全局性最优解的过程,对于单一任务来说只要其最终分配方案与理想方案偏差不是很大是可以接受的,而对全局性最优解的分析同样需要考虑将各任务在每轮次运算后产生的解作整体评价,为此,上述最优解分析方法考虑以任务集的任务总数构造I维空间,然后将每一个任务的熵值都标注在空间中对应唯一的一个维度截面上,利用所有任务的熵值
Figure BDA0003846337240000211
能够在空间中标注出一个具体位置xt,通过在多维空间中计算前后两轮次产生的位置xt和xt+1的间距,能够从整体上直观地分析出前后两个分配方案集之间的偏离度,间距越小整体的分配方案越趋于稳定状态。上述分析方法能够清晰感知蚁群算法运算结果是否符合最优条件,可以在达到最大运算次数之前就获取到趋于收敛状态的最优解,从而极大地降低了运算迭代次数和时间成本。
为了实现上述任务调度算法,本发明还提供了一种基于蚁群算法优化的云计算任务调度系统,如图3所示,该任务调度系统具体包括:执行时间预测模块、sufferage序列生成模块、状态转移概率运算模块、轮盘赌策略执行模块、信息素更新模块和任务调度模块;
执行时间预测模块:将所有虚拟机置为空闲状态,计算任务集中各任务在不同虚拟机上的执行时间;
sufferage序列生成模块:对执行时间按升序排列,将次短完成时间与最短完成时间之间的差值记为sufferage值,对所有任务的sufferage值按降序排列获得sufferage序列;
状态转移概率运算模块:将所有任务分配到蚁群中待执行调度作业的蚂蚁节点上,每个蚂蚁节点按sufferage序列中sufferage值顺序依次提取对应的任务,对于任意相邻的两个任务,根据执行时间择优原则先为前一任务分配虚拟机,然后从已分配虚拟机总资源内减去前一任务对资源的消耗量,获得已分配虚拟机的资源剩余量,利用各虚拟机资源剩余量计算其与后一任务之间的初始状态转移概率,同时利用全局信息素更新矩阵重新计算状态转移概率;
轮盘赌策略执行模块:利用状态转移概率对所有任务分别执行轮盘赌策略,从任务-虚拟机分配矩阵中选择出对应的任务-虚拟机分配方案;
信息素更新模块:在所有蚂蚁节点对每个任务均完成虚拟机分配后,利用任务-虚拟机分配方案对任务-虚拟机分配矩阵进行全局信息素更新,生成全局信息素更新矩阵;
任务调度模块:在轮盘赌策略迭代执行过程中获得最优解的任务-虚拟机分配方案,利用该最优解对各任务执行调度作业。
如图3所示,在本发明提供的另一个实施例中,所述的云计算任务调度系统还包括状态转移概率修正模块,所述的状态转移概率修正模块利用负载均衡修正方法对状态转移概率进行修正,用于控制虚拟机保持负载均衡。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

Claims (7)

1.基于蚁群算法优化的云计算任务调度方法,其特征在于,该方法包括:
步骤1)将所有虚拟机置为空闲状态,计算任务集中各任务在不同虚拟机上的执行时间并按升序排列,将次短完成时间与最短完成时间之间的差值记为sufferage值,对所有任务的sufferage值按降序排列获得sufferage序列;
步骤2)将所有任务分配到蚁群中待执行调度作业的蚂蚁节点上,每个蚂蚁节点按sufferage序列中sufferage值顺序依次提取对应的任务,对于任意相邻的两个任务,根据执行时间择优原则先为前一任务分配虚拟机,然后从已分配虚拟机总资源内减去前一任务对资源的消耗量,获得已分配虚拟机的资源剩余量,利用各虚拟机资源剩余量计算其与后一任务之间的初始状态转移概率;
步骤3)每个蚂蚁节点利用初始状态转移概率对所有任务分别执行轮盘赌策略,从任务-虚拟机分配矩阵中选择出对应的任务-虚拟机分配方案,当所有蚂蚁节点对每个任务均完成虚拟机分配后,利用任务-虚拟机分配方案对任务-虚拟机分配矩阵进行全局信息素更新,生成全局信息素更新矩阵;
步骤4)每个蚂蚁利用全局信息素更新矩阵重新计算状态转移概率和执行轮盘赌策略,利用重新选择出的任务-虚拟机分配方案生成新的全局信息素更新矩阵;
步骤5)迭代执行步骤4),直至获得最优解的任务-虚拟机分配方案,利用该最优解对各任务执行调度作业。
2.根据权利要求1所述的基于蚁群算法优化的云计算任务方法,其特征在于,根据执行时间择优原则为任务分配虚拟机的过程为:
步骤211)提取当前任务最短完成时间所对应的虚拟机记为最优虚拟机,判断最优虚拟机上是否存在已分配的任务,如果不存在,则直接将该最优虚拟机分配给当前任务并执行步骤213),否则将最优虚拟机上所有已分配的任务执行时间与当前任务最短完成时间求和,得到最优虚拟机的总执行时间;
步骤212)将总执行时间与当前任务次短完成时间进行比较,如果总执行时间不大于当前任务次短完成时间,则将最优虚拟机分配给当前任务并执行步骤213),否则提取当前任务次短完成时间所对应的虚拟机记为次优虚拟机,判断次优虚拟机上是否存在已分配的任务,如果不存在,则直接将该次优虚拟机分配给当前任务并执行步骤213),否则将次优虚拟机上所有已分配的任务执行时间与当前任务次短完成时间求和,得到次优虚拟机的总执行时间并重复执行当前步骤;
步骤213)根据sufferage序列中sufferage值顺序选择下一个任务并重新执行步骤211),直至所有任务均完成虚拟机分配。
3.根据权利要求1所述的基于蚁群算法优化的云计算任务方法,其特征在于,所述初始状态转移概率的生成过程包括:
步骤221)计算第j个虚拟机VMj在执行第i个任务Ti调度前的资源剩余量:
Figure FDA0003846337230000021
Figure FDA0003846337230000022
其中,cpj和bwj分别表示虚拟机VMj的总计算能力和总通信带宽,Lengthm和InputSizem分别表示执行第m个任务Tm需要消耗的计算量和传输的数据量,Taskij表示在执行第i个任务Ti调度前已分配到虚拟机VMj上的所有任务集合,cp'ij和bw'ij分别表示虚拟机VMj在执行第i个任务Ti调度前的剩余计算能力和剩余通信带宽;
步骤222)利用资源剩余量计算任务Ti分配给虚拟机VMj方案上的启发信息:
Figure FDA0003846337230000023
其中,ETCij表示任务Ti在虚拟机VMj资源剩余量上的执行时间,表示为:
Figure FDA0003846337230000024
其中,Lengthi和InputSizei分别表示执行任务Ti需要消耗的计算量和传输的数据量;
步骤223)利用虚拟机VMj的总资源计算初始信息素:
Figure FDA0003846337230000025
其中,τij(0)表示在初始状态下任务Ti分配给虚拟机VMj方案上的信息素,a和b表示设定的常数;
步骤224)利用启发信息ηij和初始信息素τij(0)生成初始状态转移概率:
Figure FDA0003846337230000026
其中,
Figure FDA0003846337230000027
表示在初始状态下,第k个蚂蚁节点将任务Ti分配给虚拟机VMj的概率,K表示蚁群中蚂蚁节点总数,J表示虚拟机总数,α和β分别表示信息素权重因子和启发信息权重因子。
4.根据权利要求1所述的基于蚁群算法优化的云计算任务方法,其特征在于,所述步骤4)还包括采用以下公式执行全局信息素更新:
τij(t+1)=(1-ρ)τij(t)+Δτij,0≤t≤N
其中,τij(t)表示在执行第t次轮盘赌策略前任务Ti分配给虚拟机VMj方案上的信息素,ρ表示信息素挥发因子,ρ∈(0,1),Δτij表示所有蚂蚁在任务Ti分配给虚拟机VMj方案上留下的信息素增量之和,表示为:
Figure FDA0003846337230000031
其中,
Figure FDA0003846337230000032
表示第k个蚂蚁节点在任务Ti分配给虚拟机VMj方案上留下的信息素增量,表示为:
Figure FDA0003846337230000033
其中,Q表示常量,Lk(t)表示第k个蚂蚁节点在执行第t次任务-虚拟机分配方案时的执行时间,xij表示任务Ti分配给虚拟机VMj的方案,Ck(t)表示第k个蚂蚁节点的第t次任务-虚拟机分配方案集合。
5.根据权利要求1所述的基于蚁群算法优化的云计算任务方法,其特征在于,所述步骤4)还包括利用启发信息ηij和更新后的全局信息素τij(t+1)重新计算状态转移概率:
Figure FDA0003846337230000034
其中,
Figure FDA0003846337230000035
表示在执行第t+1次轮盘赌策略时,第k个蚂蚁节点将任务Ti分配给虚拟机VMj的概率。
6.根据权利要求1所述的基于蚁群算法优化的云计算任务方法,其特征在于,所述步骤5)中最优解的任务-虚拟机分配方案选择过程包括:
步骤511)当每次轮盘赌策略执行完成后,从所有蚂蚁节点的任务-虚拟机分配方案执行时间中选择出最短执行时间对应的方案,记为候选方案;
步骤512)将最短执行时间与预设时长进行比较,如果最短执行时间不大于预设时长,则将候选方案作为最优解,否则继续执行下一次轮盘赌策略,并重复执行步骤511),直至选择出满足最优解条件的任务-虚拟机分配方案。
7.基于蚁群算法优化的云计算任务调度系统,其特征在于,该任务调度系统包括:执行时间预测模块、sufferage序列生成模块、状态转移概率运算模块、轮盘赌策略执行模块、信息素更新模块和任务调度模块;
执行时间预测模块:将所有虚拟机置为空闲状态,计算任务集中各任务在不同虚拟机上的执行时间;
sufferage序列生成模块:对执行时间按升序排列,将次短完成时间与最短完成时间之间的差值记为sufferage值,对所有任务的sufferage值按降序排列获得sufferage序列;
状态转移概率运算模块:将所有任务分配到蚁群中待执行调度作业的蚂蚁节点上,每个蚂蚁节点按sufferage序列中sufferage值顺序依次提取对应的任务,对于任意相邻的两个任务,根据执行时间择优原则先为前一任务分配虚拟机,然后从已分配虚拟机总资源内减去前一任务对资源的消耗量,获得已分配虚拟机的资源剩余量,利用各虚拟机资源剩余量计算其与后一任务之间的初始状态转移概率,同时利用全局信息素更新矩阵重新计算状态转移概率;
轮盘赌策略执行模块:利用状态转移概率对所有任务分别执行轮盘赌策略,从任务-虚拟机分配矩阵中选择出对应的任务-虚拟机分配方案;
信息素更新模块:在所有蚂蚁节点对每个任务均完成虚拟机分配后,利用任务-虚拟机分配方案对任务-虚拟机分配矩阵进行全局信息素更新,生成全局信息素更新矩阵;
任务调度模块:在轮盘赌策略迭代执行过程中获得最优解的任务-虚拟机分配方案,利用该最优解对各任务执行调度作业。
CN202211120555.0A 2022-09-15 2022-09-15 基于蚁群算法优化的云计算任务调度方法及系统 Pending CN115480876A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211120555.0A CN115480876A (zh) 2022-09-15 2022-09-15 基于蚁群算法优化的云计算任务调度方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211120555.0A CN115480876A (zh) 2022-09-15 2022-09-15 基于蚁群算法优化的云计算任务调度方法及系统

Publications (1)

Publication Number Publication Date
CN115480876A true CN115480876A (zh) 2022-12-16

Family

ID=84423840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211120555.0A Pending CN115480876A (zh) 2022-09-15 2022-09-15 基于蚁群算法优化的云计算任务调度方法及系统

Country Status (1)

Country Link
CN (1) CN115480876A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116170365A (zh) * 2023-04-24 2023-05-26 驿羚江苏大数据有限公司 基于蚁群算法的多用户SaaS服务部署系统及方法
CN116302451A (zh) * 2023-05-18 2023-06-23 广州豪特节能环保科技股份有限公司 一种云计算数据中心离线节能调度的方法及系统
CN116627663A (zh) * 2023-07-25 2023-08-22 山东万博科技股份有限公司 一种数据中心运维管理方法及系统
CN117056089A (zh) * 2023-10-11 2023-11-14 创瑞技术有限公司 一种服务动态分配系统及方法
CN117170885A (zh) * 2023-11-03 2023-12-05 国网山东综合能源服务有限公司 基于云边协同的分布式资源优化调配方法及系统
CN117319505A (zh) * 2023-11-30 2023-12-29 天勰力(山东)卫星技术有限公司 一种面向软件定义卫星共享网络的星上任务抢单系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116170365A (zh) * 2023-04-24 2023-05-26 驿羚江苏大数据有限公司 基于蚁群算法的多用户SaaS服务部署系统及方法
CN116170365B (zh) * 2023-04-24 2023-08-04 驿羚江苏大数据有限公司 基于蚁群算法的多用户SaaS服务部署系统及方法
CN116302451A (zh) * 2023-05-18 2023-06-23 广州豪特节能环保科技股份有限公司 一种云计算数据中心离线节能调度的方法及系统
CN116302451B (zh) * 2023-05-18 2023-08-08 广州豪特节能环保科技股份有限公司 一种云计算数据中心离线节能调度的方法及系统
CN116627663A (zh) * 2023-07-25 2023-08-22 山东万博科技股份有限公司 一种数据中心运维管理方法及系统
CN116627663B (zh) * 2023-07-25 2023-11-10 山东万博科技股份有限公司 一种数据中心运维管理方法及系统
CN117056089A (zh) * 2023-10-11 2023-11-14 创瑞技术有限公司 一种服务动态分配系统及方法
CN117056089B (zh) * 2023-10-11 2024-02-06 创瑞技术有限公司 一种服务动态分配系统及方法
CN117170885A (zh) * 2023-11-03 2023-12-05 国网山东综合能源服务有限公司 基于云边协同的分布式资源优化调配方法及系统
CN117170885B (zh) * 2023-11-03 2024-01-26 国网山东综合能源服务有限公司 基于云边协同的分布式资源优化调配方法及系统
CN117319505A (zh) * 2023-11-30 2023-12-29 天勰力(山东)卫星技术有限公司 一种面向软件定义卫星共享网络的星上任务抢单系统
CN117319505B (zh) * 2023-11-30 2024-02-06 天勰力(山东)卫星技术有限公司 一种面向软件定义卫星共享网络的星上任务抢单系统

Similar Documents

Publication Publication Date Title
CN115480876A (zh) 基于蚁群算法优化的云计算任务调度方法及系统
CN109561148B (zh) 边缘计算网络中基于有向无环图的分布式任务调度方法
CN112134916B (zh) 一种基于深度强化学习的云边协同计算迁移方法
CN110321222B (zh) 基于决策树预测的数据并行作业资源分配方法
CN110489229B (zh) 一种多目标任务调度方法及系统
CN112085143B (zh) 基于同化机制的混沌蚁群算法及Web服务组合优化方法
CN111325356A (zh) 一种基于演化计算的神经网络搜索分布式训练系统及训练方法
CN111222665B (zh) 基于偏好nsga-ⅲ算法的云制造服务组合优化选择方法
CN111240796B (zh) 一种基于改进mmas的负载均衡调度方法
CN112231091B (zh) 一种基于强化学习策略的并行云工作流调度方法
CN110321217A (zh) 一种多目标的云资源调度方法、装置、设备及存储介质
CN114968510A (zh) 一种基于改进蚁群算法的多目标动态任务调度方法和系统
CN112084035B (zh) 一种基于蚁群算法的任务调度方法及系统
CN113141317A (zh) 流媒体服务器负载均衡方法、系统、计算机设备、终端
CN111143036A (zh) 一种基于强化学习的虚拟机资源调度方法
CN115374853A (zh) 基于T-Step聚合算法的异步联邦学习方法及系统
CN114490057A (zh) 一种基于深度强化学习的mec已卸载任务资源分配方法
CN113485826A (zh) 一种边缘服务器负载均衡方法、系统
CN115934333A (zh) 基于历史数据感知的云计算资源调度方法及调度系统
CN113722112B (zh) 一种服务资源负载均衡处理方法及系统
CN116050540A (zh) 一种基于联合双维度用户调度的自适应联邦边缘学习方法
CN112613761A (zh) 一种基于动态博弈和自适应蚁群算法的服务调度方法
CN113139639A (zh) 一种基于mombi面向智慧城市应用多目标计算迁移方法和装置
CN116089083A (zh) 一种多目标数据中心资源调度方法
CN115617510A (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