CN105893145B - 一种基于遗传算法的任务调度方法及装置 - Google Patents
一种基于遗传算法的任务调度方法及装置 Download PDFInfo
- Publication number
- CN105893145B CN105893145B CN201610173808.9A CN201610173808A CN105893145B CN 105893145 B CN105893145 B CN 105893145B CN 201610173808 A CN201610173808 A CN 201610173808A CN 105893145 B CN105893145 B CN 105893145B
- Authority
- CN
- China
- Prior art keywords
- gene order
- gene
- task
- order
- equal
- 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.)
- Active
Links
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/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/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Physics & Mathematics (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Physiology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Genetics & Genomics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于遗传算法的任务调度方法及装置,用于解决如何选择最优的任务与处理器之间调度方案的问题,包括:输入N个第一基因序列集合,分别从所述N个第一基因序列集合中,选择出适应值大于或等于所述第一基因序列集合使用的阈值的基因序列,将选择出的基因序列划分成M个第二基因序列集合,对于每个第二基因序列集合,将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理,将基因交叉处理后得到的基因序列作为下一次迭代过程的输入,在所述迭代过程达到设定条件时,停止迭代,从得到的基因序列中,选择一个基因序列作为任务调度方案。由于多组基因序列同时进行迭代处理,缩短了处理时间,提高了处理效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于遗传算法的任务调度方法及装置。
背景技术
随着信息社会发展带来的计算任务的增长,导致大量待计算的任务等待,同时,计算资源一般为处理器性能不同的硬件,不同的任务在不同的硬件设备上的计算开销是不同的,因此,为了提高硬件设备的利用率、降低整体的计算开销,任务调度方案的优化问题极为重要。
由达尔文物种进化理论可知,每个种群中的基因将以一定概率被遗传给下一代,从而保持该种群的特征不会发生大的改变,且根据优胜劣汰的原理,优良的基因会被更多地保留;如此经过若干代的进化以后,整个种群中的基因会向适应值好的方向发展,最终整个种群达到最好的基因库。
遗传算法是根据进化论与遗传变异理论为基础求解全局最优解的仿生型算法。目前常用的遗传算法为串行遗传算法,串行遗传算法依次包括如下步骤:
确定阈值;计算基因序列集合中的每个基因序列的适应值;从基因序列集合中选择出适应值大于阈值的基因序列;将选择出的基因序列进行基因交叉;以及基因变异等,得到新的基因序列集合。
其中,所述基因变异是指基因序列中的某个基因值发生变化;例如:任意基因序列A(1253654)中的第N个基因变异,假如N为3,若序列A中的第3个基因值由5随机变成3,则所述基因序列A变异为A(1233654)。
由于基因序列集合中包含大量的基因序列,采用串行遗传算法的处理周期长,处理效率低,无法满足实时任务的要求,因此,如何选择最优的任务与处理器之间的调度方案是目前需要解决的问题。
发明内容
本发明的目的是提供一种基于遗传算法的任务调度方法及装置,以解决如何选择最优的任务与处理器之间的调度方案的问题。
本发明的目的是通过以下技术方案实现的:
一种基于遗传算法的任务调度方法,包括:
输入N个第一基因序列集合,分别从所述N个第一基因序列集合中,选择出适应值大于或等于所述第一基因序列集合使用的阈值的基因序列,其中,所述第一基因序列集合使用的阈值是根据所述第一基因序列集合包含的基因序列的适应值确定的,所述基因序列用于表征需要处理的任务与处理所述任务的处理器之间的对应关系,所述适应值用于表征基因序列在任务调度中处理任务的能力,N为大于或等于2的正整数;
将选择出的基因序列划分成M个第二基因序列集合,对于每个第二基因序列集合,将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理,将基因交叉处理后得到的基因序列作为下一次迭代过程的输入,M为正整数;
在所述迭代过程达到设定条件时,停止迭代,从得到的基因序列中,选择一个基因序列作为任务调度方案。
基于与方法同样的发明构思,本发明实施例还提供一种基于遗传算法的任务调度装置,包括:
第一模块,用于输入N个第一基因序列集合,分别从所述N个第一基因序列集合中,选择出适应值大于或等于所述第一基因序列集合使用的阈值的基因序列,其中,所述第一基因序列集合使用的阈值是根据所述第一基因序列集合包含的基因序列的适应值确定的,所述基因序列用于表征需要处理的任务与处理所述任务的处理器之间的对应关系,所述适应值用于表征基因序列在任务调度中处理任务的能力,N为大于或等于2的正整数;
第二模块,用于将选择出的基因序列划分成M个第二基因序列集合,对于每个第二基因序列集合,将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理,将基因交叉处理后得到的基因序列作为下一次迭代过程的输入,M为正整数;
第三模块,用于在所述迭代过程达到设定条件时,停止迭代,从得到的基因序列中,选择一个基因序列作为任务调度方案。
本发明实施例提供的一种基于遗传算法的任务调度方法及装置中,首先输入N个第一基因序列集合,分别从所述N个第一基因序列集合中,选择出适应值大于或等于所述第一基因序列集合使用的阈值的基因序列,然后将选择出的基因序列划分成M个第二基因序列集合,对于每个第二基因序列集合,将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理,将基因交叉处理后得到的基因序列作为下一次迭代过程的输入,在所述迭代过程达到设定条件时,停止迭代,从得到的基因序列中,选择一个基因序列作为任务调度方案。由于多组基因序列同时进行迭代处理,缩短了处理时间,提高了处理效率。
附图说明
图1为本发明实施例提供的一种基于遗传算法的任务调度方法的流程图;
图2为本发明实施例提供的一种并行遗传算法的示意图;
图3为本发明实施例提供的一种CPU端和高性能硬件设备端数据传输示意图;
图4为本发明实施例提供的又一种基于遗传算法的任务调度方法的流程图;
图5为本发明实施例提供的一种基于遗传算法的任务调度装置的示意图。
具体实施方式
下面将结合附图,对本发明实施例提供的技术方案进行详细说明。
本发明实施例提供了一种基于遗传算法的任务调度方法,如图1所示,包括如下操作:
步骤100、输入N个第一基因序列集合,分别从所述N个第一基因序列集合中,选择出适应值大于或等于所述第一基因序列集合使用的阈值的基因序列,其中,所述第一基因序列集合使用的阈值是根据所述第一基因序列集合包含的基因序列的适应值确定的,所述基因序列用于表征需要处理的任务与处理所述任务的处理器之间的对应关系,所述适应值用于表征基因序列在任务调度中处理任务的能力,N为大于或等于2的正整数。
在本发明实施例中,适应值用于表征基因序列在任务调度中处理任务的能力,基因序列的适应值可以通过所述需要处理的任务在所述处理器上的运行开销以及所述需要处理的任务的实时要求系数计算得到的;其中,所述运行开销是指基因序列中每个任务通过处理器处理的时间;所述实时要求系数是指需要处理的任务对响应时间的要求程度。
可选的,第一基因序列集合中包含的基因序列的数量可以相同也可以不同,本发明实施例中对其不作限定。
步骤110、将选择出的基因序列划分成M个第二基因序列集合,对于每个第二基因序列集合,将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理,将基因交叉处理后得到的基因序列作为下一次迭代过程的输入,M为正整数。
可选的,第二基因序列集合中包含的基因序列的数量可以相同也可以不同,本发明实施例中对其不作限定。
可选的,M的值可以等于N的值,也可以小于N的值,本发明实施例中对其不作限定。
本步骤中,在进行基因交叉时,所选择的第二基因序列集合中的任一基因序列均可以与自身以外的其他基因序列进行基因交叉,从而能有效的避免出现局部最优基因序列,得到更合适的的最优基因序列。并且,本步骤中根据基因交叉后得到的基因序列确定下一次迭代过程中使用的阈值,每次迭代后下一次使用的阈值逐渐提高,因为将每一次基因交叉得到基因序列的适应值的平均值做为下一次迭代过程中使用的阈值,通过该阈值去掉适应值小于该阈值的基因序列,下一次进行交叉的基因序列的适应值都是大于等于该阈值的基因序列,因此每次迭代后下一次使用的阈值比上一次提高了,加快了最优基因序列的搜索速度。
步骤120、在所述迭代过程达到设定条件时,停止迭代,从得到的基因序列中,选择一个基因序列作为任务调度方案。
本发明实施例提供的一种基于遗传算法的任务调度方法,首先输入N个第一基因序列集合,分别从所述N个第一基因序列集合中,选择出适应值大于或等于所述第一基因序列集合使用的阈值的基因序列,然后将选择出的基因序列划分成M个第二基因序列集合,对于每个第二基因序列集合,将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理,将基因交叉处理后得到的基因序列作为下一次迭代过程的输入,在所述迭代过程达到设定条件时,停止迭代,从得到的基因序列中,选择一个基因序列作为任务调度方案。由于多组基因序列同时进行迭代处理,缩短了处理时间,提高了处理效率。
举例说明:假设给定处理器的集合记为P={p0,p1,....,pn-1}和在给定的处理器上执行的任务的集合记为T={t0,t1,....,tm-1},运行时间EP(ti,pj)=ti*pj,运行时间EP(ti,pj)是指任务ti在处理器pi上的运行开销,TP(ti)是任务ti的实时要求系数;
适应值f(T→P)定义为:
假设有3个处理器,6个任务,对应的运行时间EP矩阵如下表1所示:
表1
t<sub>1</sub> | t<sub>2</sub> | t<sub>3</sub> | t<sub>4</sub> | t<sub>5</sub> | t<sub>6</sub> | |
p<sub>1</sub> | 3 | 15 | 6 | 24 | 21 | 13 |
p<sub>2</sub> | 6 | 34 | 12 | 28 | 34 | 5 |
p<sub>3</sub> | 4 | 25 | 2 | 34 | 2 | 9 |
例如,基因序列为323121,序列中的每一个数值“1”、“2”、“3”分别代表处理器的编号,序列的长度代表任务的个数,假设实时要求系数都为1,基因序列323121总的运行开销为:4+34+2+24+34+13=111。根据公式1.1计算基因序列323121的适应值为:1/4+1/34+1/2+1/24+1/34+1/13=4919/5304;任务的运行总开销最小,则该任务对环境的适应值越高;当一个处理器需要处理多个任务时,实时要求系数高的任务优先处理。
一种可能的实现方式中,对于每个第二基因序列集合,将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理之后,包括:
从基因交叉处理前的基因序列和基因交叉处理后得到的基因序列中,选择R个基因序列,并将得到的R个基因序列作为下一次迭代过程的输入,R为正整数。
举例说明,假设基因交叉处理前的基因序列为123123、132132和312312,基因交叉处理后得到的基因序列为123132、123312和132312;从123123、132132、312312、123132、123312和132312六个基因序列中选择三个基因序列作为下一次迭代过程的输入。
从基因交叉处理前的基因序列和基因交叉处理后得到的基因序列中,选择P个基因序列时,可以采用以下方式:
将基因交叉处理前的基因序列和基因交叉处理后得到的基因序列,按照适应值的从大到小进行排序,选择前P个基因序列。
当然,除了上次选择方式,还可以采用其他方式,如随机选择等,本发明实施例不对选择方式进行限定。
本发明实施例中,将各基因序列的适应值的平均值确定为所述第一基因序列集合使用的阈值,可以在下一次迭代过程中去掉适应值小于该阈值的基因序列,下一次进行交叉的基因序列的适应值都是大于或等于该阈值的基因序列,加快了最优基因序列的搜索速度。
本发明实施例中,初始迭代过程中,初始阈值为随机生成的Z个基因序列的适应值的平均值。
可选的,所述设定条件包括以下两种可选的方式:
方式1、迭代次数达到设定次数。
具体的,若所述设定条件为迭代次数达到设定次数,则当迭代次数达到设定次数后,若基因序列集合包括多个基因序列,则选择其中任一基因序列作为任务调度方案;若迭代过程后得到的基因序列集合中仅包含一个基因序列,则所述基因序列集合中仅包含的一个基因序列即为任务调度方案。
该方式下,设定次数是本领域技术人员按经验设定,本发明实施例对其不作限定。
方式2、任一次迭代过程后得到的基因序列的数量为一个。
具体的,若所述设定条件为任一次迭代过程后得到的基因序列的数量为一个,则选择该基因序列作为任务调度方案。
本发明实施例中可以采用上述任一方式作为设定条件,当然,本发明实施例还可以采用其他设定条件,本发明实施例不对设定条件的具体实现方式进行限定。
在实施中,步骤110中将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理,包括:
将所述任意两个基因序列中的一个基因序列包含的Q个基因,与另一个基因序列中同一位置的Q个基因进行对调,其中,Q为大于或等于1的整数,且Q小于所述任意两个基因序列包含的基因的个数的最小值。
举例说明:假设任意两个基因序列分别为:34567与12489,将这两个基因序列进行基因交叉时,可选择后三个基因进行交叉,得到两个新的基因序列,分别为24489与12567。
可选的,步骤120中从得到的基因序列中,选择一个基因序列作为任务调度方案,包括以下三种方式:
方式一、从得到的基因序列中,选择任务的运行开销最小的基因序列,作为任务调度方案;
举例说明:假设迭代过程结束后得到的基因序列中有323121、333132和312133三个基因序列,处理器与任务对应的运行时间矩阵如表1所示,基因序列323121的运行开销为4+34+2+24+34+13=111,基因序列333132的运行开销为4+25+2+24+2+5=62,基因序列312133的运行开销为4+15+12+24+2+9=66,可知基因序列333132的运行开销最小,因此将基因序列333132作为任务调度方案。
选择运行开销最小的基因序列,可以使总的运行开销最小。
方式二、从所述得到的基因序列中,选择不同处理器的使用数量最高的基因序列,作为任务调度方案;
举例说明:假设迭代过程结束后得到的基因序列中有323121、333133和332233三个基因序列,基因序列323121使用了三个不同的处理器,而基因序列333133和332233使用了两个不同的处理器,因此基因序列323121作为任务调度方案。
选择不同处理器使用数量最多的基因序列,可以使不同的处理器得到充分利用。
方式三、从所述得到的基因序列中,选择任务的运行开销小于或等于设定的运行开销阈值,且不同处理器的使用数量大于或等于设定的门限值的基因序列,作为任务调度方案。
举例说明:假设迭代过程结束后得到的基因序列中有111133、333132和312133三个基因序列,处理器与任务对应的运行时间矩阵如表1所示,基因序列311133的运行开销为3+15+6+24+2+9=59,基因序列312133的运行开销为4+15+12+24+2+9=66,基因序列221313的运行开销为6+34+6+34+21+9=110,运行开销阈值设置为70,处理器门限值设置为3,因为312133的运行开销为66,且处理器使用数量为3,因此基因序列312133作为任务调度方案。
具体采用上述哪种方案根据用户的需求进行选择,本发明实施例对其不作限定。
下面通过两个具体实施例,对本发明实施例提供的一种基于遗传算法的任务调度方法进行详细说明。
实施例一,由CPU端和高性能硬件设备端来实现并行计算遗传算法,CPU端和高性能硬件设备端之间通过PCIe总线传送数据,根据每个阶段的计算量来决定高性能硬件设备端的计算任务,通过CPU端和高性能硬件设备端的配合来提高总体性能,如图2所示:
通过随机数生成器随机生成Z个基因序列,并将所述Z个基因序列的适应值的平均值确定为所述迭代过程的初始阈值,计算量少,上述操作在CPU端执行;
通过随机数生成器随机生成至少两个第一基因序列集合作为初始化第一基因序列集合,通过阈值选择从所述第一基因序列集合中选择适应值大于初始阈值的基因序列,将所选择的所有基因序列划分成与第一基因序列集合数量相同的第二基因序列集合,将所选择的基因序列中的任意两个基因序列进行基因交叉,并根据基因交叉后得到的基因序列的适应值确定下一次迭代过程中使用的阈值,通过得到的阈值进行下一次基因序列选择,直至所述迭代过程达到设定条件时,停止所述基因交叉,得到一组基因序列,上述操作在高性能硬件设备端执行;
从当前基因序列集合中,选择一个基因序列作为最优任务调度方案,上述操作在CPU端执行。
本发明实施例中,上述操作可以在CPU端和高性能硬件设备端两侧交互实现,也可以在任一侧实现,也可以根据资源的多少进行分配,本发明实施例中不作限定。
本实施例中,CPU端向高性能硬件设备端传输随机数数据,采用异步传输数据的方式,所述异步传输是指当CPU端向高性能硬件设备端传输数据时不影响高性能硬件设备端上正在执行的操作,避免因为调用产生中断线程等待耗费大量时间的情况,如图3所示,CPU端随机生成的随机数发送给高性能硬件设备端的随机数存储区域存储;当每次需要随机数生成基因序列时,随机选取随机数存储区域里的随机数。假设存储区域的随机数数量为10000个,那么需要选取随机数时,使用线程调用10000个随机数中的任意随机数,如图3中相互交叉的直线所示,表示随机数存储区的多个随机数被不同的线程调用,同一线程也可以同时调用随机数存储区中的不同随机数,所述线程是执行调用任务的调用程序,上述操作在高性能硬件设备端执行。
本发明具体实施例中每个任务在不同处理器上的运行开销是不一样的,本发明所提出的并行遗传算法就是找出所有任务执行完成所需要的最优的任务分配方案。
实施例二、假设通过随机数生成器随机生成10个第一基因序列集合,每个第一基因序列集合中有10个基因序列,第二基因序列集合的数量与第一基因序列集合的数量相同,又一种基于遗传算法的任务调度方法,如图4所示:
步骤401、随机数生成器随机生成20个基因序列。
步骤402、CPU端将所述20个基因序列的适应值的平均值确定为所述迭代过程的初始阈值。
步骤403、随机数生成器随机生成10个第一基因序列集合,每个第一基因序列集合中有10个基因序列。
步骤404、高性能硬件设备端从所述每个第一基因序列集合中选择出适应值大于或等于所述初始阈值的基因序列,假设从每个第一基因序列集合中选择的基因序列都是6个。
步骤405、高性能硬件设备端将所选择的所有基因序列划分成10个第二基因序列集合,每个第二基因序列集合中有6个基因序列。
步骤406、高性能硬件设备端将每个第二基因序列集合中的基因序列中的任意两个基因序列进行基因交叉,每个第二基因序列集合得到基因交叉处理后的15个基因序列。
步骤407、高性能硬件设备端根据基因交叉后得到的基因序列的适应值确定下一次迭代过程中使用的阈值。
步骤408、高性能硬件设备端将每个第二基因序列集合中基因交叉处理前的6个基因序列与基因交叉处理后的15个基因序列按照适应值从大到小的顺序进行排序。
步骤409、高性能硬件设备端选择前10个基因序列,作为下一次迭代过程的输入。
步骤410、高性能硬件设备端判断所述迭代过程是否达到设定条件;
若是,执行步骤411;
若否,执行步骤404。
步骤411、停止所述基因交叉,CPU端在所述得到一组基因序列中选择一个基因序列作为最优任务调度方案。
基于与方法同样的发明构思,本发明实施例还提供一种基于遗传算法的任务调度装置,如图5所示,该装置包括:
第一模块501,用于输入N个第一基因序列集合,分别从所述N个第一基因序列集合中,选择出适应值大于或等于所述第一基因序列集合使用的阈值的基因序列,其中,所述第一基因序列集合使用的阈值是根据所述第一基因序列集合包含的基因序列的适应值确定的,所述基因序列用于表征需要处理的任务与处理所述任务的处理器之间的对应关系,所述适应值用于表征基因序列在任务调度中处理任务的能力,N为大于或等于2的正整数;
第二模块502,用于将选择出的基因序列划分成M个第二基因序列集合,对于每个第二基因序列集合,将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理,将基因交叉处理后得到的基因序列作为下一次迭代过程的输入,M为正整数;
第三模块503,任务调度方案选择模块,用于在所述迭代过程达到设定条件时,停止迭代,从得到的基因序列中,选择一个基因序列作为任务调度方案。
本发明实施例提供的一种基于遗传算法的任务调度装置,首先输入N个第一基因序列集合,分别从所述N个第一基因序列集合中,选择出适应值大于或等于所述第一基因序列集合使用的阈值的基因序列,然后将选择出的基因序列划分成M个第二基因序列集合,对于每个第二基因序列集合,将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理,将基因交叉处理后得到的基因序列作为下一次迭代过程的输入,由于多组第二基因序列同时进行基于交叉操作时,使得在大量计算任务处理时缩短了处理时间;在所述迭代过程达到设定条件时,停止迭代,从得到的基因序列中,选择一个基因序列作为任务调度方案。由于多组基因序列同时进行迭代处理,缩短了处理时间,提高了处理效率。
可选的,所述第二模块还用于:
从基因交叉处理前的基因序列和基因交叉处理后得到的基因序列中,选择P个基因序列,并将得到的P个基因序列作为下一次迭代过程的输入,P为正整数。
可选的,所述第二模块具体用于:
将所述任意两个基因序列中的一个基因序列包含的Q个基因,与另一个基因序列中同一位置的Q个基因进行对调,其中,Q为大于或等于1的整数,且Q小于所述任意两个基因序列包含的基因的个数的最小值。
可选的,所述第三模块具体用于:
从所述得到的基因序列中,选择任务的运行开销最小的基因序列,作为任务调度方案;或
从所述得到的基因序列中,选择不同处理器的使用数量最高的基因序列,作为任务调度方案;或
从所述得到的基因序列中,选择任务的运行开销小于或等于设定的运行开销阈值,且不同处理器的使用数量大于或等于设定的门限值的基因序列,作为任务调度方案;
其中,所述运行开销是指基因序列中每个任务通过处理器处理的时间。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于遗传算法的任务调度方法,其特征在于,包括:
输入N个第一基因序列集合,分别从所述N个第一基因序列集合中,选择出适应值大于或等于所述第一基因序列集合使用的阈值的基因序列,其中,所述第一基因序列集合使用的阈值是根据所述第一基因序列集合包含的基因序列的适应值确定的,所述基因序列用于表征需要处理的任务与处理所述任务的处理器之间的对应关系,所述适应值用于表征基因序列在任务调度中处理任务的能力,通过所述需要处理的任务在所述处理器上的运行开销以及所述需要处理的任务的实时要求系数计算得到,N为大于或等于2的正整数;
将选择出的基因序列划分成M个第二基因序列集合,对于每个第二基因序列集合,将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理,将基因交叉处理后得到的基因序列作为下一次迭代过程的输入,M为正整数;
在所述迭代过程达到设定条件时,停止迭代,从得到的基因序列中,选择一个基因序列作为任务调度方案。
2.根据权利要求1所述的方法,其特征在于,对于每个第二基因序列集合,将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理之后,该方法还包括:
从基因交叉处理前的基因序列和基因交叉处理后得到的基因序列中,选择R个基因序列,并将得到的R个基因序列作为下一次迭代过程的输入,R为正整数。
3.根据权利要求2所述的方法,其特征在于,从基因交叉处理前的基因序列和基因交叉处理后得到的基因序列中,选择R个基因序列,包括:
将基因交叉处理前的基因序列和基因交叉处理后得到的基因序列,按照适应值从大到小进行排序,选择前R个基因序列。
4.根据权利要求1所述的方法,其特征在于,所述设定条件包括:
迭代次数达到设定次数;或者
任一次迭代过程后得到的基因序列的数量为一个。
5.根据权利要求1所述的方法,其特征在于,将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理,包括:
将所述任意两个基因序列中的一个基因序列包含的Q个基因,与另一个基因序列中同一位置的Q个基因进行对调,其中,Q为大于或等于1的整数,且Q小于所述任意两个基因序列包含的基因的个数的最小值。
6.根据权利要求1~5中任一项所述的方法,其特征在于,从得到的基因序列中,选择一个基因序列作为任务调度方案,包括:
从所述得到的基因序列中,选择任务的运行开销最小的基因序列,作为任务调度方案;或
从所述得到的基因序列中,选择不同处理器的使用数量最高的基因序列,作为任务调度方案;或
从所述得到的基因序列中,选择任务的运行开销小于或等于设定的运行开销阈值,且不同处理器的使用数量大于或等于设定的门限值的基因序列,作为任务调度方案;
其中,所述运行开销是指基因序列中每个任务通过处理器处理的时间。
7.一种基于遗传算法的任务调度装置,其特征在于,包括:
第一模块,用于输入N个第一基因序列集合,分别从所述N个第一基因序列集合中,选择出适应值大于或等于所述第一基因序列集合使用的阈值的基因序列,其中,所述第一基因序列集合使用的阈值是根据所述第一基因序列集合包含的基因序列的适应值确定的,所述基因序列用于表征需要处理的任务与处理所述任务的处理器之间的对应关系,所述适应值用于表征基因序列在任务调度中处理任务的能力,通过所述需要处理的任务在所述处理器上的运行开销以及所述需要处理的任务的实时要求系数计算得到,N为大于或等于2的正整数;
第二模块,用于将选择出的基因序列划分成M个第二基因序列集合,对于每个第二基因序列集合,将所述第二基因序列集合中的任意两个基因序列进行基因交叉处理,将基因交叉处理后得到的基因序列作为下一次迭代过程的输入,M为正整数;
第三模块,用于在所述迭代过程达到设定条件时,停止迭代,从得到的基因序列中,选择一个基因序列作为任务调度方案。
8.根据权利要求7所述的装置,其特征在于,所述第二模块还用于:
从基因交叉处理前的基因序列和基因交叉处理后得到的基因序列中,选择R个基因序列,并将得到的R个基因序列作为下一次迭代过程的输入,R为正整数。
9.根据权利要求7所述的装置,其特征在于,所述第二模块具体用于:
将所述任意两个基因序列中的一个基因序列包含的Q个基因,与另一个基因序列中同一位置的Q个基因进行对调,其中,Q为大于或等于1的整数,且Q小于所述任意两个基因序列包含的基因的个数的最小值。
10.根据权利要求7~9中任一项所述的装置,其特征在于,所述第三模块具体用于:
从所述得到的基因序列中,选择任务的运行开销最小的基因序列,作为任务调度方案;或
从所述得到的基因序列中,选择不同处理器的使用数量最高的基因序列,作为任务调度方案;或
从所述得到的基因序列中,选择任务的运行开销小于或等于设定的运行开销阈值,且不同处理器的使用数量大于或等于设定的门限值的基因序列,作为任务调度方案;
其中,所述运行开销是指基因序列中每个任务通过处理器处理的时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610173808.9A CN105893145B (zh) | 2016-03-24 | 2016-03-24 | 一种基于遗传算法的任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610173808.9A CN105893145B (zh) | 2016-03-24 | 2016-03-24 | 一种基于遗传算法的任务调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105893145A CN105893145A (zh) | 2016-08-24 |
CN105893145B true CN105893145B (zh) | 2019-08-20 |
Family
ID=57014589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610173808.9A Active CN105893145B (zh) | 2016-03-24 | 2016-03-24 | 一种基于遗传算法的任务调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105893145B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415761B (zh) * | 2018-01-31 | 2021-11-05 | 西北工业大学 | 一种基于网络流量优化的Storm任务调度方法 |
CN111913785B (zh) * | 2020-06-10 | 2022-09-30 | 合肥工业大学 | 多星任务调度方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012517041A (ja) * | 2009-02-05 | 2012-07-26 | 日本電気株式会社 | 遺伝的アプローチによる期限付きタスクの受付制御・スケジューリング方法、システムおよびプログラム |
CN102122251B (zh) * | 2011-03-21 | 2016-09-14 | 北京航空航天大学 | 一种基于遗传算法的多航天器并行测试任务调度方法 |
CN103902375B (zh) * | 2014-04-11 | 2017-09-29 | 北京工业大学 | 一种基于改进遗传算法的云任务调度方法 |
CN105187488A (zh) * | 2015-08-05 | 2015-12-23 | 江苏科技大学 | 一种基于遗传算法实现mas负载均衡的方法 |
-
2016
- 2016-03-24 CN CN201610173808.9A patent/CN105893145B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105893145A (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109993299B (zh) | 数据训练方法及装置、存储介质、电子装置 | |
Li et al. | Efficient multi-objective optimization algorithm for hybrid flow shop scheduling problems with setup energy consumptions | |
Caldeira et al. | A Pareto based discrete Jaya algorithm for multi-objective flexible job shop scheduling problem | |
Li et al. | Solving the large-scale hybrid flow shop scheduling problem with limited buffers by a hybrid artificial bee colony algorithm | |
Pan et al. | An improved migrating birds optimisation for a hybrid flowshop scheduling with total flowtime minimisation | |
WO2018036282A1 (zh) | 一种任务调度方法、装置及计算机存储介质 | |
CN107301473A (zh) | 基于改进遗传算法的同类平行机批调度方法及系统 | |
CN108829501B (zh) | 一种基于改进遗传算法的批处理科学工作流任务调度算法 | |
CN104166903B (zh) | 基于工序划分的任务规划方法及系统 | |
CN104035816A (zh) | 一种基于改进nsga-ii的云计算任务调度方法 | |
CN110866687A (zh) | 任务分配方法及装置 | |
CN104331321A (zh) | 基于禁忌搜索和负载均衡的云计算任务调度方法 | |
CN106294288B (zh) | 一种分布式非负矩阵分解方法 | |
CN110362388A (zh) | 一种资源调度方法及装置 | |
CN105893145B (zh) | 一种基于遗传算法的任务调度方法及装置 | |
CN106293947B (zh) | 虚拟化云环境下gpu-cpu混合资源分配系统和方法 | |
CN105550825B (zh) | 云计算环境下的基于MapReduce并行化的柔性工厂作业调度方法 | |
CN110780985A (zh) | 一种有限时间的并行任务调度方法与装置 | |
Khorasanian et al. | An iterated greedy algorithm for solving the blocking flow shop scheduling problem with total flow time criteria | |
Keshavarz et al. | Efficient upper and lower bounding methods for flowshop sequence-dependent group scheduling problems | |
CN106354552B (zh) | 并行计算任务分配方法和装置 | |
CN111078380A (zh) | 一种多目标任务调度方法及系统 | |
CN105430074A (zh) | 基于数据依赖性和访问量云数据分配存储优化方法及系统 | |
Carvalho et al. | Multi-objective Flexible Job-Shop scheduling problem with DIPSO: More diversity, greater efficiency | |
CN109783189A (zh) | 一种静态工作流调度方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |