CN113778646B - 一种基于执行时间预测的任务层级调度方法及装置 - Google Patents

一种基于执行时间预测的任务层级调度方法及装置 Download PDF

Info

Publication number
CN113778646B
CN113778646B CN202110964365.6A CN202110964365A CN113778646B CN 113778646 B CN113778646 B CN 113778646B CN 202110964365 A CN202110964365 A CN 202110964365A CN 113778646 B CN113778646 B CN 113778646B
Authority
CN
China
Prior art keywords
queue
task
scheduling
execution time
sub
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
Application number
CN202110964365.6A
Other languages
English (en)
Other versions
CN113778646A (zh
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.)
Property Zhongda Public Environmental Investment Co ltd
Original Assignee
Property Zhongda Public Environmental Investment Co ltd
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 Property Zhongda Public Environmental Investment Co ltd filed Critical Property Zhongda Public Environmental Investment Co ltd
Priority to CN202110964365.6A priority Critical patent/CN113778646B/zh
Publication of CN113778646A publication Critical patent/CN113778646A/zh
Application granted granted Critical
Publication of CN113778646B publication Critical patent/CN113778646B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于执行时间预测的任务层级调度方法及装置,包括:根据用户设定的队列优先级和队列资源限制建立多层调度模型,当计算节点有空闲资源时,从各个叶子队列开始,获取叶子队列中每个任务集合的特征,预测当前任务集合在当前系统负载和叶子队列资源限制的情况下的执行完成所需时间,按照层级模型自底向上计算各个队列的预计完成计算时间。之后从根队列开始自顶向下,根据制定的评分机制对子队列进行打分,然后按照分数进行排序,选取靠前的队列,重复以上操作一直到叶子队列。在选取的叶子队列中,选择预测执行完成时间较短的任务集合进行调度。选择出的任务集合会包含多个任务,预测任务在各个节点上运行完成所需时间。

Description

一种基于执行时间预测的任务层级调度方法及装置
技术领域
本发明涉及大数据处理任务调度技术领域,具体涉及一种基于执行时间预测的任务层级调度方法及装置。
背景技术
各个存储用户数据的公司都需要对存储的数据进行分析,从而得出决定业务走向的决策。在数据量较少的情况下,传统数据分析工具就能胜任。但是,近几年,随着各种各样数据的增多,一旦数据量达到TB、PB级别时,传统的数据处理工具处理能力优先,此时各个公司会使用大数据分析技术来对数据进行处理即在计算集群上运行不同类型、不同数量的大数据任务比如Spark任务来处理用户数据。当集群资源充足,计算任务数较少时,Spark原先的延迟调度算法能发挥较好的任务调度作用。但是一旦任务数增多时,因为延迟调度算法仅仅针对当前的空闲资源进行调度,具有一定的局部性,如果能对所有任务执行时间有个大体的认识有助于实现全局最优的调度算法,所以本专利提出一种基于执行时间预测的大批量Spark任务层级调度方法。同时在调度过程中还存在着计算集群被多个作业进行使用,如何保证计算资源负载均衡等问题,这些在本专利设计的调度算法中也会被进一步解决。
现有技术中,直接使用循环调度学习算法神经网络来进行Presto任务调度,但是其忽略了任务调度的响应时间。一般任务要求任务提交后调度器能尽快响应该任务,并将其调度到计算节点上去运行。而使用较为复杂的神经网络可能会造成响应时间较长的情况,从而延长任务完成时间。
现有技术中,不断按照计算节点剩余CPU、内存等指标计算节点的优先级,从而调度任务到优先级较高的节点上,但是仅仅这些指标来考虑复杂的Spark任务调度还远远不够,针对计算任务还应当考虑数据本地性,任务自身的复杂度等因素。
发明内容
本发明提供的一种基于执行时间预测的任务层级调度方法,旨在解决现有技术中在调度过程中还存在着计算集群被多个作业进行使用,如何保证计算资源负载均衡等问题。
为实现上述目的,本发明采用以下技术方案:
本发明的一种基于执行时间预测的任务层级调度方法,包括以下步骤:
创建任务调度模型,所述任务调度模型包括叶子队列,所述叶子队列包括多个任务集合;
获取每个任务集合的特征向量,并根据所述特征向量和预先构建的时间预测模型预测所述每个任务集合执行完成所需时间,以得到各子队列的执行时间;
根据预设的评分机制对所述各子队列进行评分,选取评分高的子队列且所述子队列中执行时间短的任务集合进行调度。
作为优选,所述构建时间预测模型的步骤包括:
根据集成学习方法将多个基学习器组合成一个新的基学习器;
利用回归算法将所述新的基学习器的输出作为次学习器的输入,以构建时间预测模型,所述集成学习中包括所述新的基学习器和所述次学习器。
作为优选,所述根据预设的评分机制对各子队列进行评分,选取评分高的子队列且所述子队列中执行时间最短的任务集合进行调度,包括:
所述任务调度模型还包括根队列和非叶子队列,其中所述根队列和所述非叶子队列以及所述叶子队列为树状结构;
根据预设的评分机制对各子队列进行评分,从所述根队列开始从顶向下遍历选取评分高的子队列;
从所述子队列中选出执行时间最短的任务集合进行调度。
作为优选,所述从所述子队列中选出执行时间最短的任务集合进行调度,之后还包括:
所述任务集合还包括多个任务,根据所述时间预测模型预测每个任务在确定的计算节点上的执行时间;
设定目标优化函数min(y+load),当所述目标优化函数收敛时,根据网络节点拓扑图选择与最近的节点进行调度,其中y为所述任务集合中最长执行时间,load为集群负载均衡量化指标。
一种基于执行时间预测的任务层级调度装置,包括:
创建模块:用于创建任务调度模型,所述任务调度模型包括叶子队列,所述叶子队列包括多个任务集合;
预测模块:用于获取叶子队列中每个任务集合的特征向量,并根据所述特征向量和预先构建的时间预测模型预测所述每个任务集合执行完成所需时间,以得到各子队列的执行时间;
调度模块:用于根据预设的评分机制对所述各子队列进行评分,选取评分高的子队列且所述子队列中执行时间短的任务集合进行调度。
作为优选,所述预测模块包括:
组合单元:用于根据集成学习方法将多个基学习器组合成一个新的基学习器;
构建单元:用于利用回归算法将所述新的基学习器的输出作为次学习器的输入,以构建时间预测模型,所述集成学习中包括所述新的基学习器和所述次学习器。
作为优选,所述调度模块包括:
第一调度单元:所述任务调度模型还包括根队列和非叶子队列,其中所述根队列和所述非叶子队列以及所述叶子队列为树状结构;用于根据预设的评分机制对各子队列进行评分,从所述根队列开始从顶向下遍历选取评分高的子队列;
第二调度单元:用于从所述子队列中选出执行时间最短的任务集合进行调度。
作为优选,所述调度模块还包括:
第三调度单元:所述任务集合还包括多个任务,根据所述时间预测模型预测每个任务在确定的计算节点上的执行时间,所述节点为处理任务的载体;
第四调度单元:用于设定目标优化函数min(y+load),当所述目标优化函数收敛时,根据网络节点拓扑图选择与最近的节点进行任务调度,其中y为所述任务集合中最长执行时间,load为集群负载均衡量化指标。
一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如上述中任一项所述的一种基于执行时间预测的任务层级调度方法。
一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述中任一项所述的一种基于执行时间预测的任务层级调度方法。
本发明具有如下有益效果:
机器学习算法在预测方面具有较快的速度和较小的误差,本申请寻求在Spark任务调度中引入机器学习方法来预测任务执行时间,并以此为依据来调度任务,同时为了达到让任务执行时间短并且实现集群的负载均衡,使用改进后的混合群智能算法寻找最优的任务调度方案。任务是任务调度模型中的最小单元,从最小单元放入到确定的计算节点中开始模拟预测执行时间,到任务集合,到叶子队列再到非叶子队列最后到根队列,能细化预测执行时间,更准确;然后在调度中,从根队列开始,选取得分高的且执行时间短的子队列,再到任务集合,具体到任务,进行调度,优先选择执行时间短的任务先调度,让执行时间短的任务集合尽早运行完成,同时为了避免执行时间长的任务集合出现饥饿现象,对于任务集合又设定了最近调度时间,一旦某个任务长期无法调度,那么其会优先进行调度,同时对于优先级,多租户下资源限制等因素同样综合考虑。在某个任务集合执行完成后,将该任务集合调度过程中的数据记录到数据集中,新增的数据达到一定批次时重新训练预测模型。
附图说明
图1是本发明实施例实现一种基于执行时间预测的任务层级调度方法第一流程图;
图2是本发明实施例实现一种基于执行时间预测的任务层级调度方法第二流程图;
图3是本发明实施例实现一种基于执行时间预测的任务层级调度方法第三流程图;
图4是本发明实施例实现一种基于执行时间预测的任务层级调度方法的任务调度模型;
图5是本发明实施例实现一种基于执行时间预测的任务层级调度方法的任务调度算法流程图。
图6是本发明实施例实现一种基于执行时间预测的任务层级调度装置示意图;
图7是本发明实施例实现一种基于执行时间预测的任务层级调度装置的预测模块示意图;
图8是本发明实施例实现一种基于执行时间预测的任务层级调度装置的调度模块示意图;
图9是本发明实施例实现一种基于执行时间预测的任务层级调度方法的一种电子设备示意图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的权利要求书和说明书的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式,此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他单元。
实施例1
如图1所示,一种基于执行时间预测的任务层级调度方法,包括以下步骤:
S110、创建任务调度模型,所述任务调度模型包括叶子队列,所述叶子队列包括多个任务集合;
S120、获取每个任务集合的特征向量,并根据所述特征向量和预先构建的时间预测模型预测所述每个任务集合执行完成所需时间,以得到各子队列的执行时间;
S130、根据预设的评分机制对所述各子队列进行评分,选取评分高的子队列且所述子队列中执行时间短的任务集合进行调度。
根据实施例1可知,根据用户设定的队列优先级和队列资源限制建立多层调度模型,整个模型由多个非叶子队列和叶子队列组成,用户提交的任务集合存储在叶子队列中,每个队列包含几种属性:优先级、最近调度时间、最小资源限制、队列完成时间。当计算节点有空闲资源时,从层级模型中的各个叶子队列开始,获取每个任务集合特征:用户要求资源数量、计算数据量、计算复杂度,使用改进后的集成学习预测模型预测当前任务集合在当前系统负载和叶子队列资源限制的情况下的执行完成所需时间。叶子队列中各个任务集合执行完成所需时间总和作为整个叶子队列完成所需时间;非叶子队列中各个叶子队列完成所需时间与对应权重的乘积总和作为整个非叶子队列完成所需时间。从叶子节点开始一层层自底向上计算各个队列的完成时间到根队列。从根队列开始自顶向下,根据制定的评分机制对子队列进行打分,然后按照分数进行排序,选取靠前的队列。重复以上操作一直到叶子队列。在选取的叶子队列中,选择执行时间较短的任务集合进行调度。选择出的任务集合包含多个任务,使用改进后的集成学习预测模型预测任务在各个节点上的执行时间,选择的任务特征有:任务数据大小,任务复杂程度,同时因为节点确定,此时可以使用更细粒度的特征:计算复杂度、计算数据量、数据本地化程度、调度节点网络带宽、调度节点CPU/内存空闲率。假设变量y为任务集合中最长任务执行时间,设定集群负载均衡量化指标Load,最终设定优化目标:
min(y+load)
使用混合群智能优化算法来一步步优化上述目标,当上述优化目标函数收敛时即产生最佳的任务调度方案,如果有多种调度方案再根据网络节点拓扑图选择与调度器所在节点最近距离的节点进行调度。
实施例2
如图2所示,一种基于执行时间预测的任务层级调度方法,包括:
S210、创建任务调度模型,所述任务调度模型包括叶子队列,所述叶子队列包括多个任务集合;
S220、获取每个任务集合的特征向量,并根据所述特征向量和预先构建的时间预测模型预测所述每个任务集合执行完成所需时间,以得到各叶子队列的执行时间;
S230、根据集成学习方法将多个基学习器组合成一个新的基学习器;
S240、利用回归算法将所述新的基学习器的输出作为次学习器的输入,以构建时间预测模型,所述集成学习中包括所述新的基学习器和所述次学习器;
S250、根据预设的评分机制对各子队列进行评分,选取评分高的子队列且所述子队列中执行时间短的任务集合进行调度。
根据实施例2可知,集成学习是机械学习中的一种,集成学习是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。一般情况下,集成学习中的多个学习器都是同质的"弱学习器"。集成学习是训练一系列学习器,并使用某种结合策略把各个学习结果进行整合,从而获得比单个学习器更好的学习效果的一种方法。如果把单个学习器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。集成模型不是单独的ML模型,而是通过先构建后结合多个ML模型来完成学习任务。集成学习有两种思想:一是个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,然后使用组合策略,得到最终的集成模型,二是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,然后使用组合策略,得到最终的集成模型。
构建的层级调度模型中包含叶子队列和非叶子队列,叶子队列中包含任务集合,任务集合中包含多个任务。各个队列属性包含优先级、最近调度时间、最小资源限制、队列完成时间。任务集合特征包含以下:任务集合计算数据大小Ad,任务集合复杂程度,本专利选择Spark任务集合中的计算单元RDD数量Rs、RDD联结操作数量J、默认并行度Ps、是否执行推测执行Spec作为Spark任务集合的特征;当前系统负载:CPU整体空闲率WholeIdle和内存剩余率WholeRest,所处队列最小资源限制指的是CPU最小核数Minc,最终形成(Ad,Rs,J,Ps,Spec,WholeIdle,WholeRest,Minc)特征向量。S22使用改进后集成学习方法构建预测模型。为了避免单一基学习器对结果造成的影响,本专利使用多种不同种类的基学习器,同时为了避免单个基学习器学习效果较差,本专利改进了集成学习方法,将多个基学习器进行组合作为一个新的基学习器,例如将SVM+决策树组合成一个新的基学习器,同理SVM+GBDT组合,这些新基学习器中前一个模型的输出作为后一个模型的输入,整个新基学习器的输出会作为次学习器的输入。对于次学习器,本专利选择使用Logistic回归,最终次学习器的输出即为预测值。将以上任务集合特征输入到预测模型中,便可以预测出各个任务集合其运行完成时间Ttaskset
实施例3
如图3所示,一种基于执行时间预测的任务层级调度方法,包括:
S310、所述任务调度模型还包括根队列和非叶子队列,其中所述根队列和所述非叶子队列以及所述叶子队列为树状结构;根据预设的评分机制对各子队列进行评分,从所述根队列开始从顶向下遍历选取评分高的子队列;
S320、从所述子队列中选出执行时间最短的任务集合进行调度;
S330、所述任务集合还包括多个任务,根据所述时间预测模型预测每个任务在确定的计算节点上的执行时间,所述节点为处理任务的载体;
S340、设定目标优化函数min(y+load),当所述目标优化函数收敛时,根据网络节点拓扑图选择与最近的节点进行任务调度,其中y为所述任务集合中最长执行时间,load为集群负载均衡量化指标。
根据实施例3可知,计算各个叶子队列任务集合执行完成时间
(M为叶子队列中任务集合数量)
计算各个非叶子队列任务集合执行完成时间
(N为非叶子队列中叶子队列数量)
(Y为非叶子队列中非叶子队列量)
设定好队列最近调度时间Rec,队列的权重W:
如果当前队列的子队列不为叶子队列,当前队列Score为:
当前队列的子队列为叶子队列,当前队列Score为:
公式中parent TNLQ表示当前队列的父队列完成时间,a为用户调节的参数,用来权衡整体任务集合公平调度和特殊任务集合优先调度的关系。当a较大时,调度算法更注重对优先级高的任务集合进行调度,当a较小时,调度算法更加偏向于公平调度。如果某个队列始终运行的是执行时间较长的任务,那么其最终会因为Rec较小而导致Score较大,避免执行时间较长的任务出现饥饿现象。
公式中b为用户调节的参数,在算法运行初期,历史数据较少的情况下由于预测准确性较低可以降低b的值。
从根节点开始自顶向下遍历,始终选择Score较高的队列遍历,最终到达叶子队列,然后选择预测出执行完成时间较短的任务集合进行调度。
选择的任务特征有:任务数据大小Td,任务复杂程度包含选择Spark任务其中的Transformation数量Trans和是否是流水线处理方式Pipeline,数据本地化程度Locality,调度节点网络带宽Bandwidth,调度节点CPU空闲率Idle和内存剩余率Rest,最终形成(Td,Trans,Pipeline,Locality,Bandwidth,Idle,Rest),将其输入到预测模型中预测当前任务的最短执行时间。
假设有任务集合{T1,T2,T3,T4,……Tk},同时根据预测模型预测任务k被调度到计算节点j上的执行时间{T1j,T2j,T3j,T4j,……Tkj},对于任务k其被调度到各个节点的情况可以表示成{Ik1,Ik2,Ik3,Ik4……Ikj}其满足:
设变量y为任务集合中最长任务执行时间其满足:
同时设定集群负载均衡量化指标为
设定优化目标:
min(y+Load)
其中作为变量。
使用混合群智能优化算法来一步步优化上述目标,当上述优化目标函数收敛时即产生最佳的任务调度方案,如果有多种调度方案再根据网络节点拓扑图选择与调度器所在节点最近距离的节点进行调度。
实施例4
如图4和图5所示,一种基于执行时间预测的任务层级调度方法,包括:
步骤1:根据用户设定的队列优先级和队列资源限制建立多层调度模型,不同的action算子创建不同的任务集合。整个模型由多个非叶子队列和叶子队列组成,action算子提交的任务集合存储在叶子队列中,每个队列包含几种属性:权重W、最近调度时间LST、最小资源限制MRL、队列完成时间QF。其中Pri是用户初始设定的,运行过程中保持不变;LST会在运行过程中不断改变,一旦该队列被选择任务集合调度后就更新该属性,该属性最终会影响到任务的调度顺序;MRL也是由用户初始设定的,运行过程中不会改变;QF是预测模型预测出来的该队列中的任务集合执行完成需要多少时间,其会随着调度算法运行而不断变化。
步骤2:当计算节点有空闲资源时,从各个叶子队列开始,获取每个任务集合特征,包含以下内容:任务集合计算数据大小Ad,其值需要判断当前任务集合是否存在父依赖,如果存在父依赖,则当前任务集合计算数据大小即为上一个阶段shuffle输出数据大小,如果不存在父依赖则当前任务集合计算数据大小即为资源大小。任务集合复杂程度,对于Spark任务集合,本专利选择任务集合中的计算单元RDD数量Rs、RDD联结操作数量J、默认并行度Ps、是否执行推测执行Spec作为Spark任务集合的特征;其中Rs、J两个属性可以根据提交的Spark任务集合所形成的DAG计算得出,Ps以及Spec需要从Spark任务集合的配置文件中获取;当前系统负载:CPU整体空闲率
Wholeldle,其根据以下公式进行计算:
同理内存剩余率WholeIdle也使用以上方法计算:
所处队列最小资源限制指的是CPU最小核数Minc,这两者的都是初始时用户设定的,最终形成(Ad,Rs,J,Ps,Spec,WholeIdle,WholeRest,Minc)任务集合特征。
使用改进后集成学习方法构建预测模型。为了避免单一基学习器对结果造成的影响,本专利使用多种不同种类的基学习器,同时为了避免单个基学习器学习效果较差,本专利改进了集成学习方法,将多个基学习器进行组合作为一个新的基学习器,例如将SVM+决策树组合成一个新的基学习器,同理SVM+GBDT组合,这些新基学习器中前一个模型的输出作为后一个模型的输入,整个新基学习器的输出会作为次学习器的输入。对于次学习器,本专利选择使用Logistic回归,最终次学习器的输出即为预测值。将以上任务集合特征输入到预测模型中,便可以预测出各个任务集合其运行完成时间Ttaskset
步骤3:首先使用以下公式计算各个叶子队列任务集合执行完成时间
(M为叶子队列中任务集合数量)
之后从下往上,计算各个非叶子队列任务集合执行完成时间
(N为非叶子队列中叶子队列数量)
叶子节点到根节点之间可能会涉及多个非叶子节点,所以需要不断反向计算直到根节点
(Y为非叶子队列中非叶子队列数量)
以上得出的时间就是队列属性中队列完成时间QF值。
步骤4:从根节点开始自顶向下,按照评分机制计算规则计算各个队列的分值,评分计算规则如下:
如果当前队列是非叶子队列
如果当前队列是叶子队列
current Time表示当前时间,start Time表示调度算法开始运行时间,Rec队列最近调度时间,其会随着不断调度而不断改变,W为用户设定的队列的权重,在调度算法运行过程中不变,parent TNLQ表示当前队列的父队列,a为用户调节的参数,用来权衡整公平调度和优先调度的关系。当a较大时,调度算法更注重对优先级高的任务集合进行调度,当a较小时,调度算法更加偏向于公平调度。如果某个队列始终运行的是长时间执行的任务,那么其最终会因为Rec较小而导致Score较大,从而优先调度该队列中任务,避免了长时间执行的任务的饥饿现象。b为用户调节的参数,在算法运行初期,历史数据较少的情况下由于预测准确性较低可以降低b的值。
从根节点开始自顶向下遍历,始终选择Score较高的队列遍历,最终到达叶子队列,在叶子队列中选择预测出执行完成时间较短的任务集合进行调度。我们基于这样的思想:让执行时间短的任务集合尽早运行完成,同时为了避免执行时间长的任务集合出现饥饿现象,我们对于任务集合又设定了最近调度时间,一旦某个任务长期无法调度,那么其会优先进行调度。同时对于优先级,多租户下资源限制等因素本专利也进行了考虑。
步骤5:使用步骤2中相同的集成学习方法构建预测模型,预测任务集合中的任务在各个节点上的执行时间,选择的任务特征有:任务数据大小Td,任务复杂程度:选择其中的Transformation数量Trans,是否是流水线处理方式Pipeline;因为调度节点确定,我们便可以进一步考虑更细粒度的特征包含数据本地化程度Locality即Task和对应其处理数据的位置关系,调度节点网络带宽Bandwidth,调度节点CPU空闲率Idle和内存剩余率Rest,最终形成(Td,Trans,Pipeline,Locality,Bandwidth,Idle,Rest)任务特征,将其输入到预测模型中预测当前任务的最短执行时间。
步骤6:假设并行任务集合{T1,T2,T3,T4…,Tk},同时根据预测模型预测出任务k被调度到计算节点j上的执行时间得到{T1j,T2j,T3j,T4j...,Tkj},对于任务k其被调度到各个节点的情况可以表示成{Ik1,Ik2,Ik3,Ik5...,Ikj}其满足:
设变量y为任务集合中最长任务执行时间其满足:
同时设定集群负载均衡量化指标为
设定优化目标:
min(y+Load)
其中作为变量。
使用混合群智能优化算法来一步步优化上述目标,当上述优化目标函数收敛时即产生最佳的任务调度方案,如果有多种调度方案再根据网络节点拓扑图选择与调度器所在节点最近距离的节点进行调度。
实施例6
一种具体的实施方式如下,包括:
步骤1:根据用户设定的队列优先级和队列资源限制建立多层调度模型,不同的action算子的任务集合。整个模型由多个非叶子队列和叶子队列组成,用户提交的任务集合存储在叶子队列中,每个队列包含几种属性:权重W、最近调度时间LST、最小资源限制MRL、队列完成时间QF。
步骤2:当计算节点有空闲资源时,从各个叶子队列开始,任务集合特征包含以下:任务集合计算数据大小Ad,任务集合复杂程度,本专利选择Spark任务集合中的计算单元RDD数量Rs、RDD联结操作数量J、默认并行度Ps、是否执行推测执行Spec作为Spark任务集合的特征;当前系统负载:CPU整体空闲率WholeIdle和内存剩余率WholeRest,所处队列最小资源限制指的是CPU最小核数Minc,最终形成(Ad,Rs,J,Ps,Spec,WholeIdle,WholeRest,Minc)特征向量。在一个Spark例子中,某个任务集合没有父依赖,其直接读取100G的文件,同时该任务集合中RDD数量为6,并且涉及到6个union操作,系统默认设置的并行度为8,同时开启了推测执行。此时整个计算节点集群有4个CPU Core空闲,8G的内存空闲,而整个集群CPU核数有64,内存有128G,任务集合所在队列的最小CPU Core数为8则该条件下形成的特征向量为(100,6,6,8,1,0.06,0.06,8)。
使用改进后集成学习方法构建预测模型。假设得到root.job1.cluster叶子队列中所有任务集合的预测执行时间{Ttaskset1=75,Ttaskset2=65,Ttaskset3=35},root.job1.regression叶子队列中所有任务集合的预测执行时间{Ttaskset1=15,Ttaskset2=35,Ttaskset3=25,Ttaskset4=5,Ttaskset5=45},root.job2.classification叶子队列中所有任务集合的预测执行时间{Ttaskset1=5,Ttaskset2=65,Ttaskset3=35,Ttaskset4=85,Ttaskset5=15},以上所有单位均为分钟。
步骤3:首先使用以下公式计算各个叶子队列任务集合执行完成时间root.job1.cluster叶子队列:
root.job1.regression叶子队列:
root.job2.classification叶子队列:
之后从下往上,计算各个非叶子队列任务集合执行完成时间
root.job1非叶子队列
root.job2非叶子队列
以上得出的时间就是队列属性中队列完成时间QF值。
步骤4:从根节点开始自顶向下,按照评分机制计算规则计算各个队列的分值,评分计算结果如下:
root.job1的Score
root.job2的Score
从根节点开始自顶向下遍历,始终选择Score较高的队列遍历,所以本次选择root.job1,之后计算
root.job1.cluster的Score
root.job2.regression的Score
最终选择root.job1.cluster叶子队列,在叶子队列中选择预测出执行完成时间较短的任务集合进行调度,如上所述选择Ttaskset3=35的任务集合进行调度。
步骤5:使用步骤2中相同的集成学习方法构建预测模型,预测任务集合中的各个任务在各个节点上的执行时间,选择的任务特征有:任务数据大小Td,任务复杂程度包含选择Spark任务其中的Transformation数量Trans和是否是流水线处理方式Pipeline,数据本地化程度Locality,调度节点网络带宽Bandwidth,调度节点CPU空闲率Idle和内存剩余率Rest,最终形成(Td,Trans,Pipeline,Locality,Bandwidth,Idle,Rest)任务特征,将其输入到预测模型中预测当前任务的最短执行时间。假设任务T1被调度到节点2上运行,节点2此时并没有存储T1所需要的数据,所以此时数据本地化程度很低,节点2网络带宽为100MB/s,此时节点2有4个CPU Core空闲,8G的内存空闲,总CPU核数有16,内存有32G,此时可以得出任务T1被调度到节点2上运行对应的特征为(10,20,1,100,0.25,0.25)。
最终假设TaskSet3并行任务集合{T1,T2,T3,T4,T5},同时根据预测模型预测出各个任务被调度到计算节点j上的执行时间得到{T1j,T2j,T3j,T4j,T5j}对于任务k其被调度到各个节点的情况可以表示成{Ik1,Ik2,Ik3,Ik5…,Ikj}/>其满足:
设变量y为任务集合中最长任务执行时间其满足:
同时设定集群负载均衡量化指标为
设定优化目标:
min(y+Load)
其中作为变量
使用混合群智能优化算法来一步步优化上述目标,当上述优化目标函数收敛时即产生最佳的任务调度方案,如果有多种调度方案再根据网络节点拓扑图选择与调度器所在节点最近距离的节点进行调度。
实施例7
如图6所示,一种基于执行时间预测的任务层级调度装置,包括:
创建模块10:用于创建任务调度模型,所述任务调度模型包括叶子队列,所述叶子队列包括多个任务集合;
预测模块20:用于获取叶子队列中每个任务集合的特征向量,并根据所述特征向量和预先构建的时间预测模型预测所述每个任务集合执行完成所需时间,以得到各叶子队列的执行时间;
调度模块30:用于根据预设的评分机制对各子队列进行评分,选取评分高的子队列且所述子队列中执行时间短的任务集合进行调度。
实施例8
如图7所示,一种基于执行时间预测的任务层级调度装置的预测模块20包括:
组合单元22:用于根据集成学习方法将多个基学习器组合成一个新的基学习器;
构建单元24:用于利用回归算法将所述新的基学习器的输出作为次学习器的输入,以构建时间预测模型,所述集成学习中包括所述新的基学习器和所述次学习器。
实施例9
如图8所示,一种基于执行时间预测的任务层级调度装置的调度模块30包括:
第一调度单元32:所述任务调度模型还包括根队列和非叶子队列,其中所述根队列和所述非叶子队列以及所述叶子队列为树状结构;用于根据预设的评分机制对各子队列进行评分,从所述根队列开始从顶向下遍历选取评分高的子队列;
第二调度单元34:用于从所述子队列中选出执行时间最短的任务集合进行调度。
第三调度单元36:所述任务集合还包括多个任务,根据所述时间预测模型预测每个任务在确定的计算节点上的执行时间,所述节点为处理任务的载体;
第四调度单元38:用于设定目标优化函数min(y+load),当所述目标优化函数收敛时,根据网络节点拓扑图选择与最近的节点进行任务调度,其中y为所述任务集合中最长执行时间,load为集群负载均衡量化指标。
实施例10
如图9所示,一种电子设备,包括存储器1101和处理器1102,所述存储器1101用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器1102执行以实现上述的一种基于执行时间预测的任务层级调度方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述的一种基于执行时间预测的任务层级调度方法。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器1101中,并由处理器1102执行,并由输入接口1105和输出接口1106完成数据的I/O接口传输,以完成本发明,一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机设备中的执行过程。
计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,存储器1101、处理器1102,本领域技术人员可以理解,本实施例仅仅是计算机设备的示例,并不构成对计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入器1107、网络接入设备、总线等。
处理器1102可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器1102、数字信号处理器1102(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgRAM503mableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器1102可以是微处理器1102或者该处理器1102也可以是任何常规的处理器1102等。
存储器1101可以是计算机设备的内部存储单元,例如计算机设备的硬盘或内存。存储器1101也可以是计算机设备的外部存储设备,例如计算机设备上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)等,进一步地,存储器1101还可以既包括计算机设备的内部存储单元也包括外部存储设备,存储器1101用于存储计算机程序以及计算机设备所需的其他程序和数据,存储器1101还可以用于暂时地存储在输出器1108,而前述的存储介质包括U盘、移动硬盘、只读存储器ROM1103、随机存储器RAM1104、碟盘或光盘等各种可以存储程序代码的介质。

