CN111813525A - 一种异构系统工作流调度方法 - Google Patents
一种异构系统工作流调度方法 Download PDFInfo
- Publication number
- CN111813525A CN111813525A CN202010660377.5A CN202010660377A CN111813525A CN 111813525 A CN111813525 A CN 111813525A CN 202010660377 A CN202010660377 A CN 202010660377A CN 111813525 A CN111813525 A CN 111813525A
- Authority
- CN
- China
- Prior art keywords
- task
- sequence
- priority
- population
- pheromone
- 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 81
- 239000003016 pheromone Substances 0.000 claims abstract description 136
- 238000009826 distribution Methods 0.000 claims abstract description 121
- 241000257303 Hymenoptera Species 0.000 claims abstract description 57
- 239000011159 matrix material Substances 0.000 claims abstract description 47
- 230000007704 transition Effects 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000005457 optimization Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- CNYBMJMECCUBFV-UHFFFAOYSA-N methyl 2-[4-(4-chlorophenyl)-2-(1,3-dioxoisoindol-2-yl)-1,3-thiazol-5-yl]acetate Chemical compound COC(=O)CC=1SC(N2C(C3=CC=CC=C3C2=O)=O)=NC=1C1=CC=C(Cl)C=C1 CNYBMJMECCUBFV-UHFFFAOYSA-N 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 239000005556 hormone Substances 0.000 description 4
- 229940088597 hormone Drugs 0.000 description 4
- 238000003860 storage Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002028 premature Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002431 foraging effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
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
本发明公开了一种异构系统工作流调度方法,涉及计算机技术技术领域。用以解决现有的调度方法存在面对不同调度问题时不能持续产生优秀的解决方案或者具有较长执行时间的问题。该方法包括:根据优先级队列种群的次序信息素矩阵和初始分配序列,得到所述优先级队列种群包括的N个蚂蚁以及T个任务的N个优先级序列;根据分配序列种群的分配序列信息素矩阵和初始优先级序列,得到所述分配序列种群包括的M个蚂蚁将T个任务以及处理器的分配对构建的M个任务分配序列;将所述N个优先级序列中具有最小适应度值的优先级序列发送至所述分配序列种群,将所述M个任务分配序列中具有最小适应度值的任务分配序列发送至所述优先级队列种群。
Description
技术领域
本发明涉及计算机技术技术领域,更具体的涉及一种异构系统工作流调度方法。
背景技术
从小型的嵌入式系统到大型的云数据中心都已经广泛采用分布式架构。随着系统处理器能力和集成度的提高,有效的资源管理方法已经成为系统设计的主要瓶颈。因此,需要通过设计良好的任务调度技术来协调系统资源的使用,优化任务的执行性能与系统的资源利用。但是,随着系统资源的更新换代,旧的、缓慢的设备持续被新的、快速的设备替代,系统资源越来越异构化,使得分布式系统成为了一个典型的异构计算系统(英文为:Heterogeneous computing system,HCS)。
随着异构计算系统处理器的规模不断扩大,部署在系统中的工作流应用越来越多。一个包含多个具有依赖关系任务的工作流应用经常被建模为一个有向无环图(Directed acyclic graph,DAG),图中的节点表示应用中的任务,图中的边表示任务之间的数据依赖关系。通过将工作流应用分解为多个任务,并利用系统的多个处理器并行执行这些任务,可以降低应用的完成时间,提升系统的资源利用率。因此,在异构计算系统中,工作流调度算法的目的是在保持任务之间依赖关系的前提下,将工作流的任务分配至给定数目和处理能力的处理器上,最小化工作流的完成时间。
异构计算系统工作流调度问题是一个典型的NP难问题,因此设计有效的调度方法非常具有挑战性。由于工作流中的任务具有依赖关系,因此工作流调度问题需要确定任务的优先级队列与任务的分配序列。任务的优先级队列确定任务的调度顺序,任务的分配序列确定执行每个任务的处理器。严格来说,这两个阶段均对工作流的完成时间有着不可忽视的影响。
当前主要有两大类调度方法,启发式调度与元启发式调度,二者均能够以低的时间开销为工作流调度问题寻找到次最优的调度方案。启发式调度利用启发式的方法寻找优秀的解决方案,同时在调度过程中利用预定义的规则缩小搜索范围,具有很小的时间复杂度。但是基于贪婪搜索的启发式方法受问题的特征影响很大,工作流又具有不同的结构与规模,因此此类方法在面对不同调度问题时不能持续生成优秀的解决方案。相比之下,元启发式调度方法通过同时构建多个解决方案可以更好地搜索解空间,但是元启发式方法具有比较长的执行时间。
综上所述,现有的调度方法存在面对不同调度问题时不能持续产生优秀的解决方案或者具有较长执行时间的问题。
发明内容
本发明实施例提供一种异构系统工作流调度方法,用以解决现有的调度方法存在面对不同调度问题时不能持续产生优秀的解决方案或者具有较长执行时间的问题。
本发明实施例提供一种异构系统工作流调度方法,包括:
根据优先级队列种群的次序信息素矩阵和初始分配序列,得到所述优先级队列种群包括的N个蚂蚁以及T个任务的N个优先级序列;
根据分配序列种群的分配序列信息素矩阵和初始优先级序列,得到所述分配序列种群包括的M个蚂蚁将T个任务以及处理器的分配对构建的M个任务分配序列;
将所述N个优先级序列中具有最小适应度值的优先级序列发送至所述分配序列种群,将所述M个任务分配序列中具有最小适应度值的任务分配序列发送至所述优先级队列种群。
优选地,所述得到所述优先级队列种群包括的N个蚂蚁以及T个任务的N个优先级序列,具体包括:
根据所述初始分配序列将所述优先级队列种群的第i个蚂蚁的入口任务添加到构建的第i个优先级序列中;
当所述第i个优先级序列的末尾为任务ti时,从就绪任务集合内根据状态转换规则选择任务tm添加到所述第i个优先级序列的末尾;
将所述任务tm从所述就绪任务集合内移除,将所述任务tm之后可并行执行的至少两个任务添加到所述就绪任务集合内,对所述任务tm当前对应的信息素进行局部更新;
当所述优先级队列种群包括的N个蚂蚁均将所述T个任务添加到所述N个优先级序列中之后,根据所述优先级队种群的初始分配序列确定每个所述优先级序列的第一适应度值,将具有最小第一适应度值的所述优先级序列进行信息素全局更新。
优选地,所述状态转换规则如下所示:
其中,任务ti选择tj的概率p(i,j)如下所示:
其中,τi,j表示当任务ti被选择后,任务tj被选中的意向;urank(tj)为任务的自底向上优先级值;q为位于[0,1]之间的值;q0为探索与探测能力相对重要指数;β为信息素与启发式信息相对重要指数。
优选地,通过下列公式进行信息素局部更新:
τi,j=(1-α)×τi,j+α×τ0
通过下列公式进行信息素局部更新:
τi,j=(1-ρ)×τi,j+ρ×Δτi,j
Δτi,j=1/fbest
其中,α为信息素衰减系数;τ0=1/(|T|×fHEET),ρ为信息素增强系数,τi,j表示当任务ti被选择后,任务tj被选中的意向;fbest为工作流的完成时间。
优选地,所述将所述N个优先级序列中具有最小适应度值的优先级序列发送至所述分配序列种群,具体包括:
将具有最小第一适应度值的所述优先级序列进行信息素全局更新,得到优化优先级序列,并将所述优化优先级序列发送至所述分配序列种群,以使所述分配序列总群根据所述优化优先级序列替换所述初始优先级序列。
优选地,所述得到所述分配序列种群包括的M个蚂蚁将T个任务以及处理器的分配对构建的T个任务分配序列,具体包括:
根据所述初始优先级队列确定所述分配序列种群的第I个蚂蚁的任务ti,根据状态转换规则从处理器集合选择处理器pk分配给所述任务ti;
将所述任务ti与处理器pk的分配对(ti,pk)添加到构建的第I个任务分配序列,对所述处理器pk当前对应的信息素进行局部更新;
当所述分配序列种群包括的M个蚂蚁均将T个任务与处理器的分配对添加到M个任务分配序列之后,根据所述分配序列种群的初始优先级序列确定每个所述任务分配序列的第二适应度值,将具有最小第二适应度值的所述任务分配序列进行信息素全局更新。
优选地,通过下列公式进行信息素局部更新:
通过下列公式进行信息素局部更新:
τi,j=(1-ρ)×τi,j+ρ×Δτi,j
Δτi,j=1/fbest
其中,FT(tj)是任务tj的实际完成时间,TT(tj,ti)是数据的传输时间,avail[pk]是处理器pk的就绪时间,EFT(ti,pk)是任务ti在处理器pk的最早完成时间,任务tj在处理器pk上的启发式信息定义为完成时间的倒数1/EFT(ti,pk);ρ为信息素增强系数,τi,j表示当任务ti被选择后,任务tj被选中的意向;fbest为工作流的完成时间。
优选地,所述将所述M个任务分配序列中具有最小适应度值的任务分配序列发送至所述优先级队列种群,具体包括:
将具有最小第二适应度值的所述任务分配序列进行信息素全局更新,得到优化分配序列,并将所述优化分配序列发送至所述优先级队列种群,以使所述优先级队列种群根据所述优化分配序列替换所述初始分配序列。
优选地,所述次序信息素矩阵和所述分配序列信息素矩阵如下所示:
τ0=1/(|T|×fHEET)
其中,τ0为所述次序信息素矩阵和所述次序信息素矩阵的元素值,|T|为工作流包括的任务的数目,fHEET为利用HEFT调度该工作流应用的完成时间。
本发明实施例还提供了一种异构系统工作流调度装置,包括:
第一得到单元,用于根据优先级队列种群的次序信息素矩阵和初始分配序列,得到所述优先级队列种群包括的N个蚂蚁以及T个任务的N个优先级序列;
第二得到单元,用于根据分配序列种群的分配序列信息素矩阵和初始优先级序列,得到所述分配序列种群包括的M个蚂蚁将T个任务以及处理器的分配对构建的M个任务分配序列;
分配单元,用于将所述N个优先级序列中具有最小适应度值的优先级序列发送至所述分配序列种群,将所述M个任务分配序列中具有最小适应度值的任务分配序列发送至所述优先级队列种群。
优选地,所述第一得到单元具体用于:
根据所述初始分配序列将所述优先级队列种群的第i个蚂蚁的入口任务添加到构建的第i个优先级序列中;
当所述第i个优先级序列的末尾为任务ti时,从就绪任务集合内根据状态转换规则选择任务tm添加到所述第i个优先级序列的末尾;
将所述任务tm从所述就绪任务集合内移除,将所述任务tm之后可并行执行的至少两个任务添加到所述就绪任务集合内,对所述任务tm当前对应的信息素进行局部更新;
当所述优先级队列种群包括的N个蚂蚁均将所述T个任务添加到所述N个优先级序列中之后,根据所述优先级队种群的初始分配序列确定每个所述优先级序列的第一适应度值,将具有最小第一适应度值的所述优先级序列进行信息素全局更新。
优选地,所述状态转换规则如下所示:
其中,任务ti选择tj的概率p(i,j)如下所示:
其中,τi,j表示当任务ti被选择后,任务tj被选中的意向;urank(tj)为任务的自底向上优先级值;q为位于[0,1]之间的值;q0为探索与探测能力相对重要指数;β为信息素与启发式信息相对重要指数。
优选地,通过下列公式进行信息素局部更新:
τi,j=(1-α)×τi,j+α×τ0
通过下列公式进行信息素局部更新:
τi,j=(1-ρ)×τi,j+ρ×Δτi,j
Δτi,j=1/fbest
其中,α为信息素衰减系数;τ0=1/(|T|×fHEET),ρ为信息素增强系数,τi,j表示当任务ti被选择后,任务tj被选中的意向;fbest为工作流的完成时间。
优选地,所述分配单元具体用于:
将具有最小第一适应度值的所述优先级序列进行信息素全局更新,得到优化优先级序列,并将所述优化优先级序列发送至所述分配序列种群,以使所述分配序列总群根据所述优化优先级序列替换所述初始优先级序列。
优选地,所述第二得到单元具体用于:
根据所述初始优先级队列确定所述分配序列种群的第I个蚂蚁的任务ti,根据状态转换规则从处理器集合选择处理器pk分配给所述任务ti;
将所述任务ti与处理器pk的分配对(ti,pk)添加到构建的第I个任务分配序列,对所述处理器pk当前对应的信息素进行局部更新;
当所述分配序列种群包括的M个蚂蚁均将T个任务与处理器的分配对添加到M个任务分配序列之后,根据所述分配序列种群的初始优先级序列确定每个所述任务分配序列的第二适应度值,将具有最小第二适应度值的所述任务分配序列进行信息素全局更新。
优选地,通过下列公式进行信息素局部更新:
通过下列公式进行信息素局部更新:
τi,j=(1-ρ)×τi,j+ρ×Δτi,j
Δτi,j=1/fbest
其中,FT(tj)是任务tj的实际完成时间,TT(tj,ti)是数据的传输时间,avail[pk]是处理器pk的就绪时间,EFT(ti,pk)是任务ti在处理器pk的最早完成时间,任务tj在处理器pk上的启发式信息定义为完成时间的倒数1/EFT(ti,pk);ρ为信息素增强系数,τi,j表示当任务ti被选择后,任务tj被选中的意向;fbest为工作流的完成时间。
优选地,所述分配单元具体用于:
将具有最小第二适应度值的所述任务分配序列进行信息素全局更新,得到优化分配序列,并将所述优化分配序列发送至所述优先级队列种群,以使所述优先级队列种群根据所述优化分配序列替换所述初始分配序列。
优选地,所述次序信息素矩阵和所述分配序列信息素矩阵如下所示:
τ0=1/(|T|×fHEET)
其中,τ0为所述次序信息素矩阵和所述次序信息素矩阵的元素值,|T|为工作流包括的任务的数目,fHEET为利用HEFT调度该工作流应用的完成时间。
本发明实施例提供一种异构系统工作流调度方法,该方法包括:根据优先级队列种群的次序信息素矩阵和初始分配序列,得到所述优先级队列种群包括的N个蚂蚁以及T个任务的N个优先级序列;根据分配序列种群的分配序列信息素矩阵和初始优先级序列,得到所述分配序列种群包括的M个蚂蚁将T个任务以及处理器的分配对构建的M个任务分配序列;将所述N个优先级序列中具有最小适应度值的优先级序列发送至所述分配序列种群,将所述M个任务分配序列中具有最小适应度值的任务分配序列发送至所述优先级队列种群。该方法中,蚂蚁算法建立的次序信息素矩阵用于指导蚂蚁构建完整的优先级序列,相应地,蚂蚁算法建立的分配序列信息素矩阵用于指定蚂蚁构建完整的任务分配序列,而通过信息共享可以选择优先级序列中具有最小适应度的优先级序列作为分配序列种群中下一次迭代的优先级序列,相应地,将任务分配序列中具有最小适应度的任务分配序列作为优先级队列种群中下一次迭代的任务分配序列,当两个种群间进行信息交换之后,可以促进两个种群的协同进步。从而解决了现有调度方法存在面对不同调度问题时不能持续产生优秀的解决方案或者具有较长执行时间的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种异构系统工作流调度方法流程示意图;
图2为本发明实施例提供的基于协同进化的HCS工作流调度框架示意图;
图3为本发明实施例提供的蚂蚁算法示意图;
图4为本发明实施例提供的基于多种群的协同进化HCS工作流调度方法流程示意图;
图5为本发明实施例提供的一种异构系统工作流调度装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示例性的示出了本发明实施例提供的一种异构系统工作流调度方法流程示意图,如图1所示,该方法主要包括以下三个步骤:
步骤101:根据优先级队列种群的次序信息素矩阵和初始分配序列,得到所述优先级队列种群包括的N个蚂蚁以及T个任务的N个优先级序列;
步骤102:根据分配序列种群的分配序列信息素矩阵和初始优先级序列,得到所述分配序列种群包括的M个蚂蚁将T个任务以及处理器的分配对构建的M个任务分配序列;
步骤103:将所述N个优先级序列中具有最小适应度值的优先级序列发送至所述分配序列种群,将所述M个任务分配序列中具有最小适应度值的任务分配序列发送至所述优先级队列种群。
在介绍本发明实施例提供的一种异构系统工作流调度方法之前,先介绍几个与该方法相关的概念:
1、蚁群算法(ant colony optimization,ACO)是一种用来在图中寻找优化路径的机率型技术。蚁群算法是一种正反馈的算法,从真实蚂蚁的觅食过程中不难看出,蚂蚁能够最终找到最短路径,直接依赖于最短路径上信息激素的堆积,而信息激素的堆积却是一个正反馈的过程。
对蚁群算法来说,初始时刻在环境中存在完全相同的信息激素,给予系统一个微小扰动,使得各个边上的轨迹浓度不相同,蚂蚁构造的解就存在了优劣,算法采用的反馈方式是在较优的解经过的路径留下更多的信息激素,而更多的信息激素又吸引了更多的蚂蚁,这个正反馈的过程使得初始的不同得到不断的扩大,同时又引导整个系统向最优解的方向进化。因此,正反馈是蚂蚁算法的重要特征,它使得算法演化过程得以进行。
2、信息素矩阵:它是一个二维矩阵,用于记录任务i分配给节点j这条路径上的信息素浓度。
3、有向无环图(Directed acyclic graph,DAG):有向无环图指的是一个无回路的有向图。
4、HEFT(Heterogeneour Earliest Finish Time)算法是一种优先级调度算法,其大致流程分为两步:第一步是对任务执行顺序进行排序,此排序的主要依据是认为之间存在执行依赖关系,以及每个任务的平均执行时间;第二步则是分配物理机,此分配所依据的主要标准就是物理机是否能使该任务最早处理完,最后将任务分配给可以将其最早处理完的物理机。
本发明实施例提供的调度方法主要包括三个部分,图2为本发明实施例提供的基于协同进化的HCS工作流调度框架示意图,如图2所示,该方法包括的三部分主要为:工作流任务优先级队列优化部分、工作流任务分配序列优化部分以及信息共享部分。
如图2所示,工作流任务优先级队列优化部分负责工作流调度的第一个阶段,即确定任务的调度顺序;工作流任务优先级队列优化部分实现了任务优先级队列的迭代优化,持续生成更优的优先级序列,同时在工作流任务优先级队列优化部分维护了一个信息素矩阵;另外,工作流任务优先级队列优化部分维护一个具有固定规模的优先级队列种群,该优先级队列种群内的蚂蚁从入口任务开始逐个选取任务,构建优先级序列,然后采用优先级队列种群内保存的任务分配序列计算每个优先级序列的完成时间。
工作流任务分配序列优化部分负责工作流调度的第二个阶段,即确定每个任务的处理器归属。工作流任务分配序列优化部分持续优化任务的分配序列,调整分配给任务的处理器。在工作流任务分配序列优化部分中,信息素表示的是任务对处理器的偏爱程度,蚂蚁根据模块内保存的任务优先级队列依次调度任务,根据信息素和启发式信息为每个任务选择一个处理器,构建任务分配序列,计算完成时间。
信息共享部分实现了优先级队列种群和分配序列种群之间的信息交换,促使两个种群协同进化。在每次迭代结束时,信息共享部分选择优先级队列种群中具有最小完成时间的蚂蚁,将其构建的优先级序列作为分配序列种群下一代任务分配顺序的标准,调度任务顺序的标准,同时选取分配序列种群中具有最小完成时间的蚂蚁,将其构建的任务分配序列作为优先级队列种群下一代调度任务顺序的标准。
本发明实施例提供的调度方法的执行主体为处理器。处理器在执行调度方法之前,先确定了优先级队列种群和分配序列种群的参数,并对有些参数进行了初始化。比如,确定优先级队列种群包括有N个蚂蚁,分配序列种群包括M个蚂蚁,工作流包括T个任务。其中,M、N和T都是大于1的正整数。
在实际应用中,工作流应用包括的是一组具有依赖关系的任务,因此任务的调度次序必须是一个拓扑序列,既前驱任务必须排在后继任务之前。因为入口任务没有前驱,所以入口任务必定出现在优先级序列的首位,然后依据信息素和任务的启发式信息逐个选取任务,直至出口任务被选择添加到优先级序列中。
在本发明实施例中,优先级队列种群包括有N个蚂蚁,由于优先级队列种群需要构建T个任务的N个优先级序列。本发明实施例中利用经典的HEFT生成工作流应用G在计算系统P上的一个调度方法,得到工作流的完成时间fHEFT。
优先级队列种群的次序信息素矩阵具有|T|×|T|个元素,任务分配序列种群的分配序列信息素矩阵具有|T|×|P|个元素,则优先级队列种群的次序信息素矩阵和任务分配序列种群的分配序列信息素矩阵均可以通过下列公式(1)表示:
τ0=1/(|T|×fHEET) (1)
其中,τ0为所述次序信息素矩阵和所述次序信息素矩阵的元素值,|T|为工作流包括的任务的数目,fHEET为利用HEFT调度该工作流应用的完成时间。
在步骤101中,优先级队列种群包括有N个蚂蚁,相应地,工作流包括有T个任务,由于工作流任务优先级队列优化部分的任务是确定每个蚂蚁对应的任务的调度顺序,即将T个任务分别在每个蚂蚁上执行一次迭代优化,从而在每个蚂蚁上形成一个优先级序列。
需要说明的是,由于任务优先级队列种群需要构建优先级序列,因此建立一个τT×T的次序信息素矩阵,其中τi,j表示当任务ti被选择后,任务tj被选中的意向。
具体地,将T个任务分别在每个蚂蚁上执行一次迭代优化主要包括以下过程:
针对第i个蚂蚁,先建立一个与第i个蚂蚁相对应的空的第i个优先级序列。将第i个蚂蚁包括的T个任务中的入口任务先添加到第i个优先级序列中,当将入口任务添加到第i个优先级序列中之后,则需要更新就绪任务集合。在本发明实施例中,就绪任务集合包括了入口任务之后可以并行执行的多个任务。
举例来说,图3为本发明实施例提供的蚂蚁算法示意图,如图3所示,当节点为入口任务时,则位于节点1后待执行的节点2和节点3则为并行任务,若将节点2添加到优先级序列中之后,则节点4,节点5和节点6为节点2后待执行的并行任务。
进一步地,若当前第i个优先级序列末尾为任务ti时,则从就绪任务集合内选择任务tm添加到所述第i个优先级序列的末尾的条件包括状态转换规则和Roulette WheelSelection中,任务ti选择tj的概率p(i,j),具体的公式如下:
其中,τi,j表示当任务ti被选择后,任务tj被选中的意向;urank(tj)为任务的自底向上优先级值;q为利用标准随机函数生成的一个位于[0,1]之间的值;p(i,j)越大,选中tj的概率就越大;q0为探索与探测能力相对重要指数;β为信息素与启发式信息相对重要指数。
重复执行上述步骤,直到将第i个蚂蚁包括的T个任务全部添加到第i个优先级序列中,则第i个蚂蚁完成构建第i个优先级序列的过程。
需要说明的是,在每次将一个任务添加到第i个优先级序列之后,则需要对该任务对应的信息素进行局部更新以及对就绪任务集合进行更新。
具体地,当将任务tm添加到第i个优先级序列之后,对就绪任务集合更新的过程就绪将任务tm从就绪任务集合内移除,并将任务tm之后待执行的并行任务添加到就绪任务集合内。
信息素的局部更新发生在蚂蚁构建优先级队列的过程中。在每个蚂蚁构建完成一个优先级队列后,该队列所有邻接的任务对均需要进行信息素的局部更新操作。信息素的局部更新可以使得其他蚂蚁在构建优先级队列时更可能选择其他的任务,从而构建不同的优先级队列,增加种群的多样性,避免方法的早熟收敛。
具体地,当将任务tm添加到第i个优先级序列之后,需要对任务tm对应的信息素进行局部更新,具体地,通过下列公式(4)进行信息素局部更新:
τi,j=(1-α)×τi,j+α×τ0 (4)
其中,α为信息素衰减系数;τ0=1/(|T|×fHEET),τi,m表示当任务ti被选择后,任务tm被选中的意向。
在本发明实施例中,当第i个蚂蚁将包括的T个任务全部添加到构建的第i个优先级序列之后,如i不大于N时,则需要继续重复执行。比如,第i+1个蚂蚁需要将包括的T个任务按照上述公式依次添加到构建的第i+1个优先级序列中,直至i+n等于N,则工作流调度的第一个阶段第一次执行完成。即优先级队列种群包括的N个蚂蚁将T个任务依次构建了N个优先级序列。
进一步地,当N个蚂蚁将T个任务依次构建了N个优先级序列之后,则需要利用优先级队列种群中保存的初始任务分配序列计算每个蚂蚁的适应度值。具体地,当优先级队列种群所有的蚂蚁都构建完各自的优先级队列之后,根据优先级队列种群中保存的任务分配序列计算每个蚂蚁各自构建优先级序列的完成时间。只有完成时间最小的蚂蚁具有更新全局信息素的资格。
需要说明的是,若优先级队列种群第一次将T个任务依次构建成N个优先级序列时,则在计算每个蚂蚁的适应度值时,可以利用优先级队列种群中保存的初始任务分配序列,若优先级队列种群第二次将T个任务依次构建成N个优先级序列时,则在计算每个蚂蚁的适应度值时,优先级队列种群中保存可能是更换过的任务分配序列,更换的任务分配序列来自于分配序列种群。
具体地,通过下列公式进行信息素全局更新:
τi,j=(1-ρ)×τi,j+ρ×Δτi,j (5)
Δτi,j=1/fbest (7)
其中,ρ为信息素增强系数,τi,j表示当任务ti被选择后,任务tj被选中的意向;fbest为最优解的目标值,即计算得到的工作流的完成时间。
进一步地,将进行信息素全局更新的最小适应度值确定为第一适应度值,并将第一适应度值对应的优先级序列发送至分配序列种群,从而使得分配序列种群根据该优先级序列替换分配序列保存的初始优先级序列。
需要说明的是,若分配序列种群是第一次接收到优先级序列,则用该优先级序列替换分配序列种群保存的初始优先级序列;若分配序列种群并非第一次接收到优先级序列,则分配序列种群将接收的优先级序列替换分配序列种群保存上一次接收到的优先级序列。
在步骤102中,分配序列种群包括有M个蚂蚁,相应地,工作流包括有T个任务,由于工作流任务分配序列优化部分持续优化任务的分配序列,调整分配给任务的处理器,即将T个任务分别在每个蚂蚁上执行一次迭代优化,将T个任务分别与处理器,从而在每个蚂蚁上形成一个任务分配序列。
需要说明的是,任务分配序列种群中的蚂蚁需要构建任务的分配序列,确定每个任务分配的处理器。因此建立一个τT×P的分配信息素矩阵,其中τi,k表示任务ti对处理器pk的偏爱程度。
具体地,M个蚂蚁将T个任务以及处理器的分配对构建的T个任务分配序列,主要包括以下步骤:
针对第I个蚂蚁,先构建一个空的第I个任务分配序列,然后将待配对的处理器的就绪时间均确定为零。
进一步地,按照分配序列种群内的任务调度次序,为第I个蚂选择一个任务,即根据初始优先级队列确定分配序列种群中第I个蚂蚁所对应的T个任务中的某一个任务ti,然后根据状态转换规则从处理器集合中选择一个处理器pk分配给ti,其中,任务ti选择处理器pj的概率通过下列公式(8)表示:
其中,τi,j表示当任务ti被选择后,任务tj被选中的意向;β为信息素与启发式信息相对重要指数;任务tj在处理器pk上的启发式信息定义为完成时间的倒数1/EFT(ti,pk)。
相应地,状态转换规则通过下列公式(9)表示:
其中,q0为探索与探测能力相对重要指数;τi,j表示当任务ti被选择后,任务tj被选中的意向;q为利用标准随机函数生成的一个位于[0,1]之间的值;任务tj在处理器pk上的启发式信息定义为完成时间的倒数1/EFT(ti,pk)。
进一步地,将任务ti与处理器pk的分配对(ti,pk)添加到构建的第I个任务分配序列,然后对处理器pk当前对应的信息素进行局部更新。
需要说明的是,在本发明实施例中,对处理器pk的信息素进行局部更新通过下列公式(10)表示:
其中,Pred(ti)是ti的前驱任务集合,FT(tj)是任务tj的实际完成时间,TT(tj,ti)是数据的传输时间,avail[pk]是pk执行完上一个分配任务的时间,也就是处理器pk的就绪时间,EFT(ti,pk)是任务ti在处理器pk的最早完成时间,任务tj在处理器pk上的启发式信息定义为完成时间的倒数1/EFT(ti,pk);ρ为信息素增强系数,τi,j表示当任务ti被选择后,任务tj被选中的意向;fbest为工作流的完成时间。
需要说明的是,在本发明实施例中,由于EFT(ti,pk)受到之前分配到pk上的任务的影响,因此,不同蚂蚁在构建分配序列时,计算得到的启发式信息值是不同的。
需要说明的是,信息素的局部更新发生在蚂蚁构建优任务分配序列过程中。在每个蚂蚁构建完成一个任务分配序列后,该队列所有邻接的任务对均需要进行信息素的局部更新操作。信息素的局部更新可以使得其他蚂蚁在构建任务分配序列时更可能选择其他的任务,从而构建不同的任务分配序列,增加种群的多样性,避免方法的早熟收敛。
在本发明实施例中,当第I个蚂蚁将包括的T个任务与处理器的分配对全部添加到构建的第I个任务分配序列之后,如I不大于M时,则需要继续重复执行。比如,第I+1个蚂蚁需要将包括的T个任务按照上述流程依次与处理器的分配对添加到构建的第I+1个优先级序列中,直至I+m等于M,则工作流调度的第二个阶段第一次执行完成。即分配序列种群包括的M个蚂蚁将T个任务与处理器的分配对依次构建了M个任务分配序列。
进一步地,当M个蚂蚁将T个任务与处理器的分配对依次构建了M个任务分配序列之后,则需要利用分配序列种群中保存的初始优先级序列计算每个蚂蚁的适应度值。具体地,当分配序列种群所有的蚂蚁都构建完各自的任务分配序列之后,根据分配序列种群中保存的优先级序列计算每个蚂蚁各自构建任务分配序列的完成时间。只有完成时间最小的蚂蚁具有更新全局信息素的资格。
需要说明的是,若分配序列种群第一次将T个任务依次构建成M个任务分配序列时,则在计算每个蚂蚁的适应度值时,可以利用分配序列种群中保存的初始优先级序列,若分配序列种群第二次将T个任务依次构建成M个任务分配序列时,则在计算每个蚂蚁的适应度值时,分配序列种群中保存可能是更换过的优先级序列,更换的优先级序列来自于优先级队列种群。
具体地,通过下列公式进行信息素全局更新:
τi,j=(1-ρ)×τi,j+ρ×Δτi,j (5)
Δτi,j=1/fbest (7)
其中,ρ为信息素增强系数,τi,j表示当任务ti被选择后,任务tj被选中的意向;fbest为最优解的目标值,即计算得到的工作流的完成时间。
进一步地,将进行信息素全局更新的最小适应度值确定为第二适应度值,并将第二适应度值对应的任务分配序列发送至优先级队列种群,从而使得优先级队列种群根据该任务分配序列替换优先级队列种群保存的初始分配序列。
需要说明的是,若优先级队列种群是第一次接收到任务分配序列,则用该任务分配序列替换优先级队列种群保存的初始分配序列;若优先级队列种群并非第一次接收到任务分配序列,则优先级队列种群将接收的任务分配序列替换优先级队列种群保存上一次接收到的任务分配序列。
为了更清楚的介绍本发明实施例提供的调度方法,以下结合图4提供的基于多种群的协同进化HCS工作流调度方法流程示意图,来详细介绍该调度方法。如图4所示,该基于多种群的协同进化HCS工作流调度方法主要包括三个阶段:初始化阶段、迭代阶段和结束阶段。
初始化阶段:初始化方法用到的所有参数,比如单个种群的个体(蚁群算法中称为蚂蚁)数目K,信息素与启发式信息相对重要指数β,探索与探测能力相对重要指数q0,信息素衰减系数α和增强系数ρ,以及方法的最大迭代次数MAX。
步骤201,设置优先级队列种群的初始化次序信息素矩阵,优先级队列种群的规模为K,初始迭代次数g=0;其中,初始化次序信息素矩阵中的原始值为τ0;
步骤202,设置分配序列种群的初始化分配信息素矩阵,分配序列种群的规模为K初始迭代次数g=0;其中,初始化分配信息素矩阵中的原始值为τ0;
迭代阶段:
在一次完整的迭代中:
步骤203,优先级队列种群中的所有蚂蚁都要构建与蚂蚁对应的优先级队列,设置k=1。
步骤204,取优先级队列种群的第k个蚂蚁,为该蚂蚁构建任务优先级队列。构建过程如下:构建一个空的优先级队列,设置任务索引i=1;
步骤205,判断i与最大任务数目|T|的关系,若i小于最大任务数目|T|,则执行步骤207;如果i达到最大任务数目|T|,则执行步骤206;
步骤206,进行信息素的局部更新;
步骤207,根据信息素与启发式信息选择第i个任务,加入优先级队列中;
步骤208,任务索引i=i+1;
步骤209,k=k+1,如果k=K,表明所有蚂蚁均已构建任务优先级队列;若k<K,则转至步骤204继续执行;
步骤210,此时所有的任务均已被加入至优先级队列中,任务优先级队列构建完成。利用种群内保存的任务分配序列计算该蚂蚁构建的解的适应度值(即计算工作流应用的完成时间)。优先级队列种群进行信息素的全局更新操作
步骤211,分配序列种群中的蚂蚁都要构建与蚂蚁对应的任务分配序列,设置k=1。
步骤212,取分配序列种群的第k个蚂蚁,为该蚂蚁构建任务分配序列。构建过程如下:构建一个空的序列,设置任务索引j=1;
步骤213,判断j与最大任务数目|T|的关系,若j小于最大任务数目|T|,则执行步骤215;如果j达到最大任务数目|T|,则执行步骤214;
步骤214,进行信息素的局部更新;
步骤215,根据信息素与启发式信息选择第j个任务,加入优先级队列中;
步骤216,任务索引j=j+1;
步骤217,k=k+1,如果k=K,表明所有蚂蚁均已构建任务分配序列;若k<K,则转至步骤212继续执行;
步骤218,此时所有的任务均已被加入至任务分配序列中,任务分配序列构建完成。利用种群内保存的任务优先级队列计算该蚂蚁构建的解的适应度值(即计算工作流应用的完成时间)。分配序列种群进行信息素的全局更新操作。
步骤219,优先级队列种群更新种群内保存的任务分配序列,分配序列种群更新种群内保存的任务优先级队列(任务调度次序)。
设置迭代次数g=g+1,如果达到最大迭代次数,即g=MAX,方法结束迭代,进入结束阶段。否则,转至步骤203或者步骤211继续执
结束阶段:
步骤220,优先级队列种群输出具有最小完成时间的优先级队列,分配序列种群输出具有最小完成时间的分配序列。
本发明实施例提供的调度方法在异构计算系统中,针对现有的优化完成时间的元启发式调度方法一般只优化任务的优先级队列或任务的分配序列,不能获取令人满意的调度方案问题,结合多种群的协同优化技术,同时优化任务的优先级队列和任务的分配序列,增强方法搜索最优调度方案的能力,生成具有更小完成时间的调度。同时,多种群协同优化可以增强方法对不同调度问题持续产生优秀解决方案的能力,降低方法对工作流结构以及规模的敏感性,增强方法的鲁棒性,提升方法的实用性。
基于同一发明构思,本发明实施例提供了一种异构系统工作流调度装置,由于该装置解决技术问题的原理与一种异构系统工作流调度方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
本发明实施例还提供了一种异构系统工作流调度装置,如图5所示,该装置主要包括第一得到单元501,第二得到单元502和分配单元503。
具体地,第一得到单元501,用于根据优先级队列种群的次序信息素矩阵和初始分配序列,得到所述优先级队列种群包括的N个蚂蚁以及T个任务的N个优先级序列;
第二得到单元502,用于根据分配序列种群的分配序列信息素矩阵和初始优先级序列,得到所述分配序列种群包括的M个蚂蚁将T个任务以及处理器的分配对构建的M个任务分配序列;
分配单元503,用于将所述N个优先级序列中具有最小适应度值的优先级序列发送至所述分配序列种群,将所述M个任务分配序列中具有最小适应度值的任务分配序列发送至所述优先级队列种群。
优选地,所述第一得到单元501具体用于:
根据所述初始分配序列将所述优先级队列种群的第i个蚂蚁的入口任务添加到构建的第i个优先级序列中;
当所述第i个优先级序列的末尾为任务ti时,从就绪任务集合内根据状态转换规则选择任务tm添加到所述第i个优先级序列的末尾;
将所述任务tm从所述就绪任务集合内移除,将所述任务tm之后可并行执行的至少两个任务添加到所述就绪任务集合内,对所述任务tm当前对应的信息素进行局部更新;
当所述优先级队列种群包括的N个蚂蚁均将所述T个任务添加到所述N个优先级序列中之后,根据所述优先级队种群的初始分配序列确定每个所述优先级序列的第一适应度值,将具有最小第一适应度值的所述优先级序列进行信息素全局更新。
优选地,所述状态转换规则如下所示:
其中,任务ti选择tj的概率p(i,j)如下所示:
其中,τi,j表示当任务ti被选择后,任务tj被选中的意向;urank(tj)为任务的自底向上优先级值;q为位于[0,1]之间的值;q0为探索与探测能力相对重要指数;β为信息素与启发式信息相对重要指数。
优选地,通过下列公式进行信息素局部更新:
τi,j=(1-α)×τi,j+α×τ0
通过下列公式进行信息素局部更新:
τi,j=(1-ρ)×τi,j+ρ×Δτi,j
Δτi,j=1/fbest
其中,α为信息素衰减系数;τ0=1/(|T|×fHEET),ρ为信息素增强系数,τi,j表示当任务ti被选择后,任务tj被选中的意向;fbest为工作流的完成时间。
优选地,所述分配单元503具体用于:
将具有最小第一适应度值的所述优先级序列进行信息素全局更新,得到优化优先级序列,并将所述优化优先级序列发送至所述分配序列种群,以使所述分配序列总群根据所述优化优先级序列替换所述初始优先级序列。
优选地,所述第二得到单元502具体用于:
根据所述初始优先级队列确定所述分配序列种群的第I个蚂蚁的任务ti,根据状态转换规则从处理器集合选择处理器pk分配给所述任务ti;
将所述任务ti与处理器pk的分配对(ti,pk)添加到构建的第I个任务分配序列,对所述处理器pk当前对应的信息素进行局部更新;
当所述分配序列种群包括的M个蚂蚁均将T个任务与处理器的分配对添加到M个任务分配序列之后,根据所述分配序列种群的初始优先级序列确定每个所述任务分配序列的第二适应度值,将具有最小第二适应度值的所述任务分配序列进行信息素全局更新。
优选地,通过下列公式进行信息素局部更新:
EFT=(ti,pk)=maxtj∈pred(ti){FT(tj)+TT(tj,ti),avail[pk]}
通过下列公式进行信息素局部更新:
τi,j=(1-ρ)×τi,j+ρ×Δτi,j
Δτi,j=1/fbest
其中,FT(tj)是任务tj的实际完成时间,TT(tj,ti)是数据的传输时间,avail[pk]是处理器pk的就绪时间,EFT(ti,pk)是任务ti在处理器pk的最早完成时间,任务tj在处理器pk上的启发式信息定义为完成时间的倒数1/EFT(ti,pk);ρ为信息素增强系数,τi,j表示当任务ti被选择后,任务tj被选中的意向;fbest为工作流的完成时间。
优选地,所述分配单元503具体用于:
将具有最小第二适应度值的所述任务分配序列进行信息素全局更新,得到优化分配序列,并将所述优化分配序列发送至所述优先级队列种群,以使所述优先级队列种群根据所述优化分配序列替换所述初始分配序列。
优选地,所述次序信息素矩阵和所述分配序列信息素矩阵如下所示:
τ0=1/(|T|×fHEET)
其中,τ0为所述次序信息素矩阵和所述次序信息素矩阵的元素值,|T|为工作流包括的任务的数目,fHEET为利用HEFT调度该工作流应用的完成时间。
应当理解,以上一种异构系统工作流调度装置包括的单元仅为根据该设备装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的一种异构系统工作流调度装置所实现的功能与上述实施例提供的一种异构系统工作流调度方法一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例一中已做详细描述,此处不再详细描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种异构系统工作流调度方法,其特征在于,包括:
根据优先级队列种群的次序信息素矩阵和初始分配序列,得到所述优先级队列种群包括的N个蚂蚁以及T个任务的N个优先级序列;
根据分配序列种群的分配序列信息素矩阵和初始优先级序列,得到所述分配序列种群包括的M个蚂蚁将T个任务以及处理器的分配对构建的M个任务分配序列;
将所述N个优先级序列中具有最小适应度值的优先级序列发送至所述分配序列种群,将所述M个任务分配序列中具有最小适应度值的任务分配序列发送至所述优先级队列种群。
2.如权利要求1所述的方法,其特征在于,所述得到所述优先级队列种群包括的N个蚂蚁以及T个任务的N个优先级序列,具体包括:
根据所述初始分配序列将所述优先级队列种群的第i个蚂蚁的入口任务添加到构建的第i个优先级序列中;
当所述第i个优先级序列的末尾为任务ti时,从就绪任务集合内根据状态转换规则选择任务tm添加到所述第i个优先级序列的末尾;
将所述任务tm从所述就绪任务集合内移除,将所述任务tm之后可并行执行的至少两个任务添加到所述就绪任务集合内,对所述任务tm当前对应的信息素进行局部更新;
当所述优先级队列种群包括的N个蚂蚁均将所述T个任务添加到所述N个优先级序列中之后,根据所述优先级队种群的初始分配序列确定每个所述优先级序列的第一适应度值,将具有最小第一适应度值的所述优先级序列进行信息素全局更新。
5.如权利要求2所述的方法,其特征在于,所述将所述N个优先级序列中具有最小适应度值的优先级序列发送至所述分配序列种群,具体包括:
将具有最小第一适应度值的所述优先级序列进行信息素全局更新,得到优化优先级序列,并将所述优化优先级序列发送至所述分配序列种群,以使所述分配序列总群根据所述优化优先级序列替换所述初始优先级序列。
6.如权利要求1所述的方法,其特征在于,所述得到所述分配序列种群包括的M个蚂蚁将T个任务以及处理器的分配对构建的T个任务分配序列,具体包括:
根据所述初始优先级队列确定所述分配序列种群的第I个蚂蚁的任务ti,根据状态转换规则从处理器集合选择处理器pk分配给所述任务ti;
将所述任务ti与处理器pk的分配对(ti,pk)添加到构建的第I个任务分配序列,对所述处理器pk当前对应的信息素进行局部更新;
当所述分配序列种群包括的M个蚂蚁均将T个任务与处理器的分配对添加到M个任务分配序列之后,根据所述分配序列种群的初始优先级序列确定每个所述任务分配序列的第二适应度值,将具有最小第二适应度值的所述任务分配序列进行信息素全局更新。
8.如权利要求6所述的方法,其特征在于,所述将所述M个任务分配序列中具有最小适应度值的任务分配序列发送至所述优先级队列种群,具体包括:
将具有最小第二适应度值的所述任务分配序列进行信息素全局更新,得到优化分配序列,并将所述优化分配序列发送至所述优先级队列种群,以使所述优先级队列种群根据所述优化分配序列替换所述初始分配序列。
9.如权利要求1所述的方法,其特征在于,所述次序信息素矩阵和所述分配序列信息素矩阵如下所示:
τ0=1/(|T|×fHEET)
其中,τ0为所述次序信息素矩阵和所述次序信息素矩阵的元素值,|T|为工作流包括的任务的数目,fHEET为利用HEFT调度该工作流应用的完成时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010660377.5A CN111813525B (zh) | 2020-07-09 | 2020-07-09 | 一种异构系统工作流调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010660377.5A CN111813525B (zh) | 2020-07-09 | 2020-07-09 | 一种异构系统工作流调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813525A true CN111813525A (zh) | 2020-10-23 |
CN111813525B CN111813525B (zh) | 2024-05-03 |
Family
ID=72843273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010660377.5A Active CN111813525B (zh) | 2020-07-09 | 2020-07-09 | 一种异构系统工作流调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813525B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113344548A (zh) * | 2021-06-30 | 2021-09-03 | 深圳前海微众银行股份有限公司 | 一种工作流生成方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060184470A1 (en) * | 2004-11-24 | 2006-08-17 | Nanyang Polytechnic | Method and system for timetabling using pheromone and hybrid heuristics based cooperating agents |
CN107133088A (zh) * | 2017-04-19 | 2017-09-05 | 武汉科技大学 | 一种基于粒子群算法的多核系统任务调度方法 |
CN109634742A (zh) * | 2018-11-15 | 2019-04-16 | 华南理工大学 | 一种基于蚁群算法的时间约束科学工作流优化方法 |
CN111238481A (zh) * | 2020-01-21 | 2020-06-05 | 华南理工大学 | 一种多路径规划方法和系统 |
US20200201677A1 (en) * | 2018-04-11 | 2020-06-25 | Shenzhen University | Cloud computing task allocation method and device, apparatus, and storage medium |
-
2020
- 2020-07-09 CN CN202010660377.5A patent/CN111813525B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060184470A1 (en) * | 2004-11-24 | 2006-08-17 | Nanyang Polytechnic | Method and system for timetabling using pheromone and hybrid heuristics based cooperating agents |
CN107133088A (zh) * | 2017-04-19 | 2017-09-05 | 武汉科技大学 | 一种基于粒子群算法的多核系统任务调度方法 |
US20200201677A1 (en) * | 2018-04-11 | 2020-06-25 | Shenzhen University | Cloud computing task allocation method and device, apparatus, and storage medium |
CN109634742A (zh) * | 2018-11-15 | 2019-04-16 | 华南理工大学 | 一种基于蚁群算法的时间约束科学工作流优化方法 |
CN111238481A (zh) * | 2020-01-21 | 2020-06-05 | 华南理工大学 | 一种多路径规划方法和系统 |
Non-Patent Citations (2)
Title |
---|
侯守明;张玉珍;: "基于时间负载均衡蚁群算法的云任务调度优化", 测控技术, no. 07 * |
张则强;程文明;钟斌;王金诺;: "求解装配线平衡问题的一种改进蚁群算法", 计算机集成制造系统, no. 08 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113344548A (zh) * | 2021-06-30 | 2021-09-03 | 深圳前海微众银行股份有限公司 | 一种工作流生成方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111813525B (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | A distributed method for dynamic multi-robot task allocation problems with critical time constraints | |
Gupta et al. | Load balancing based task scheduling with ACO in cloud computing | |
JP4781089B2 (ja) | タスク割り当て方法およびタスク割り当て装置 | |
CN108566659B (zh) | 一种基于可靠性的5g网络切片在线映射方法 | |
JPH09171503A (ja) | 並列処理方法および並列処理装置 | |
CN113821318B (zh) | 一种物联网跨域子任务组合协同计算方法及系统 | |
CN109522104B (zh) | 利用差分进化算法优化Iaas两目标任务调度的方法 | |
CN109857532B (zh) | 基于蒙特卡洛树搜索的dag任务调度方法 | |
CN111274036A (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN115330189A (zh) | 一种基于改进飞蛾火焰算法的工作流优化调度方法 | |
US11941528B2 (en) | Neural network training in a distributed system | |
CN115994567A (zh) | 一种深度神经网络模型并行计算任务异步调度方法 | |
CN117097806A (zh) | 一种微服务调用图部署和请求路由联合优化方法及系统 | |
CN113741999B (zh) | 一种基于移动边缘计算的面向依赖型任务卸载方法及装置 | |
CN117707795B (zh) | 基于图的模型划分的边端协同推理方法及系统 | |
CN111813525A (zh) | 一种异构系统工作流调度方法 | |
CN117670005A (zh) | 基于蚁群算法的超算互联网多目标工作流优化方法及系统 | |
Entezari-Maleki et al. | A genetic algorithm to increase the throughput of the computational grids | |
CN117632488A (zh) | 基于云边端协同的多用户细粒度任务卸载调度方法及装置 | |
CN112035234A (zh) | 分布式批量作业分配方法及装置 | |
CN116996941A (zh) | 基于配网云边端协同的算力卸载方法、装置及系统 | |
CN114980216A (zh) | 基于移动边缘计算的依赖型任务卸载系统及方法 | |
CN115421885A (zh) | 一种分布式多目标云任务的调度方法、装置及云服务系统 | |
CN114860417A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |