CN112486651A - 一种基于改进遗传算法的云测试平台任务调度方法 - Google Patents
一种基于改进遗传算法的云测试平台任务调度方法 Download PDFInfo
- Publication number
- CN112486651A CN112486651A CN202011377220.8A CN202011377220A CN112486651A CN 112486651 A CN112486651 A CN 112486651A CN 202011377220 A CN202011377220 A CN 202011377220A CN 112486651 A CN112486651 A CN 112486651A
- Authority
- CN
- China
- Prior art keywords
- task
- test
- cloud
- processor
- test task
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 370
- 230000002068 genetic effect Effects 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 34
- 210000000349 chromosome Anatomy 0.000 claims abstract description 56
- 239000011159 matrix material Substances 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000009826 distribution Methods 0.000 claims description 3
- 239000002243 precursor Substances 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 3
- 230000035772 mutation Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 108090000623 proteins and genes Proteins 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000013101 initial test Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000004083 survival effect Effects 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
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开的基于改进遗传算法的云测试平台任务调度方法,通过建立所述云测试平台任务调度模型;基于所述云测试平台任务调度模型的测试任务调度方式进行编码,形成测试任务状态表;根据所述测试任务状态表设计所述改进遗传算法的适应度函数;基于所述适应度函数初始化所述改进遗传算法的种群,利用轮盘赌算法选择所述种群中的染色体;对所述改进遗传算法的染色体进行交叉、变异后,当满足所述改进遗传算法的结束条件时,得到所述云测试平台任务调度最短时间。能够有效解决处理机数量、任务间依赖和并行执行任务等问题。
Description
技术领域
本发明属于云测试平台任务调度的遗传算法技术领域,具体涉及一种基于改进遗传算法的云测试平台任务调度方法。
背景技术
云计算技术作为一种资源管理和供应的模式,把计算、存储和网络等硬件资源虚拟化为一个多用户共享的资源池,再通过网络向用户按需提供可拓展的虚拟资源,突破物理空间的限制。
将云计算技术应用到测试中的云测试平台,可以利用大规模虚拟化环境开展测试,即利用云测试平台更加有效的组织和利用各类测试基础设施资源(计算资源、网络资源、存储资源等),以服务方式提供一种测试资源透明、环境按需、平台开放、高效执行的测试手段,提供一种随时随地使用测试服务的新型应用模式,为测试设计、环境开设、执行管控、状态监视、结果分析等测试活动提供有力支撑。
云测试平台面向的用户多,用户提交的任务需求的硬件资源各不相同,任务间的依赖关系复杂,合理的任务调度是保证用户及时得到云测试平台相应,按时完成任务的重要保证。测试任务调度的首要目标是,在满足任务依赖关系限制的前提下寻找一个合理的调度策略,按序将测试任务映射到处理机上,使任务尽可能地并行执行以使系统完成所有任务的时间最短。
目前基于遗传算法的云测试平台任务调度的研究中存在限制处理机数量、不考虑任务间依赖、忽略处理机可以并行执行多个任务的情况等问题。。
发明内容
有鉴于此,本公开提出了一种基于改进遗传算法的云测试平台任务调度方法,能够有效解决处理机数量、任务间依赖和并行执行任务等问题。
根据本发明的一方面,提出了一种基于改进遗传算法的云测试平台任务调度方法,所述方法包括:
建立所述云测试平台任务调度模型;
基于所述云测试平台任务调度模型的测试任务调度方式进行编码,形成测试任务状态表;
根据所述测试任务状态表设计所述改进遗传算法的适应度函数;
基于所述适应度函数初始化所述改进遗传算法的种群,利用轮盘赌算法选择所述种群中的染色体;
对所述改进遗传算法的染色体进行交叉、变异后,当满足所述改进遗传算法的结束条件时,得到所述云测试平台任务调度最短时间。
在一种可能的实现方式中,所述云测试平台任务调度模型为五元组G,G=(T,E,SP,ST,R,C),其中,T为云测试平台任务调度DAG图的节点集合,E为云测试平台任务调度DAG图的有向边的矩阵,SP为云测试平台的处理机所能提供的资源的矩阵,ST为云测试平台测试任务所需的资源的矩阵,R为测试任务在不同处理机上的执行时间的矩阵,C为测试任务件转换时间的矩阵。
在一种可能的实现方式中,所述基于所述云测试平台任务调度模型的测试任务调度方式进行编码,形成测试任务状态表,包括:
将所述云测试平台任务调度模型的测试任务调度方式的测试任务和所述处理机之间的映射关系形成所述测试任务编码表;
根据所述测试任务进入待执行状态的所有前置条件和测试任务执行状态形成测试任务状态表;
根据所述测试任务的执行完成时间定义所述测试任务的权重,根据所述测试任务的权重执行所述测试任务;
根据所述测试任务状态表计算执行所有所述测试任务的执行完成时间。
在一种可能的实现方式中,根据所述测试任务状态表设计所述改进遗传算法的适应度函数,包括:
根据所述测试任务状态表和测试任务编码表计算所述云测试平台在执行测试任务期间的处理机的负载;
根据所述处理机的负载计算所有处理机负载的平均值,得到所述云测试平台在执行测试任务期间的处理机的负载均衡度;
基于所述所述云测试平台完成所有测试任务的最短执行时间和所述云测试平台在执行测试任务期间的处理机的负载均衡度设定所述改进遗传算法的适应度函数。
5、根据权利要求4所述的云测试平台任务调度方法,其特征在于,所述测试任务状态表包括:测试任务编号、处理机编号、测试任务的前置任务、测试任务的后继任务、计算核心数、内存大小、硬盘大小、测试任务的前置任务的完成状态、测试任务需求资源的满足状态、测试任务待执行状态、测试任务执行中状态和测试任务已完成状态。
在一种可能的实现方式中,所述根据所述测试任务状态表计算执行所述测试任务的执行完成时间,包括:
根据测试任务编码表找到测试任务Ti和其对应的处理机Pj,根据所述云测试平台任务调度模型的DAG图查找所述测试任务的前驱任务和后继任务;
通过所述测试任务在不同处理机上的执行时间矩阵R计算出分配在所述处理机Pj的所以测试任务的权重;
当所述测试任务Ti的前驱任务已完成,判断所述处理机Pj是否满足所述测试任务Ti的资源需求;
当所述处理机Pj满足所述测试任务Ti的资源需求,判断所述测试任务Ti的测试任务状态表中的待执行状态、执行中状态和已完成状态均为0时,将所述测试任务Ti的待执行状态置为1;
判断所述测试任务Ti在所述处理机Pj上的所有待执行测试任务中的权重为最大时,将所述测试任务Ti的测试任务状态表中的执行中状态置为1,待执行状态置为0,并在所述处理机Pj所提供的资源矩阵SP减去该任务所需的资源,记录所述测试任务开始的时间;
将所述测试任务Ti执行完成后,将所述测试任务Ti的测试任务状态表中的已完成状态置为1,在所述处理机Pj所提供的资源矩阵SP中添加该任务所需的资源,记录所述测试任务结束的时间;
返回所述测试任务Ti的开始时间和结束时间,即得到所述测试任务Ti的执行完成时间。
在一种可能的实现方式中,所述处理机Pj的负载为,其中,C、M、D分别为处理机Pj提供的计算核心数、内存大小和硬盘大小,Cx为Tx时间段内处理机Pj被占用的计算核心数,My为Ty时间段内处理机Pj被占用的内存大小,Dz为Tz时间段内处理机Pj被占用的硬盘大小;
本公开的基于改进遗传算法的云测试平台任务调度方法,通过建立所述云测试平台任务调度模型;基于所述云测试平台任务调度模型的测试任务调度方式进行编码,形成测试任务状态表;根据所述测试任务状态表设计所述改进遗传算法的适应度函数;基于所述适应度函数初始化所述改进遗传算法的种群,利用轮盘赌算法选择所述种群中的染色体;对所述改进遗传算法的染色体进行交叉、变异后,当满足所述改进遗传算法的结束条件时,得到所述云测试平台任务调度最短时间。能够有效解决处理机数量、任务间依赖和并行执行任务等问题。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的基于改进遗传算法的云测试平台任务调度方法流程图;
图2示出根据本公开一实施例的基于改进遗传算法的云测试平台任务调度模型的DAG图的示意图;
图3示出了根据本公开一实施例的步骤S2的进一步限定流程图;
图4示出了根据本公开一实施例的步骤S24的进一步限定流程图;
图5示出了根据本公开一实施例的步骤S3的进一步限定流程图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
本公开的任务调度方法,依据云测试平台中任务的特点设计测试任务调度算法的映射编码方法,结合基于测试任务编码表的调度算法的特点,提出根据测试任务状态表计算测试任务完成时间的方法,并根据云测试中的重要评价指标,改进了遗传算法的适应度函数、负载均衡度的计算公式,有效解决了处理机数量、任务间依赖和并行执行任务等问题。
图1示出根据本公开一实施例的基于改进遗传算法的云测试平台任务调度方法流程图。如图1所示,该方法可以包括:
步骤S1:建立所述云测试平台任务调度模型。
其中,云测试平台任务调度模型可以为针对现有的启发式和元启发式测试任务调度算法限制处理机数量、不考虑任务间依赖、忽略处理机可以并行执行多个任务的情况等问题,结合基于测试任务编码表的调度算法的特点,对现有的基于遗传算法的云测试平台任务调度算法做出改进。
图2示出根据本公开一实施例的基于改进遗传算法的云测试平台任务调度模型的DAG图的示意图。
例如,假定云测试平台中有n台处理机{p1,p2,…pn},用户提交的云测试任务有m个{T1,T2,...Tm}。一般情况下,与处理机数量n相比,测试任务数量m的值是远远大于n的。可以定义一个五元组G,G=(T,E,SP,ST,R,C)来表示云测试平台任务调度模型。
其中,T为云测试平台任务调度DAG图的节点集合,E为云测试平台任务调度DAG图的有向边的矩阵。考虑到云测试任务间有先后的调度约束关系,通过有向无环图DAG来表示测试任务间的约束关系,图中的节点代表测试任务,节点间的有向边代表测试任务间的依赖关系。如图2所示,T1是T2和T3的前置任务,即在T1执行完成前,T2和T3的不能开始。T5和T6是T7的前置任务,也就是在T5和T6全部执行完成前T7不能开始。根据云测试平台任务调度DAG图的有向边的矩阵E的定义,当eij=1时,Ti是Tj的前置任务,在Ti执行完成之前,Tj不能开始执行,此时将Ti称为Tj的前置任务,Tj称为Ti的后继任务,当eij=0时,Ti和Tj没有直接的先后关系。
SP为云测试平台的处理机所能提供的资源的矩阵,ST为云测试平台测试任务所需的资源的矩阵。在处理机同时满足多个任务所需资源时可以同时运行多个虚拟机来执行任务,定义Sp=(Cp,Mp,Dp),ST=(CT,MT,DT),其中,向量CP,MP,DP分别表示处理机能够提供的计算核心数、内存大小(单位为GB)和硬盘大小(单位为GB),向量CT,MT,DT分别表示测试任务所需要的计算核心数量、内存大小和硬盘大小。当测试任务Tj被分配到指定处理机Pi上时,若处理机能够满足任务执行所需的资源时(CTj<Cpi、MTj<Mpi和DTj<Dpi都满足),处理机构建一个计算核心数为CTj、内存大小MTj、硬盘大小DTj的虚拟机执行测试任务Tj,并从能提供的资源数量中减去对应部分。当测试任务Tj执行完成后回收资源,将对应部分重新加回可提供的资源数量中。
R为测试任务在不同处理机上的执行时间的矩阵,C为测试任务件转换时间的矩阵。由于每个处理机的CPU、内存、硬盘的型号和性能各不相同,所以不同测试任务分配在不同处理机上的执行时间都是不同的。矩阵R中的元素rji为任务Tj分配在处理机Pi上的执行时间。矩阵C中的元素Cji表示在同一处理机上从任务Ti结束到下一个任务Tj开始的测试准备时间和数据通信时间。
基于上述建立的云测试平台任务调度模型,结合基于测试任务编码表的调度算法的特点,对现有的基于遗传算法的云测试平台任务调度算法做出改进。
步骤S2:基于所述云测试平台任务调度模型的测试任务调度方式进行编码,形成测试任务状态表。
图3示出了根据本公开一实施例的步骤S2的进一步限定流程图。
该步骤可以包括两层操作,第一层操作为编码方法,第二层操作为形成测试任务状态表。
在一示例中,如图2所示,步骤S2可以包括:
步骤S21:将所述云测试平台任务调度模型的测试任务调度方式的测试任务和所述处理机之间的映射关系形成所述测试任务编码表;
步骤S22:根据所述测试任务进入待执行状态的所有前置条件和测试任务执行状态形成测试任务状态表;
步骤S23:根据所述测试任务的执行完成时间定义所述测试任务的权重,根据所述测试任务的权重执行所述测试任务;
步骤S24:根据所述测试任务状态表计算执行所述测试任务的执行完成时间。
其中,编码是将云测试平台任务调度方式的解映射为字符串或数字符串的数学表达式的过程,在云测试任务调度中的解是一种对测试任务执行顺序和执行位置的安排。
由于一台处理机可以根据能够提供的资源数量和测试任务需求的资源数量生成数量不定的虚拟机,直接将测试任务调度到对应的虚拟机上会导致编码生成的染色体长度不一,给后续的交叉、变异等操作带来较大的困难,染色体可以为云测试任务调度中的一种可能的测试任务和处理机匹配方式。每一个染色体(调度方案,)是一个m*1的向量,向量中下标为i(1≤i≤m)对应的取值为x代表了任务Ti被分配给处理机Px。如表1所示,该染色体下标1的对应取值为8,代表将任务T1分配给处理机P8执行。
表1染色体编码表
向量下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
对应取值 | 8 | 5 | 12 | 8 | 3 | 5 | 5 |
当同一处理机上分配有不同的测试任务时,测试任务的执行顺序的调度策略可以根据测试任务的权重进行调整和执行。例如,将测试任务T1和T4都分配了处理机P8,首先,需要确定测试任务T1和T4的前置任务是否都已完成。假设任务T1和T4的前置任务都已完成,需判断处理机P8能否提供满足执行测试任务T1和T4所需要的资源。假设资源满足,需要根据测试任务T1和T4的权重决定测试任务T1和T4的执行顺序。当染色体(测试任务调度方案),也就是测试任务和处理机匹配方式已定时,由步骤S231到步骤S237可知每个测试任务的执行完成时间也就确定了(在矩阵R中查找)。
将测试任务进入待执行状态的所有前置条件和任务所处的执行状态进行归纳得到该测试任务的测试任务状态表,如表2所示。
表2测试任务状态表
在一示例中,如图表2所示,测试任务状态表可以包括:测试任务编号、处理机编号、测试任务的前置任务、测试任务的后继任务、计算核心数、内存大小、硬盘大小、测试任务的前置任务的完成状态、测试任务需求资源的满足状态、测试任务待执行状态、测试任务执行中状态和测试任务已完成状态共12项内容。
其中,测试任务编号可以为按照测试任务提交的顺序对测试任务进行编号,如表2中的测试任务为T4。处理机编号可以为根据染色体(测试任务调度方案)中任务和处理机的匹配方式,查找到染色体向量下标为4时所对应处理机的取值为8,也就是任务T4被分配给了处理机P8。测试任务的前置任务可以为通过描述测试任务间约束关系的DAG图查找到任务T4的前置任务为T2和T3。测试任务的后继任务可以通过描述测试任务间约束关系的DAG查找到任务T4的后继任务为T5和T6。计算核心数可以为测试任务T4所需求的计算核心数量。内存大小可以为测试任务T4需求的内存大小(单位为GB)。硬盘大小可以为测试任务T4需求的硬盘大小(单位为GB)。测试任务的前置任务完成状态可以为当所有前置任务都处于已完成状态时,该项置1,否则置0。测试任务需求资源满足状态可以为当处理机可以满足测试任务需求的所有资源时,该项置1,否则置0。测试任务待执行状态可以为当执行中状态和已完成状态都为0,且前置任务完成状态和需求资源满足状态都为1时,将待执行状态置1。测试任务执行中状态可以为在完成测试任务待执行状态判断后,根据权重选出被执行的测试任务,并将其测试任务执行中状态置1,待执行状态置0。测试任务已完成状态可以为测试任务执行完成后将已完成状态置1,执行中状态置0。
图4示出了根据本公开一实施例的步骤S24的进一步限定流程图。
在一示例中,如图4所示,步骤S24可以包括:
步骤S241:根据测试任务编码表找到测试任务Ti和其对应的处理机Pj,根据所述云测试平台任务调度模型的DAG图查找所述测试任务的前驱任务和后继任务;
步骤S242:通过所述测试任务在不同处理机上的执行时间矩阵R计算出分配在所述处理机Pj的所以测试任务的权重;
步骤S243:当所述测试任务Ti的前驱任务已完成,判断所述处理机Pj是否满足所述测试任务Ti的资源需求;
步骤S244:当所述处理机Pj满足所述测试任务Ti的资源需求,判断所述测试任务Ti的测试任务状态表中的待执行状态、执行中状态和已完成状态均为0时,将所述测试任务Ti的待执行状态置为1;
步骤S245:判断所述测试任务Ti在所述处理机Pj上的所有待执行测试任务中的权重为最大时,将所述测试任务Ti的测试任务状态表中的执行中状态置为1,待执行状态置为0,并在所述处理机Pj所提供的资源矩阵SP减去该任务所需的资源,记录所述测试任务开始的时间;
步骤S246:将所述测试任务Ti执行完成后,将所述测试任务Ti的测试任务状态表中的已完成状态置为1,在所述处理机Pj所提供的资源矩阵SP中添加该任务所需的资源,记录所述测试任务结束的时间;
步骤S247:返回所述测试任务Ti的开始时间和结束时间,即得到所述测试任务Ti的执行完成时间。
通过上述步骤,即根据测试任务状态表能够计算每个测试任务执行完成时间。
步骤S3:根据所述测试任务状态表设计所述改进遗传算法的适应度函数。
图5示出了根据本公开一实施例的步骤S3的进一步限定流程图。
在一示例,如图5所示,步骤S3可以包括:
步骤S31:根据所述测试任务状态表和所述测试任务编码表计算所述云测试平台在执行测试任务期间的处理机的负载;即根据测试任务和处理机之间的对应关系计算处理机的负载。
步骤S32:根据所述处理机的负载计算所有处理机负载的平均值,得到所述云测试平台在执行测试任务期间的处理机的负载均衡度;
步骤S33:基于所述所述云测试平台完成所有测试任务的最短执行时间和所述云测试平台在执行测试任务期间的处理机的负载均衡度设定所述改进遗传算法的适应度函数。
其中,遗传算法通过适应度算法淘汰不良染色体,经过重复不断的迭代得到最优解。
结合缩短云平台测试中的测试任务执行时间和负载均衡两方面的考虑,测试任务的调度结果应该满足:云测试平台能够在尽量短的时间内完成所有的测试任务和云测试平台在执行任务期间要保证负载均衡。
在测试任务执行时间方面,计算出所有测试任务完成的时间。在负载均衡方面,假定对于处理机Pi执行测试任务完成总时间为T,将T划分成n1个时间段,在每个时间段内处理机Pi被任务占用的计算核心数总是保持不变。同样地,将T划分成n2、n3个时间段,在每个时间段内处理机Pi被任务占用的内存大小、硬盘大小总是保持不变。
定义处理机Pj的负载为其中,C、M、D分别为处理机Pj提供的计算核心数、内存大小和硬盘大小,Cx为Tx时间段内处理机Pj被占用的计算核心数,My为Ty时间段内处理机Pj被占用的内存大小,Dz为Tz时间段内处理机Pj被占用的硬盘大小。
常数a和b的大小由测试任务完成时间和负载均衡两方面的度量指标在适应度函数中所占权重确定。如处理机负载公式可知,测试任务执行总时间越短,负载越均衡时适应度函数的值越大,代表该染色体越优秀,有更大的存活概率。通过适应度函数可以筛选出优秀的染色体种群,既能够达到执行测试任务的最短时间又能够避免仅仅依据测试时间为判定结果的局部优化的情况。
步骤S4:基于所述适应度函数初始化所述改进遗传算法的种群,利用轮盘赌算法选择所述种群中的染色体。
例如,可以设定初始种群中的30%使用Min-Min算法生成,其余70%的染色体使用随机数生成,按照任务编号将第1到第n个测试任务分配给随机的处理机。其中,Min-Min算法是一种易于实现的经典启发式算法,运行时间短,运行效率高,主要是根据测试任务运行时间对测试任务进行排序,先执行所需时间短的小任务,然后分配大任务。
轮盘赌选择算法每次计算出的选择概率都在[0,1]之间,且染色体被选择的概率完全由其自身的适应度决定。适应度越高的染色体越有可能被选中,自身优秀的基因更有可能传给下一代,适应程度较低的染色体也有概率被选中,这样增加了种群中染色体的多样性。
步骤S5:对所述改进遗传算法的染色体进行交叉、变异后,当满足所述改进遗传算法的结束条件时,得到所述云测试平台任务调度最短时间。
其中,交叉算法通常根据设定的交叉概率选取两条染色体,并交换这两条染色体中对应部分的基因序列。
举例来说,设两个选定的染色体为F1、F2,交叉算法操作如下:
首先,随机选择总测试任务数量x(0.2L≤x≤0.8L),L是染色体长度;
最后,交换染色体片段K1和K2的位置,生成的新的染色体片段分别记作S1、S2。从而实现新的染色体的交叉操作。
染色体的变异操作可以有效保证种群基因多样性,防止因遗传算法收敛过早,陷入局部最优解。
则染色体的变异操作具体如下:随机选取u、v两个值(u<v),根据变异概率选择染色体S,取出染色体S中编号从u开始到v结束的染色体片段,将其反向排序后重新注入染色体S的相同位置中,形成染色体S′,将形成的染色体S′注入种群中,实现染色体的变异操作。
在染色体完成相应的选择、交叉、变异操作后,遗传算法完成了一次迭代过程,根据遗传算法的迭代结束条件得到云测试平台任务调度方法的最优解,其中,遗传算法的迭代结束条件可以为次数超过预定的数量,遗传算法最近的10次迭代中种群没有发生任何变化,种群中的所有染色体收敛到同一个染色体上,只需要达到该三个条件中的一个时,遗传算法停止并输出当前种群中的最优解。
本公开的基于改进遗传算法的云测试平台任务调度方法,通过建立所述云测试平台任务调度模型;基于所述云测试平台任务调度模型的测试任务调度方式进行编码,形成测试任务状态表;根据所述测试任务状态表设计所述改进遗传算法的适应度函数;基于所述适应度函数初始化所述改进遗传算法的种群,利用轮盘赌算法选择所述种群中的染色体;对所述改进遗传算法的染色体进行交叉、变异后,当满足所述改进遗传算法的结束条件时,得到所述云测试平台任务调度最短时间。能够有效解决处理机数量、任务间依赖和并行执行任务等问题。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (7)
1.一种基于改进遗传算法的云测试平台任务调度方法,其特征在于,所述方法包括:
建立所述云测试平台任务调度模型;
基于所述云测试平台任务调度模型的测试任务调度方式进行编码,形成测试任务状态表;
根据所述测试任务状态表设计所述改进遗传算法的适应度函数;
基于所述适应度函数初始化所述改进遗传算法的种群,利用轮盘赌算法选择所述种群中的染色体;
对所述改进遗传算法的染色体进行交叉、变异后,当满足所述改进遗传算法的结束条件时,得到所述云测试平台任务调度最短时间。
2.根据权利要求1所述的云测试平台任务调度方法,其特征在于,所述云测试平台任务调度模型为五元组G,G=(T,E,SP,ST,R,C),其中,T为云测试平台任务调度DAG图的节点集合,E为云测试平台任务调度DAG图的有向边的矩阵,SP为云测试平台的处理机所能提供的资源的矩阵,ST为云测试平台测试任务所需的资源的矩阵,R为测试任务在不同处理机上的执行时间的矩阵,C为测试任务件转换时间的矩阵。
3.根据权利要求1所述的云测试平台任务调度方法,其特征在于,所述基于所述云测试平台任务调度模型的测试任务调度方式进行编码,形成测试任务状态表,包括:
将所述云测试平台任务调度模型的测试任务调度方式的测试任务和所述处理机之间的映射关系形成所述测试任务编码表;
根据所述测试任务进入待执行状态的所有前置条件和测试任务执行状态形成测试任务状态表;
根据所述测试任务的执行完成时间定义所述测试任务的权重,根据所述测试任务的权重执行所述测试任务;
根据所述测试任务状态表计算执行所有所述测试任务的执行完成时间。
4.根据权利要求2所述的云测试平台任务调度方法,其特征在于,根据所述测试任务状态表设计所述改进遗传算法的适应度函数,包括:
根据所述测试任务状态表和所述测试任务编码表计算所述云测试平台在执行测试任务期间的处理机的负载;
根据所述处理机的负载计算所有处理机负载的平均值,得到所述云测试平台在执行测试任务期间的处理机的负载均衡度;
基于所述所述云测试平台完成所有测试任务的最短执行时间和所述云测试平台在执行测试任务期间的处理机的负载均衡度设定所述改进遗传算法的适应度函数。
5.根据权利要求4所述的云测试平台任务调度方法,其特征在于,所述测试任务状态表包括:测试任务编号、处理机编号、测试任务的前置任务、测试任务的后继任务、计算核心数、内存大小、硬盘大小、测试任务的前置任务的完成状态、测试任务需求资源的满足状态、测试任务待执行状态、测试任务执行中状态和测试任务已完成状态。
6.根据权利要求5所述的云测试平台任务调度方法,其特征在于,所述根据所述测试任务状态表计算执行所述测试任务的执行完成时间,包括:
根据测试任务编码表找到测试任务Ti和其对应的处理机Pj,根据所述云测试平台任务调度模型的DAG图查找所述测试任务的前驱任务和后继任务;
通过所述测试任务在不同处理机上的执行时间矩阵R计算出分配在所述处理机Pj的所以测试任务的权重;
当所述测试任务Ti的前驱任务已完成,判断所述处理机Pj是否满足所述测试任务Ti的资源需求;
当所述处理机Pj满足所述测试任务Ti的资源需求,判断所述测试任务Ti的测试任务状态表中的待执行状态、执行中状态和已完成状态均为0时,将所述测试任务Ti的待执行状态置为1;
判断所述测试任务Ti在所述处理机Pj上的所有待执行测试任务中的权重为最大时,将所述测试任务Ti的测试任务状态表中的执行中状态置为1,待执行状态置为0,并在所述处理机Pj所提供的资源矩阵SP减去该任务所需的资源,记录所述测试任务开始的时间;
将所述测试任务Ti执行完成后,将所述测试任务Ti的测试任务状态表中的已完成状态置为1,在所述处理机Pj所提供的资源矩阵SP中添加该任务所需的资源,记录所述测试任务结束的时间;
返回所述测试任务Ti的开始时间和结束时间,即得到所述测试任务Ti的执行完成时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011377220.8A CN112486651A (zh) | 2020-11-30 | 2020-11-30 | 一种基于改进遗传算法的云测试平台任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011377220.8A CN112486651A (zh) | 2020-11-30 | 2020-11-30 | 一种基于改进遗传算法的云测试平台任务调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112486651A true CN112486651A (zh) | 2021-03-12 |
Family
ID=74937833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011377220.8A Pending CN112486651A (zh) | 2020-11-30 | 2020-11-30 | 一种基于改进遗传算法的云测试平台任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112486651A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185655A (zh) * | 2022-06-23 | 2022-10-14 | 郑州轻工业大学 | 基于基因频次改进的遗传任务调度方法 |
CN116401037A (zh) * | 2023-06-05 | 2023-07-07 | 杭州谐云科技有限公司 | 一种基于遗传算法的多任务调度方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015139164A1 (zh) * | 2014-03-17 | 2015-09-24 | 华为技术有限公司 | 一种任务调度的方法、装置及设备 |
WO2016165392A1 (zh) * | 2015-04-17 | 2016-10-20 | 华南理工大学 | 一种基于遗传算法的云计算资源调度方法 |
CN108446165A (zh) * | 2018-03-12 | 2018-08-24 | 西安电子科技大学昆山创新研究院 | 一种云计算中的任务预取方法 |
CN108549977A (zh) * | 2018-03-29 | 2018-09-18 | 华南理工大学 | 基于多Agent的面向订单的柔性生产动态调度系统 |
CN110109753A (zh) * | 2019-04-25 | 2019-08-09 | 成都信息工程大学 | 基于多维度约束遗传算法的资源调度方法及系统 |
-
2020
- 2020-11-30 CN CN202011377220.8A patent/CN112486651A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015139164A1 (zh) * | 2014-03-17 | 2015-09-24 | 华为技术有限公司 | 一种任务调度的方法、装置及设备 |
WO2016165392A1 (zh) * | 2015-04-17 | 2016-10-20 | 华南理工大学 | 一种基于遗传算法的云计算资源调度方法 |
CN108446165A (zh) * | 2018-03-12 | 2018-08-24 | 西安电子科技大学昆山创新研究院 | 一种云计算中的任务预取方法 |
CN108549977A (zh) * | 2018-03-29 | 2018-09-18 | 华南理工大学 | 基于多Agent的面向订单的柔性生产动态调度系统 |
CN110109753A (zh) * | 2019-04-25 | 2019-08-09 | 成都信息工程大学 | 基于多维度约束遗传算法的资源调度方法及系统 |
Non-Patent Citations (2)
Title |
---|
RAZAQUE, A (RAZAQUE, ABDUL) 等: "Task Scheduling in Cloud Computing", 2016 IEEE LONG ISLAND SYSTEMS, APPLICATIONS AND TECHNOLOGY CONFERENCE (LISAT) * |
胡涛 等: "基于蚁群算法的测试任 务调度优化方法", 兵工学报 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185655A (zh) * | 2022-06-23 | 2022-10-14 | 郑州轻工业大学 | 基于基因频次改进的遗传任务调度方法 |
CN115185655B (zh) * | 2022-06-23 | 2023-05-12 | 郑州轻工业大学 | 基于基因频次改进的云计算平台任务调度方法 |
CN116401037A (zh) * | 2023-06-05 | 2023-07-07 | 杭州谐云科技有限公司 | 一种基于遗传算法的多任务调度方法和系统 |
CN116401037B (zh) * | 2023-06-05 | 2023-08-22 | 杭州谐云科技有限公司 | 一种基于遗传算法的多任务调度方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10924535B2 (en) | Resource load balancing control method and cluster scheduler | |
Xiao et al. | A cooperative coevolution hyper-heuristic framework for workflow scheduling problem | |
CN108874525A (zh) | 一种面向边缘计算环境的服务请求分配方法 | |
CN106228265B (zh) | 基于改进粒子群优化的总拖期运输计划调度方法 | |
CN108009003A (zh) | 一种多目标虚拟机自适应位置选择方法、分布式云系统 | |
CN112486651A (zh) | 一种基于改进遗传算法的云测试平台任务调度方法 | |
US20150170052A1 (en) | Method of reducing resource fluctuations in resource leveling | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN108170530A (zh) | 一种基于混合元启发式算法的Hadoop负载均衡任务调度方法 | |
CN111082971B (zh) | 一种面向云负载测试的共享式资源分配方法 | |
Li et al. | An effective scheduling strategy based on hypergraph partition in geographically distributed datacenters | |
CN110098964A (zh) | 一种基于蚁群算法的部署优化方法 | |
CN109067834A (zh) | 基于振荡式惯性权重的离散粒子群调度算法 | |
CN106325976A (zh) | 一种渲染任务调度处理方法及服务器 | |
CN105550825B (zh) | 云计算环境下的基于MapReduce并行化的柔性工厂作业调度方法 | |
Zhou et al. | Growable Genetic Algorithm with Heuristic-based Local Search for multi-dimensional resources scheduling of cloud computing | |
CN112884368B (zh) | 高端装备交货时间与延迟最小的多目标调度方法及系统 | |
Zhang et al. | Individualized requirement-driven multi-task scheduling in cloud manufacturing using an extended multifactorial evolutionary algorithm | |
CN110689174A (zh) | 基于公共交通的人员路线规划方法及装置 | |
CN112631612B (zh) | 一种基于遗传算法的kubernetes云平台配置的优化方法 | |
Entezari-Maleki et al. | A genetic algorithm to increase the throughput of the computational grids | |
Kumari et al. | A hybrid approach of genetic algorithm and multi objective PSO task scheduling in cloud computing | |
CN109889573A (zh) | 混合云中基于ngsa多目标的副本放置方法 | |
CN110119317A (zh) | 一种基于遗传算法的云计算任务调度方法和系统 | |
Wu et al. | A genetic-ant-colony hybrid algorithm for task scheduling in cloud system |
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 |