Claims (8)

1.一种基于执行时间预测的任务层级调度方法,其特征在于,包括以下步骤:
创建任务调度模型,所述任务调度模型包括叶子队列,所述叶子队列包括多个任务集合;
获取每个任务集合的特征向量,并根据所述特征向量和预先构建的时间预测模型预测所述每个任务集合执行完成所需时间,以得到各子队列的执行时间;
根据预设的评分机制对所述各子队列进行评分,选取评分高的子队列且所述子队列中执行时间短的任务集合进行调度;
所述构建时间预测模型的步骤包括:
根据集成学习方法将多个基学习器组合成一个新的基学习器;
利用回归算法将所述新的基学习器的输出作为次学习器的输入,以构建时间预测模型,所述集成学习中包括所述新的基学习器和所述次学习器。
2.根据权利要求1所述的一种基于执行时间预测的任务层级调度方法,其特征在于,所述根据预设的评分机制对所述各子队列进行评分,选取评分高的子队列且所述子队列中执行时间短的任务集合进行调度,包括:
所述任务调度模型还包括根队列和非叶子队列,其中所述根队列和所述非叶子队列以及所述叶子队列为树状结构;
根据预设的评分机制对各子队列进行评分,从所述根队列开始从顶向下遍历选取评分高的子队列;
从所述子队列中选出执行时间最短的任务集合进行调度。
3.根据权利要求2所述的一种基于执行时间预测的任务层级调度方法,其特征在于,所述从所述子队列中选出执行时间最短的任务集合进行调度,之后还包括:
所述任务集合还包括多个任务,根据所述时间预测模型预测每个任务在确定的计算节点上的执行时间,所述节点为处理任务的载体;
设定目标优化函数min(y+load),当所述目标优化函数收敛时,根据网络节点拓扑图选择与最近的节点进行任务调度,其中y为所述任务集合中最长执行时间,load为集群负载均衡量化指标。
4.一种基于执行时间预测的任务层级调度装置,其特征在于,包括:
创建模块:用于创建任务调度模型,所述任务调度模型包括叶子队列,所述叶子队列包括多个任务集合;
预测模块:用于获取叶子队列中每个任务集合的特征向量,并根据所述特征向量和预先构建的时间预测模型预测所述每个任务集合执行完成所需时间,以得到各子队列的执行时间;
调度模块:用于根据预设的评分机制对所述各子队列进行评分,选取评分高的子队列且所述子队列中执行时间短的任务集合进行调度;
所述预测模块包括:
组合单元:用于根据集成学习方法将多个基学习器组合成一个新的基学习器;
构建单元:用于利用回归算法将所述新的基学习器的输出作为次学习器的输入,以构建时间预测模型,所述集成学习中包括所述新的基学习器和所述次学习器。
5.根据权利要求4所述的一种基于执行时间预测的任务层级调度装置,其特征在于,所述调度模块包括:
第一调度单元:所述任务调度模型还包括根队列和非叶子队列,其中所述根队列和所述非叶子队列以及所述叶子队列为树状结构;用于根据预设的评分机制对各子队列进行评分,从所述根队列开始从顶向下遍历选取评分高的子队列;
第二调度单元:用于从所述子队列中选出执行时间最短的任务集合进行调度。
6.根据权利要求4所述的一种基于执行时间预测的任务层级调度装置,其特征在于,所述调度模块还包括:
第三调度单元:所述任务集合还包括多个任务,根据所述时间预测模型预测每个任务在确定的计算节点上的执行时间,所述节点为处理任务的载体;
第四调度单元:用于设定目标优化函数min(y+load),当所述目标优化函数收敛时,根据网络节点拓扑图选择与最近的节点进行任务调度,其中y为所述任务集合中最长执行时间,load为集群负载均衡量化指标。
7.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如权利要求1~3中任一项所述的一种基于执行时间预测的任务层级调度方法。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序使计算机执行时实现如权利要求1~3中任一项所述的一种基于执行时间预测的任务层级调度方法。
CN202110964365.6A 2021-08-22 2021-08-22 一种基于执行时间预测的任务层级调度方法及装置 Active CN113778646B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110964365.6A CN113778646B (zh) 2021-08-22 2021-08-22 一种基于执行时间预测的任务层级调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110964365.6A CN113778646B (zh) 2021-08-22 2021-08-22 一种基于执行时间预测的任务层级调度方法及装置

