CN114968510A - 一种基于改进蚁群算法的多目标动态任务调度方法和系统 - Google Patents
一种基于改进蚁群算法的多目标动态任务调度方法和系统 Download PDFInfo
- Publication number
- CN114968510A CN114968510A CN202111616181.7A CN202111616181A CN114968510A CN 114968510 A CN114968510 A CN 114968510A CN 202111616181 A CN202111616181 A CN 202111616181A CN 114968510 A CN114968510 A CN 114968510A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- scheduling
- scheduled
- computing node
- 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
Links
Images
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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
- G06F9/505—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 considering the load
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (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
技术领域
本发明属于云计算技术领域,尤其涉及一种基于改进蚁群算法的多目标动 态任务调度方法和系统。
背景技术
随着移动智能终端设备的普及以及网络带宽、负载性能的提升,云计算作 为一种新型的并行与分布式计算技术发展十分迅猛。云计算环境下用户提交任 务请求,调度中心根据用户请求分配资源,为用户提供快速、按需和可伸缩数 据存储和计算服务,并力求实现资源利用率的最大化。
云计算任务调度是根据任务特征和资源需求将其映射到可用计算节点完成 计算处理的过程,主要分为三个步骤:第一,将待处理任务按照一定的规则进 行调度,即按照调度算法计算处理任务所需的资源;第二,通过云计算资源管 理中心将任务分配到各个计算节点上进行处理;第三,将用户请求任务的任务- 资源分配方案返回给用户。由于任务种类多、规模大,不同任务调度策略将直 接影响用户任务的执行效率以及云环境下资源的使用效率。因此,如何将用户 提交的请求合理分配给计算节点进行处理,完成云计算任务的合理调度成为目 前云计算系统中亟待解决的问题。
云计算任务调度是一个NP-hard问题,基于启发式算法的任务调度是当前 解决该问题的主流方法。然而,该类方法主要针对缩短任务执行时间、最小化 执行成本等单目标进行优化,未考虑系统计算节点负载不均衡导致的性能问题 和不同类型任务优先级,任务调度优化时存在搜索时间长、容易陷入局部最优 等问题,无法兼顾用户任务的实时性要求和系统性能要求。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种基于改进蚁群算 法的多目标动态任务调度方法和系统,综合考虑系统计算节点负载能力、任务 执行时间和任务优先级等因素,优化基本蚁群算法中的信息素更新策略和启发 式信息避免局部最优和实现快速收敛,提高了任务分配的时效性和计算资源的 利用率,减少了云计算任务调度开销,实现了全局多目标任务优化调度。
为了解决上述技术问题,本发明公开了一种基于改进蚁群算法的多目标动 态任务调度方法,包括:
步骤101,确定用户提交的任务请求所请求的若干个任务;
步骤102,将所请求的各任务分别拆分成若干个子任务,并根据各任务的 优先级,对各任务的子任务进行升序排序,得到待调度任务序列;
步骤103,通过顺序调度的方式将待调度任务序列中的待调度任务分配至 各个计算节点,得到初始任务-计算节点分配方案,然后根据任务自身特点和计 算节点能力计算得到任务执行时间和计算集群负载因子,作为预设任务截止时 间和负载均衡阈值;
步骤104,基于改进的蚁群算法,将待调度任务序列中的待调度任务分配 到计算节点上完成处理,得到在预设任务截止时间和负载均衡阈值约束条件下 的最优分配方案,实现对多目标动态任务的调度。
在上述基于改进蚁群算法的多目标动态任务调度方法中,所述步骤102, 包括:
子步骤1021,对所请求的若干个任务进行拓扑排序,并对每个任务的子任 务按照拓扑排序进入队列的顺序递增编号,得到若干个拓扑排序序列;其中, 编号越小的子任务越先执行;
子步骤1022,对子步骤1021得到的若干个拓扑排序序列,按照编号升序 和任务的优先级进行排序,从而得到排序后的待调度任务序列;其中,相同编 号的不同任务优先级越高的子任务越靠前。
在上述基于改进蚁群算法的多目标动态任务调度方法中,所述步骤103, 包括:
子步骤1031,将待调度任务序列依次按照计算节点编号递增顺序完成任务 -计算节点映射,得到初始任务-计算节点分配方案;
子步骤1032,根据不同任务所需计算量大小、输入输出文件大小以及计算 节点CPU处理能力、内存利用率和网络带宽参数,计算在初始任务-计算节点 分配方案下各个任务的完成时间,得到完成全部任务所需的最大执行时间,将 完成全部任务所需的最大执行时间设为初始任务截止时间阈值;
子步骤1033,采集每个计算节点CPU、内存和网络带宽的占用率,计算当 前各个节点的负载均衡程度,从而得到计算节点集群的整体负载因子,将集群 负载因子设为初始负载因子阈值。
在上述基于改进蚁群算法的多目标动态任务调度方法中,所述步骤104, 包括:
子步骤1041,利用计算节点的CPU处理能力和网络带宽参数初始化每个 计算节点对任务的信息素浓度,得到信息素矩阵,并初始化蚁群;
子步骤1042,蚁群开始迭代,对于蚁群中的所有蚂蚁依次计算待调度任务 序列中每个任务分配至每个计算节点的概率,得到分配概率后,按照轮盘赌方 式将任务分配至计算节点上进行处理;其中,在第t轮迭代中,对于蚁群中的单 只蚂蚁antk依次计算待调度任务序列中每个任务ti分配至每个计算节点vj的概 率pti,vj,并随机选择下一个待调度任务tj,将tj加入该蚂蚁的禁忌表tabuk中,直 至蚂蚁antk的禁忌表包含全部待调度任务,此时,一只蚂蚁调度完成并生成调 度方案Ek(t);重复本步骤,直至所有q只蚂蚁完成任务调度;
子步骤1043,根据单只蚂蚁任务调度方案的执行时间和集群负载因子,局 部更新信息素矩阵;
子步骤1044,一次迭代所有蚂蚁计算完成其任务调度方案后,比较每种方 案的执行时间和集群负载因子选出二者均最优的方案作为本轮迭代的最优 方案,与当前最优分配方案的执行时间和集群负载因子比较,如果更优, 则更新最优调度方案和执行时间和集群负载因子参数,否则,不进行更新;本 次迭代结束后,完成信息素矩阵τ(t)全局更新;重复本步骤,直至达到最大迭代 次数;
子步骤1045,迭代结束后,判断当前最优分配方案是否为空,如果为空, 则返回不存在当前执行时间和负载因子约束下的最优任务调度方案,否则按照 最优任务调度方案进行任务分发处理。
相应的,本发明还公开了一种基于改进蚁群算法的多目标动态任务调度系 统,包括:
任务确定模块,用于确定用户提交的任务请求所请求的若干个任务;
排序模块,用于将所请求的各任务分别拆分成若干个子任务,并根据各任 务的优先级,对各任务的子任务进行升序排序,得到待调度任务序列;
阈值确定模块,用于通过顺序调度的方式将待调度任务序列中的待调度任 务分配至各个计算节点,得到初始任务-计算节点分配方案,然后根据任务自身 特点和计算节点能力计算得到任务执行时间和计算集群负载因子,作为预设任 务截止时间和负载均衡阈值;
任务调度模块,用于基于改进的蚁群算法,将待调度任务序列中的待调度 任务分配到计算节点上完成处理,得到在预设任务截止时间和负载均衡阈值约 束条件下的最优分配方案,实现对多目标动态任务的调度。
在上述基于改进蚁群算法的多目标动态任务调度系统中,排序模块,包括:
第一排序子模块,用于对所请求的若干个任务进行拓扑排序,并对每个任 务的子任务按照拓扑排序进入队列的顺序递增编号,得到若干个拓扑排序序列; 其中,编号越小的子任务越先执行;
第二排序子模块,用于对第一排序子模块得到的若干个拓扑排序序列,按 照编号升序和任务的优先级进行排序,从而得到排序后的待调度任务序列;其 中,相同编号的不同任务优先级越高的子任务越靠前。
在上述基于改进蚁群算法的多目标动态任务调度系统中,阈值确定模块, 包括:
分配方案确定子模块,用于将待调度任务序列依次按照计算节点编号递增 顺序完成任务-计算节点映射,得到初始任务-计算节点分配方案;
第一阈值确定子模块,用于根据不同任务所需计算量大小、输入输出文件 大小以及计算节点CPU处理能力、内存利用率和网络带宽参数,计算在初始任 务-计算节点分配方案下各个任务的完成时间,得到完成全部任务所需的最大执 行时间,将完成全部任务所需的最大执行时间设为初始任务截止时间阈值;
第二阈值确定子模块,用于采集每个计算节点CPU、内存和网络带宽的占 用率,计算当前各个节点的负载均衡程度,从而得到计算节点集群的整体负载 因子,将集群负载因子设为初始负载因子阈值。
在上述基于改进蚁群算法的多目标动态任务调度系统中,任务调度模块, 包括:
初始化子模块,用于利用计算节点的CPU处理能力和网络带宽参数初始化 每个计算节点对任务的信息素浓度,得到信息素矩阵,并初始化蚁群;
任务分配子模块,用于蚁群开始迭代,对于蚁群中的所有蚂蚁依次计算待 调度任务序列中每个任务分配至每个计算节点的概率,得到分配概率后,按照 轮盘赌方式将任务分配至计算节点上进行处理;其中,在第t轮迭代中,对于蚁 群中的单只蚂蚁antk依次计算待调度任务序列中每个任务ti分配至每个计算节 点vj的概率并随机选择下一个待调度任务tj,将tj加入该蚂蚁的禁忌表 tabuk中,直至蚂蚁antk的禁忌表包含全部待调度任务,此时,一只蚂蚁调度完 成并生成调度方案Ek(t);重复本模块,直至所有q只蚂蚁完成任务调度;
局部更新子模块,用于根据单只蚂蚁任务调度方案的执行时间和集群负载 因子,局部更新信息素矩阵;
比较迭代子模块,用于一次迭代所有蚂蚁计算完成其任务调度方案后,比 较每种方案的执行时间和集群负载因子选出二者均最优的方案作为本轮迭 代的最优方案,与当前最优分配方案的执行时间和集群负载因子比较,如果更优,则更新最优调度方案和执行时间和集群负载因子参数,否则,不进行更 新;本次迭代结束后,完成信息素矩阵τ(t)全局更新;重复本模块,直至达到最 大迭代次数;
任务调度模块子模块,用于迭代结束后,判断当前最优分配方案是否为空, 如果为空,则返回不存在当前执行时间和负载因子约束下的最优任务调度方案, 否则按照最优任务调度方案进行任务分发处理。
本发明具有以下优点:
本发明公开了一种基于改进蚁群算法的多目标动态任务调度方法和系统, 综合考虑计算满足任务的优先级、任务执行时间和系统负载均衡的多目标任务 调度,提高了任务分配的时效性和计算资源的利用率,减少了任务调度开销。
附图说明
图1是本发明实施例中一种基于改进蚁群算法的多目标动态任务调度方法 的步骤流程图;
图2是本发明实施例中一种待调度任务序列的执行流程图;
图3是本发明实施例中一种任务截止时间和集群负载因子的执行流程图;
图4是本发明实施例中一种任务序列调度最优方案的执行流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明 公开的实施方式作进一步详细描述。
本发明的核心思想之一在于:为解决目前云计算任务调度中系统计算节点 负载不均衡导致性能低下、未考虑任务优先级以及启发式算法求解时存在的搜 索时间长和易陷入局部最优等问题,本发明提出了一种基于改进蚁群算法的多 目标动态任务调度方法,主要包括如下几个步骤:确定独立子任务调度序列、 初始化任务截止时间和集群负载因子和计算任务序列调度最优方案。
如图1,在本实施例中,该基于改进蚁群算法的多目标动态任务调度方法, 包括:
步骤101,确定用户提交的任务请求所请求的若干个任务。
步骤102,将所请求的各任务分别拆分成若干个子任务,并根据各任务的 优先级,对各任务的子任务进行升序排序,得到待调度任务序列。
在本实施例中,步骤102具体可以包括:
子步骤1021,对所请求的若干个任务进行拓扑排序,并对每个任务的子任 务按照拓扑排序进入队列的顺序递增编号,得到若干个拓扑排序序列;其中, 编号越小的子任务越先执行。
子步骤1022,对子步骤1021得到的若干个拓扑排序序列,按照编号升序 和任务的优先级进行排序,从而得到排序后的待调度任务序列;其中,相同编 号的不同任务优先级越高的子任务越靠前。
上述步骤102所获得的待调度任务序列可作为步骤103的输入。
步骤103,通过顺序调度的方式将待调度任务序列中的待调度任务分配至 各个计算节点,得到初始任务-计算节点分配方案,然后根据任务自身特点和计 算节点能力计算得到任务执行时间和计算集群负载因子,作为预设任务截止时 间和负载均衡阈值。
在本实施例中,步骤103具体可以包括:
子步骤1031,将待调度任务序列依次按照计算节点编号递增顺序完成任务 -计算节点映射,得到初始任务-计算节点分配方案。
子步骤1032,根据不同任务所需计算量大小、输入输出文件大小以及计算 节点CPU处理能力、内存利用率和网络带宽参数,计算在初始任务-计算节点 分配方案下各个任务的完成时间,得到完成全部任务所需的最大执行时间,将 完成全部任务所需的最大执行时间设为初始任务截止时间阈值。
子步骤1033,采集每个计算节点CPU、内存和网络带宽的占用率,计算当 前各个节点的负载均衡程度,从而得到计算节点集群的整体负载因子,将集群 负载因子设为初始负载因子阈值。
上述步骤103所获得的集群负载因子设为初始负载因子阈值可作为步骤 104的输入。
步骤104,基于改进的蚁群算法,将待调度任务序列中的待调度任务分配 到计算节点上完成处理,得到在预设任务截止时间和负载均衡阈值约束条件下 的最优分配方案,实现对多目标动态任务的调度。
在本实施例中,步骤104具体可以包括:
子步骤1041,利用计算节点的CPU处理能力和网络带宽参数初始化每个 计算节点对任务的信息素浓度,得到信息素矩阵,并初始化蚁群。
子步骤1042,蚁群开始迭代,对于蚁群中的所有蚂蚁依次计算待调度任务 序列中每个任务分配至每个计算节点的概率,得到分配概率后,按照轮盘赌方 式将任务分配至计算节点上进行处理。其中,在第t轮迭代中,对于蚁群中的单 只蚂蚁antk依次计算待调度任务序列中每个任务ti分配至每个计算节点vj的概 率并随机选择下一个待调度任务tj,将tj加入该蚂蚁的禁忌表tabuk中,直 至蚂蚁antk的禁忌表包含全部待调度任务,此时,一只蚂蚁调度完成并生成调 度方案Ek(t);重复本步骤,直至所有q只蚂蚁完成任务调度。
子步骤1043,根据单只蚂蚁任务调度方案的执行时间和集群负载因子,局 部更新信息素矩阵。
子步骤1044,一次迭代所有蚂蚁计算完成其任务调度方案后,比较每种方 案的执行时间和集群负载因子选出二者均最优的方案作为本轮迭代的最优 方案,与当前最优分配方案的执行时间和集群负载因子比较,如果更优, 则更新最优调度方案和执行时间和集群负载因子参数,否则,不进行更新;本 次迭代结束后,完成信息素矩阵τ(t)全局更新;重复本步骤,直至达到最大迭代 次数。
子步骤1045,迭代结束后,判断当前最优分配方案是否为空,如果为空, 则返回不存在当前执行时间和负载因子约束下的最优任务调度方案,否则按照 最优任务调度方案进行任务分发处理。
上述步骤104执行得到的结果,是此次用户提交的任务请求所请求的若干 个任务的最优调度方案,至此多目标动态任务调度过程全部结束。
在上述实施例的基础上,下面结合一个具体实例进行说明。
(1)定义任务调度模型:将m个任务并分配到n个计算节点上,m>n。 将m个任务记作T={t1,t2,...,tm},n个计算节点记作V={v1,v1,...,vn}。则每个任务ti使 用有向无环图表示该任务的各个子任务偏序关系,且具有优先级属性priorityi。
本实施例最终完成对独立子任务的调度,为方便起见,将各个独立子任务 序列仍表示为T。
(2)定义任务-计算节点调度方案为m×n维的矩阵E:
其中,1≤i≤m,1≤j≤n,eij=0/1。
为解决目前云计算任务调度中单目标优化无法满足用户和系统要求的问 题,本发明提出了一种基于改进蚁群算法的多目标动态任务调度方法,综合考 虑计算满足任务需求的计算成本、任务执行时间和负载均衡的多目标任务调度, 提高了任务分配的时效性和计算资源的利用率,减少了任务调度开销。
该基于改进蚁群算法的多目标动态任务调度方法主要包括如下几部分内 容:
第一部分:确定待调度任务序列。
确定待调度任务序列是指:在获得用户提交的任务请求后,将其拆分成单 个独立子任务,并根据任务的优先级对子任务进行升序排序,从而生成待调度 任务序列的过程。如图2所示,该部分包含以下步骤:
步骤S110:对用户提交的多个任务T={t1,t2,...,tm}进行拓扑排序,并对每个 任务的子任务按照拓扑排序时进入队列的先后顺序递增编号(编号越小的子任 务需先被调度)。
步骤S120:对步骤S110得到的多个拓扑排序序列按照编号升序和优先级 排序,相同编号的不同任务优先级越高的子任务越靠前,从而得到排序后的待 调度子任务序列T'。为方便起见,假设T'中同样有m个独立子任务。
第一部分所获得的独立子任务调度序列和计算节点集合,将作为第二部分 的输入。
第二部分:初始化任务截止时间和集群负载因子
初始化任务截止时间和集群负载因子是指:通过顺序调度的方式将待调度 任务分配至各个计算节点,得到初始任务-计算节点分配方案,然后根据任务自 身特点和计算节点能力计算得到任务执行时间和计算集群负载因子,作为预设 任务截止时间和负载均衡阈值。如图3所示,该部分包含以下步骤:
步骤S210:将待调度独立子任务序列T'={t1,t2,...,tm}依次按照计算节点 V={v1,v1,...,vn}编号递增顺序完成任务-计算节点映射,得到初始任务-计算节点分 配方案Einitial。
步骤S220:根据不同任务ti所需计算量大小task_lengthi、输入文件大小fileSizei、输出文件大小outputSizei以及每个计算节点vj的CPU处理能力mipsj、内 存利用率uj和网络带宽参数bwj,按照公式tij=teij+tsij+trij计算在步骤S210分配 方案下各个计算节点完成其上所分配任务的时间tij,其中,是 任务ti在节点vj上实际执行时间,tsij=fileSizei/bwj和trij=outputSizei/bwj是任务发 送到计算节点和从计算节点返回所需要的传输时间,进而得到完成全部任务所 需的最大执行时间(k是分配在计算节点上任务的个数), 将其设为初始任务截止时间阈值参数makespaninitial。
步骤S230:采集每个计算节点CPU、内存和网络带宽的占用率参数 Pt j={mipst j,memt j,bwt j}和计算节点所具有的最大计算存储参数 Pj={mipsj,memj,bwj},计算当前各个节点的负载均衡程度loadj,再计算各个节点 负载程度的标准差作为集群的整体负载因子load,并将集群负载因子设为初始 负载因子阈值参数loadinitial。具体计算公式如下:
第一部分所获得的任务截止时间makespaninitial和计算集群负载因 子参数loadinitial,将作为第三部分的输入。
第三部分:计算任务序列调度最优方案
计算任务序列调度最优方案是指:利用改进的蚁群算法思路,将待调度任 务序列的分配到计算节点上完成处理,得到在执行时间和负载因子约束条件下 的最优分配方案的过程,并且保证调度的效率和结果。如图4所示,该部分包 含以下步骤:
步骤S320:蚁群开始迭代。第t轮迭代中,对于蚁群中的单只蚂蚁antk依次 计算待调度任务序列中每个任务ti分配至每个计算节点vj的概率并随机选 择下一个待调度任务tj,将tj加入该蚂蚁的禁忌表tabuk中,直至蚂蚁antk的禁忌 表包含全部待调度任务,此时,一只蚂蚁调度完成并生成调度方案Ek(t)。重复 步骤S320,直至所有q只蚂蚁完成任务调度:
其中,σmax和σmin为避免出现过早收敛陷入局部设置的信息素上下限阈值参 数。为实现信息素的扩散速度随着蚂蚁迭代次数增加而增加,设置信息素更新 规则为t是当前蚂蚁的迭代次数,ρ是预先设定的信息素挥发 系数,是信息素总体扩散速度常数,表示在t时间内任务ti到计算节点vj的信息素增量:
γ为减少虚拟机过载,实现任务分配的负载均衡而加入的信息素调整因子:
其中,ETCj是计算节点vj上一次迭代过程执行任务时间,ETCave是上一次 迭代中所有计算节点执行任务的平均值。
步骤S340:一次迭代(第t次迭代)所有蚂蚁计算完成其任务调度方案后, 比较每种方案的执行时间和集群负载因子选出二者均最优的方案 作为本轮迭代的最优方案,与当前最优分配方案的执行时间和集群负载因 子比较,如果更优,则更新最优调度方案和执行时间和集群负载因子参数, 否则,不进行更新。本次迭代结束后,完成信息素矩阵τ(t)全局更新,更新规则 的计算方法如下;
重复步骤S340,直至达到最大迭代次数N。
步骤S350:迭代结束后,判断当前最优分配方案是否为空,如果为空,则 返回不存在当前执行时间和负载因子约束下的最优任务调度方案,否则按照最 优任务调度方案进行任务分发处理。
第三部分执行得到的结果即此次用户所请求的任务的最优调度方案,至此 任务调度过程全部结束。
在上述实施例的基础上,本发明还公开了一种基于改进蚁群算法的多目标 动态任务调度系统,包括:
任务确定模块,用于确定用户提交的任务请求所请求的若干个任务。
排序模块,用于将所请求的各任务分别拆分成若干个子任务,并根据各任 务的优先级,对各任务的子任务进行升序排序,得到待调度任务序列。
阈值确定模块,用于通过顺序调度的方式将待调度任务序列中的待调度任 务分配至各个计算节点,得到初始任务-计算节点分配方案,然后根据任务自身 特点和计算节点能力计算得到任务执行时间和计算集群负载因子,作为预设任 务截止时间和负载均衡阈值。
任务调度模块,用于基于改进的蚁群算法,将待调度任务序列中的待调度 任务分配到计算节点上完成处理,得到在预设任务截止时间和负载均衡阈值约 束条件下的最优分配方案,实现对多目标动态任务的调度。
优选的,排序模块具体可以包括:第一排序子模块,用于对所请求的若干 个任务进行拓扑排序,并对每个任务的子任务按照拓扑排序进入队列的顺序递 增编号,得到若干个拓扑排序序列;其中,编号越小的子任务越先执行。第二 排序子模块,用于对第一排序子模块得到的若干个拓扑排序序列,按照编号升 序和任务的优先级进行排序,从而得到排序后的待调度任务序列;其中,相同 编号的不同任务优先级越高的子任务越靠前。
优选的,阈值确定模块具体可以包括:分配方案确定子模块,用于将待调 度任务序列依次按照计算节点编号递增顺序完成任务-计算节点映射,得到初始 任务-计算节点分配方案。第一阈值确定子模块,用于根据不同任务所需计算量 大小、输入输出文件大小以及计算节点CPU处理能力、内存利用率和网络带宽 参数,计算在初始任务-计算节点分配方案下各个任务的完成时间,得到完成全 部任务所需的最大执行时间,将完成全部任务所需的最大执行时间设为初始任 务截止时间阈值。第二阈值确定子模块,用于采集每个计算节点CPU、内存和 网络带宽的占用率,计算当前各个节点的负载均衡程度,从而得到计算节点集 群的整体负载因子,将集群负载因子设为初始负载因子阈值。
优选的,任务调度模块具体可以包括:初始化子模块,用于利用计算节点 的CPU处理能力和网络带宽参数初始化每个计算节点对任务的信息素浓度,得 到信息素矩阵,并初始化蚁群。任务分配子模块,用于蚁群开始迭代,对于蚁 群中的所有蚂蚁依次计算待调度任务序列中每个任务分配至每个计算节点的概 率,得到分配概率后,按照轮盘赌方式将任务分配至计算节点上进行处理;其 中,在第t轮迭代中,对于蚁群中的单只蚂蚁antk依次计算待调度任务序列中每 个任务ti分配至每个计算节点vj的概率并随机选择下一个待调度任务tj, 将tj加入该蚂蚁的禁忌表tabuk中,直至蚂蚁antk的禁忌表包含全部待调度任务, 此时,一只蚂蚁调度完成并生成调度方案Ek(t);重复本模块,直至所有q只蚂 蚁完成任务调度。局部更新子模块,用于根据单只蚂蚁任务调度方案的执行时 间和集群负载因子,局部更新信息素矩阵。比较迭代子模块,用于一次迭代所 有蚂蚁计算完成其任务调度方案后,比较每种方案的执行时间和集群负载因子 选出二者均最优的方案作为本轮迭代的最优方案,与当前最优分配方案的 执行时间和集群负载因子比较,如果更优,则更新最优调度方案和执行时 间和集群负载因子参数,否则,不进行更新;本次迭代结束后,完成信息素矩 阵τ(t)全局更新;重复本模块,直至达到最大迭代次数。任务调度模块子模块, 用于迭代结束后,判断当前最优分配方案是否为空,如果为空,则返回不存在 当前执行时间和负载因子约束下的最优任务调度方案,否则按照最优任务调度 方案进行任务分发处理。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何 本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法 和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发 明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、 等同变化及修饰,均属于本发明技术方案的保护范围。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技 术。
Claims (8)
1.一种基于改进蚁群算法的多目标动态任务调度方法,其特征在于,包括:
步骤101,确定用户提交的任务请求所请求的若干个任务;
步骤102,将所请求的各任务分别拆分成若干个子任务,并根据各任务的优先级,对各任务的子任务进行升序排序,得到待调度任务序列;
步骤103,通过顺序调度的方式将待调度任务序列中的待调度任务分配至各个计算节点,得到初始任务-计算节点分配方案,然后根据任务自身特点和计算节点能力计算得到任务执行时间和计算集群负载因子,作为预设任务截止时间和负载均衡阈值;
步骤104,基于改进的蚁群算法,将待调度任务序列中的待调度任务分配到计算节点上完成处理,得到在预设任务截止时间和负载均衡阈值约束条件下的最优分配方案,实现对多目标动态任务的调度。
2.根据权利要求1所述的基于改进蚁群算法的多目标动态任务调度方法,其特征在于,所述步骤102,包括:
子步骤1021,对所请求的若干个任务进行拓扑排序,并对每个任务的子任务按照拓扑排序进入队列的顺序递增编号,得到若干个拓扑排序序列;其中,编号越小的子任务越先执行;
子步骤1022,对子步骤1021得到的若干个拓扑排序序列,按照编号升序和任务的优先级进行排序,从而得到排序后的待调度任务序列;其中,相同编号的不同任务优先级越高的子任务越靠前。
3.根据权利要求2所述的基于改进蚁群算法的多目标动态任务调度方法,其特征在于,所述步骤103,包括:
子步骤1031,将待调度任务序列依次按照计算节点编号递增顺序完成任务-计算节点映射,得到初始任务-计算节点分配方案;
子步骤1032,根据不同任务所需计算量大小、输入输出文件大小以及计算节点CPU处理能力、内存利用率和网络带宽参数,计算在初始任务-计算节点分配方案下各个任务的完成时间,得到完成全部任务所需的最大执行时间,将完成全部任务所需的最大执行时间设为初始任务截止时间阈值;
子步骤1033,采集每个计算节点CPU、内存和网络带宽的占用率,计算当前各个节点的负载均衡程度,从而得到计算节点集群的整体负载因子,将集群负载因子设为初始负载因子阈值。
4.根据权利要求3所述的基于改进蚁群算法的多目标动态任务调度方法,其特征在于,所述步骤104,包括:
子步骤1041,利用计算节点的CPU处理能力和网络带宽参数初始化每个计算节点对任务的信息素浓度,得到信息素矩阵,并初始化蚁群;
子步骤1042,蚁群开始迭代,对于蚁群中的所有蚂蚁依次计算待调度任务序列中每个任务分配至每个计算节点的概率,得到分配概率后,按照轮盘赌方式将任务分配至计算节点上进行处理;其中,在第t轮迭代中,对于蚁群中的单只蚂蚁antk依次计算待调度任务序列中每个任务ti分配至每个计算节点vj的概率并随机选择下一个待调度任务tj,将tj加入该蚂蚁的禁忌表tabuk中,直至蚂蚁antk的禁忌表包含全部待调度任务,此时,一只蚂蚁调度完成并生成调度方案Ek(t);重复本步骤,直至所有q只蚂蚁完成任务调度;
子步骤1043,根据单只蚂蚁任务调度方案的执行时间和集群负载因子,局部更新信息素矩阵;
子步骤1044,一次迭代所有蚂蚁计算完成其任务调度方案后,比较每种方案的执行时间和集群负载因子选出二者均最优的方案作为本轮迭代的最优方案,与当前最优分配方案的执行时间和集群负载因子比较,如果更优,则更新最优调度方案和执行时间和集群负载因子参数,否则,不进行更新;本次迭代结束后,完成信息素矩阵τ(t)全局更新;重复本步骤,直至达到最大迭代次数;
子步骤1045,迭代结束后,判断当前最优分配方案是否为空,如果为空,则返回不存在当前执行时间和负载因子约束下的最优任务调度方案,否则按照最优任务调度方案进行任务分发处理。
5.一种基于改进蚁群算法的多目标动态任务调度系统,其特征在于,包括:
任务确定模块,用于确定用户提交的任务请求所请求的若干个任务;
排序模块,用于将所请求的各任务分别拆分成若干个子任务,并根据各任务的优先级,对各任务的子任务进行升序排序,得到待调度任务序列;
阈值确定模块,用于通过顺序调度的方式将待调度任务序列中的待调度任务分配至各个计算节点,得到初始任务-计算节点分配方案,然后根据任务自身特点和计算节点能力计算得到任务执行时间和计算集群负载因子,作为预设任务截止时间和负载均衡阈值;
任务调度模块,用于基于改进的蚁群算法,将待调度任务序列中的待调度任务分配到计算节点上完成处理,得到在预设任务截止时间和负载均衡阈值约束条件下的最优分配方案,实现对多目标动态任务的调度。
6.根据权利要求5所述的基于改进蚁群算法的多目标动态任务调度系统,其特征在于,排序模块,包括:
第一排序子模块,用于对所请求的若干个任务进行拓扑排序,并对每个任务的子任务按照拓扑排序进入队列的顺序递增编号,得到若干个拓扑排序序列;其中,编号越小的子任务越先执行;
第二排序子模块,用于对第一排序子模块得到的若干个拓扑排序序列,按照编号升序和任务的优先级进行排序,从而得到排序后的待调度任务序列;其中,相同编号的不同任务优先级越高的子任务越靠前。
7.根据权利要求6所述的基于改进蚁群算法的多目标动态任务调度系统,其特征在于,阈值确定模块,包括:
分配方案确定子模块,用于将待调度任务序列依次按照计算节点编号递增顺序完成任务-计算节点映射,得到初始任务-计算节点分配方案;
第一阈值确定子模块,用于根据不同任务所需计算量大小、输入输出文件大小以及计算节点CPU处理能力、内存利用率和网络带宽参数,计算在初始任务-计算节点分配方案下各个任务的完成时间,得到完成全部任务所需的最大执行时间,将完成全部任务所需的最大执行时间设为初始任务截止时间阈值;
第二阈值确定子模块,用于采集每个计算节点CPU、内存和网络带宽的占用率,计算当前各个节点的负载均衡程度,从而得到计算节点集群的整体负载因子,将集群负载因子设为初始负载因子阈值。
8.根据权利要求7所述的基于改进蚁群算法的多目标动态任务调度系统,其特征在于,任务调度模块,包括:
初始化子模块,用于利用计算节点的CPU处理能力和网络带宽参数初始化每个计算节点对任务的信息素浓度,得到信息素矩阵,并初始化蚁群;
任务分配子模块,用于蚁群开始迭代,对于蚁群中的所有蚂蚁依次计算待调度任务序列中每个任务分配至每个计算节点的概率,得到分配概率后,按照轮盘赌方式将任务分配至计算节点上进行处理;其中,在第t轮迭代中,对于蚁群中的单只蚂蚁antk依次计算待调度任务序列中每个任务ti分配至每个计算节点vj的概率并随机选择下一个待调度任务tj,将tj加入该蚂蚁的禁忌表tabuk中,直至蚂蚁antk的禁忌表包含全部待调度任务,此时,一只蚂蚁调度完成并生成调度方案Ek(t);重复本模块,直至所有q只蚂蚁完成任务调度;
局部更新子模块,用于根据单只蚂蚁任务调度方案的执行时间和集群负载因子,局部更新信息素矩阵;
比较迭代子模块,用于一次迭代所有蚂蚁计算完成其任务调度方案后,比较每种方案的执行时间和集群负载因子选出二者均最优的方案作为本轮迭代的最优方案,与当前最优分配方案的执行时间和集群负载因子比较,如果更优,则更新最优调度方案和执行时间和集群负载因子参数,否则,不进行更新;本次迭代结束后,完成信息素矩阵τ(t)全局更新;重复本模块,直至达到最大迭代次数;
任务调度模块子模块,用于迭代结束后,判断当前最优分配方案是否为空,如果为空,则返回不存在当前执行时间和负载因子约束下的最优任务调度方案,否则按照最优任务调度方案进行任务分发处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111616181.7A CN114968510A (zh) | 2021-12-27 | 2021-12-27 | 一种基于改进蚁群算法的多目标动态任务调度方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111616181.7A CN114968510A (zh) | 2021-12-27 | 2021-12-27 | 一种基于改进蚁群算法的多目标动态任务调度方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968510A true CN114968510A (zh) | 2022-08-30 |
Family
ID=82974989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111616181.7A Pending CN114968510A (zh) | 2021-12-27 | 2021-12-27 | 一种基于改进蚁群算法的多目标动态任务调度方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968510A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115689252A (zh) * | 2022-12-28 | 2023-02-03 | 杭州中安电子有限公司 | 基于自适应蚁群算法的任务分配方法和系统 |
CN116679758A (zh) * | 2023-08-04 | 2023-09-01 | 江西现代职业技术学院 | 一种无人机调度方法、系统、计算机及可读存储介质 |
CN117193966A (zh) * | 2023-08-10 | 2023-12-08 | 博智安全科技股份有限公司 | 一种分布式资产任务调度方法 |
CN117319505A (zh) * | 2023-11-30 | 2023-12-29 | 天勰力(山东)卫星技术有限公司 | 一种面向软件定义卫星共享网络的星上任务抢单系统 |
CN117573307A (zh) * | 2023-11-13 | 2024-02-20 | 纬创软件(武汉)有限公司 | 云环境下多任务的统筹管理方法及系统 |
CN117806806A (zh) * | 2024-02-28 | 2024-04-02 | 湖南科技大学 | 任务部分卸载调度方法、终端设备及存储介质 |
CN118396338A (zh) * | 2024-06-24 | 2024-07-26 | 无锡学院 | 一种多智能体系统实时任务分配与负载均衡方法及系统 |
-
2021
- 2021-12-27 CN CN202111616181.7A patent/CN114968510A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115689252A (zh) * | 2022-12-28 | 2023-02-03 | 杭州中安电子有限公司 | 基于自适应蚁群算法的任务分配方法和系统 |
CN116679758A (zh) * | 2023-08-04 | 2023-09-01 | 江西现代职业技术学院 | 一种无人机调度方法、系统、计算机及可读存储介质 |
CN116679758B (zh) * | 2023-08-04 | 2023-10-17 | 江西现代职业技术学院 | 一种无人机调度方法、系统、计算机及可读存储介质 |
CN117193966A (zh) * | 2023-08-10 | 2023-12-08 | 博智安全科技股份有限公司 | 一种分布式资产任务调度方法 |
CN117573307A (zh) * | 2023-11-13 | 2024-02-20 | 纬创软件(武汉)有限公司 | 云环境下多任务的统筹管理方法及系统 |
CN117573307B (zh) * | 2023-11-13 | 2024-04-09 | 纬创软件(武汉)有限公司 | 云环境下多任务的统筹管理方法及系统 |
CN117319505A (zh) * | 2023-11-30 | 2023-12-29 | 天勰力(山东)卫星技术有限公司 | 一种面向软件定义卫星共享网络的星上任务抢单系统 |
CN117319505B (zh) * | 2023-11-30 | 2024-02-06 | 天勰力(山东)卫星技术有限公司 | 一种面向软件定义卫星共享网络的星上任务抢单系统 |
CN117806806A (zh) * | 2024-02-28 | 2024-04-02 | 湖南科技大学 | 任务部分卸载调度方法、终端设备及存储介质 |
CN117806806B (zh) * | 2024-02-28 | 2024-05-17 | 湖南科技大学 | 任务部分卸载调度方法、终端设备及存储介质 |
CN118396338A (zh) * | 2024-06-24 | 2024-07-26 | 无锡学院 | 一种多智能体系统实时任务分配与负载均衡方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114968510A (zh) | 一种基于改进蚁群算法的多目标动态任务调度方法和系统 | |
CN111427679B (zh) | 面向边缘计算的计算任务调度方法、系统、装置 | |
CN110297699B (zh) | 调度方法、调度器、存储介质及系统 | |
CN107329815B (zh) | 一种基于BP-Tabu搜索的云任务负载均衡调度方法 | |
CN110321222B (zh) | 基于决策树预测的数据并行作业资源分配方法 | |
CN110321217B (zh) | 一种多目标的云资源调度方法、装置、设备及存储介质 | |
CN107911478A (zh) | 基于化学反应优化算法的多用户计算卸载方法及装置 | |
CN111614754B (zh) | 面向雾计算的成本效率优化的动态自适应任务调度方法 | |
CN105373426B (zh) | 一种基于Hadoop的车联网内存感知实时作业调度方法 | |
WO2020134133A1 (zh) | 一种资源配置方法、变电站及计算机可读存储介质 | |
CN113163498B (zh) | 5g网络切片下基于遗传算法的虚拟网资源分配方法及装置 | |
CN115480876A (zh) | 基于蚁群算法优化的云计算任务调度方法及系统 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN111913800B (zh) | 基于l-aco的云中微服务成本优化的资源分配方法 | |
CN116302389A (zh) | 一种基于改进蚁群算法的任务调度方法 | |
CN111176840A (zh) | 分布式任务的分配优化方法和装置、存储介质及电子装置 | |
Derakhshan et al. | Optimization of tasks in cloud computing based on MAX-MIN, MIN-MIN and priority | |
CN111611076B (zh) | 任务部署约束下移动边缘计算共享资源公平分配方法 | |
CN116166381A (zh) | 一种多云管理平台中基于iaco算法的资源调度 | |
CN116700993A (zh) | 一种负载均衡方法、装置、设备及可读存储介质 | |
CN112306642A (zh) | 一种基于稳定匹配博弈理论的工作流调度方法 | |
CN115421885A (zh) | 一种分布式多目标云任务的调度方法、装置及云服务系统 | |
CN108984286A (zh) | 一种云计算平台的资源调度方法和系统 | |
CN110012507A (zh) | 一种用户体验优先的车联网资源分配方法及系统 | |
CN117608806A (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 |