Publications (2)

Publication Number Publication Date
CN113778646A CN113778646A (zh) 2021-12-10
CN113778646B true CN113778646B (zh) 2024-04-05

Family

ID=78838651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110964365.6A Active CN113778646B (zh) 2021-08-22 2021-08-22 一种基于执行时间预测的任务层级调度方法及装置

Country Status (1)

Country Link
CN (1) CN113778646B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114675965B (zh) * 2022-03-10 2023-05-02 北京百度网讯科技有限公司 联邦学习方法、装置、设备和介质
CN114741172B (zh) * 2022-04-06 2023-05-02 深圳鲲云信息科技有限公司 人工智能模型的算子调度方法、装置、设备及存储介质
CN115016919B (zh) * 2022-08-05 2022-11-04 阿里云计算有限公司 任务调度方法、电子设备和存储介质
CN115145591B (zh) * 2022-08-31 2022-12-06 之江实验室 一种基于多中心的医疗etl任务调度方法、系统及装置
CN117032993B (zh) * 2023-10-08 2024-04-05 麒麟软件有限公司 任务调度方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101702833A (zh) * 2009-10-27 2010-05-05 武汉理工大学 一种移动网格任务调度方法
CN107273209A (zh) * 2017-06-09 2017-10-20 北京工业大学 基于最小生成树聚类改进遗传算法的Hadoop任务调度方法
CN109376012A (zh) * 2018-10-10 2019-02-22 电子科技大学 一种针对异构环境的基于Spark的自适应任务调度方法
CN109981749A (zh) * 2019-01-30 2019-07-05 北京理工大学 一种基于极限梯度提升的云工作流任务执行时间预测方法
WO2020206705A1 (zh) * 2019-04-10 2020-10-15 山东科技大学 一种基于集群节点负载状态预测的作业调度方法
CN112148471A (zh) * 2019-06-29 2020-12-29 华为技术服务有限公司 分布式计算系统中资源调度的方法和装置
CN112328399A (zh) * 2020-11-17 2021-02-05 中国平安财产保险股份有限公司 一种集群资源调度方法、装置、计算机设备及存储介质
CN112583470A (zh) * 2020-12-15 2021-03-30 西安寰宇卫星测控与数据应用有限公司 一种基于最优匹配的卫星测控规划调度方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101702833A (zh) * 2009-10-27 2010-05-05 武汉理工大学 一种移动网格任务调度方法
CN107273209A (zh) * 2017-06-09 2017-10-20 北京工业大学 基于最小生成树聚类改进遗传算法的Hadoop任务调度方法
CN109376012A (zh) * 2018-10-10 2019-02-22 电子科技大学 一种针对异构环境的基于Spark的自适应任务调度方法
CN109981749A (zh) * 2019-01-30 2019-07-05 北京理工大学 一种基于极限梯度提升的云工作流任务执行时间预测方法
WO2020206705A1 (zh) * 2019-04-10 2020-10-15 山东科技大学 一种基于集群节点负载状态预测的作业调度方法
CN112148471A (zh) * 2019-06-29 2020-12-29 华为技术服务有限公司 分布式计算系统中资源调度的方法和装置
CN112328399A (zh) * 2020-11-17 2021-02-05 中国平安财产保险股份有限公司 一种集群资源调度方法、装置、计算机设备及存储介质
CN112583470A (zh) * 2020-12-15 2021-03-30 西安寰宇卫星测控与数据应用有限公司 一种基于最优匹配的卫星测控规划调度方法

Also Published As

Publication number Publication date
CN113778646A (zh) 2021-12-10

Similar Documents

Publication Publication Date Title
CN113778646B (zh) 一种基于执行时间预测的任务层级调度方法及装置
CN110737529B (zh) 一种面向短时多变大数据作业集群调度自适应性配置方法
Shen et al. Mathematical modeling and multi-objective evolutionary algorithms applied to dynamic flexible job shop scheduling problems
CN114756358B (zh) 一种dag任务调度方法、装置、设备及存储介质
CN103631657B (zh) 一种基于MapReduce的任务调度方法
CN109992404A (zh) 集群计算资源调度方法、装置、设备及介质
CN113627871B (zh) 一种基于多目标粒子群算法的工作流调度方法、系统及存储介质
CN112416585B (zh) 面向深度学习的gpu资源管理与智能化调度方法
CN104408106B (zh) 一种用于分布式文件系统中大数据查询的调度方法
WO2015066979A1 (zh) 一种MapReduce任务资源配置参数的机器学习方法
CN109165081B (zh) 基于机器学习的Web应用自适应资源配置方法
US20230222000A1 (en) Recommendations for scheduling jobs on distributed computing devices
US20200310874A1 (en) Job scheduler, job schedule control method, and storage medium
CN108427602B (zh) 一种分布式计算任务的协同调度方法及装置
CN114675975B (zh) 一种基于强化学习的作业调度方法、装置及设备
US20220405129A1 (en) Workflow scheduling method and system based on multi-target particle swarm algorithm, and storage medium
CN109710372A (zh) 一种基于猫头鹰搜索算法的计算密集型云工作流调度方法
CN104657217A (zh) 一种基于非均匀粒度分类的云环境任务调度方法
CN113255873A (zh) 一种聚类天牛群优化方法、系统、计算机设备和存储介质
CN110222824B (zh) 智能算法模型自主生成及进化方法、系统、装置
Li et al. A QoS-based scheduling algorithm for instance-intensive workflows in cloud environment
CN113504998A (zh) 一种任务调度方案的确定方法、装置和设备
Miao et al. Efficient flow-based scheduling for geo-distributed simulation tasks in collaborative edge and cloud environments
CN113032367A (zh) 面向动态负载场景的大数据系统跨层配置参数协同调优方法和系统
CN110958192B (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