CN110321222B - 基于决策树预测的数据并行作业资源分配方法 - Google Patents

基于决策树预测的数据并行作业资源分配方法 Download PDF

Info

Publication number
CN110321222B
CN110321222B CN201910591774.9A CN201910591774A CN110321222B CN 110321222 B CN110321222 B CN 110321222B CN 201910591774 A CN201910591774 A CN 201910591774A CN 110321222 B CN110321222 B CN 110321222B
Authority
CN
China
Prior art keywords
job
resource allocation
completion time
decision tree
resource
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
CN201910591774.9A
Other languages
English (en)
Other versions
CN110321222A (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201910591774.9A priority Critical patent/CN110321222B/zh
Publication of CN110321222A publication Critical patent/CN110321222A/zh
Application granted granted Critical
Publication of CN110321222B publication Critical patent/CN110321222B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于决策树预测的数据并行作业资源分配方法,包括1:获取已完成的作业数据集;2、使用已完成的作业数据集对决策树模型进行训练;3、预估每个作业的初始资源分配预估值;4、使用初始资源分配算法对已获得初始资源分配预估值的作业进行资源初分配,得到每个作业的初始资源分配值;5、将获得初始资源分配值的作业提交给计算机集群开始执行。本发明通过决策树模型预测不同计算资源分配下的作业完成时间差,找到使得作业完成时间最小的计算资源分配,得到较佳的计算资源分配预估值。该方法利用底层网络、磁盘读写操作等作为预测特征,反映分布式计算框架的网络传输和磁盘输入输出开销,从而实现比建模预测更高的预测精确性。

Description

基于决策树预测的数据并行作业资源分配方法
技术领域
本发明属于并行与分布计算领域,特别是涉及一种基于决策树预测的数据并行作业资源分配方法。
背景技术
资源分配或资源管理是计算机学科的主要研究问题之一,涉及到网络系统、分布式系统、云环境等问题。其目的是将为用户提交的作业分配(allocation) 和指派(assignment)特定的计算资源(如CPU核数)、网络资源、存储资源等等。由于资源分配可以优化数据中心、云平台的作业完成效率和资源利用率,因此是分布式计算框架的一个重要功能部件。尤其是像Hadoop和Spark的分布式系统中,一个数据并行作业往往会涉及多个任务并发执行,其中包含了通过网络向各个任务传输数据、任务计算的过程、计算结果写入磁盘这三个过程。数据并行作业的资源分配直接影响到任务的并发数量。因此,数据并行作业的完成进度的资源管理。和其他背景下的资源管理方法不同,数据并行作业的资源管理并不能提前知道作业的时间长度和作业所需要的最佳资源分配。数据并行作业的资源管理方法存在两个难点:(1)每个数据并行作业的完成时间会随着分配的资源数量而变化。由于底层网络和磁盘输入输出操作的不确定性,很难确定最佳的资源分配。直觉上,分配越多的计算资源有望加快作业的完成时间。然而,这会增加网络通信的开销和磁盘输入输出的等待时间。因此,一味增加计算资源并不能加快作业完成进度,而是应该根据作业的具体情况来确定最佳的资源分配。(2)当多个作业同时提交或者陆续提交,如何优化它们的资源冲突,以便达到预期的优化目标(如最短平均作业完成时间或者最大化资源利用率)。
现在的针对数据并行作业的资源管理(如YARN、Mesos)主要采用中心式调度,负责所有的任务调度和资源管理。主要问题在于难以支持丰富的策略。下面,从不同类型调度策略的角度来分析主要的资源管理方法:(1)先到先服务FIFO (First-In-First-Out)方法,将先提交的作业作为优先服务的对象,但这不利于优化平均作业完成时间;(2)最短作业优先的方法,根据作业的时间长度来确定作业调度的优先级并且总是优先那些时间较短的作业,但这种方法容易导致较长时间的作业总是得不到资源分配,最终出现“饥饿”;(3)最大最小公平性(Max-min Fairness)策略是指满足每个作业的最小需求,然后将没有使用的资源均匀的分配给需要更多资源的作业;(4)主流资源公平(Dominant Resource Fairness)的方式保证所有Framework公平性和合理的资源利用率,没有考虑到多种资源类型(如CPU、内存、带宽、磁盘IO)。(5)Tetris是一个兼顾多种资源的分配管理器,可以避免资源碎片和死锁的问题。但是,以上方法都没有解决数据并行作业的最佳资源分配问题。
决策树是一种分类方法,也可以用于回归问题。我们之所以选择决策树来搜索最佳资源分配,是因为资源分配本身是一个决策的过程。随着分配的计算资源数量增加,数据并行作业的完成时间不是单调变化的。正如前所述,并非使用的计算资源越多,作业的完成时间越少。当计算资源数量超过一个阈值,作业的完成时间不能减少,反而增加。这就导致了计算资源过分配的问题。最佳的资源分配问题是在给定的一系列条件(输入大小、作业类型、其他设置)下,求解这个阈值。决策树方法可以把最优资源分配作为一个决策问题,即在给定的条件下判断是否继续增加资源而不出现计算资源过分配。
发明内容
本发明要解决的技术问题是针对数据并行作业如何优化资源分配从而使得数据并行作业技能获得较好的资源分配又能缩短作业完成时间,提供一种基于决策树预测的数据并行作业资源分配方法。
为解决该问题,本发明所采用的技术方案是:
一种基于决策树预测的数据并行作业资源分配方法,包括以下步骤:
步骤1:获取已完成的作业数据集;每条完成的作业为一个样本,样本特征包括作业的各项特征和标签,所述标签是指作业的完成时间;
步骤2:使用已完成的作业数据集对决策树模型进行训练;
步骤3:作业端接收一批作业,通过决策树模型预估该批作业中每个作业的初始资源分配预估值;
步骤4:使用初始资源分配算法对已获得初始资源分配预估值的该批作业进行资源初分配,进一步对每个作业的资源分配预估值进行调整,得到每个作业的初始资源分配值;
步骤5:将获得初始资源分配值的该批作业提交给计算机集群开始执行。
为进一步优化方案,做了以下改进:
进一步地,步骤2中使用已完成的作业数据集对决策树模型进行训练的方法是:
步骤2.1:从已完成的作业数据集中任选两个原始样本构造成新样本,每个原始样本为一个作业的执行数据,新样本的特征包含原来两个样本的特征,新样本的标签是原来两个样本的作业完成时间之差;
步骤2.2:将已完成的作业数据集中的所有新样本组合成新样本集;
步骤2.3:使用新样本集中的数据训练决策树模型。
进一步地,步骤3中通过决策树模型预估该批作业中每个作业的初始资源分配预估值的方法是:
步骤3.1:获取该批作业中某一作业1的特征,构造虚拟作业2,使作业2 也采用完全相同的特征,作业1和作业2的计算资源不同,将作业1和作业2 组成一个预测样本,所述预测样本的特征包含作业1和作业2的特征;
步骤3.2:通过决策树模型,预测作业1和作业2的作业完成时间之差;
步骤3.3:对作业1和作业2分配不同的计算资源,找到完成时间最小的那个作业的计算资源分配,将该计算资源大小作为作业1的初始资源分配预估值。
进一步地,步骤3.3对作业1和作业2分配不同的计算资源,找到完成时间最小的那个作业的计算资源分配的方法是二分搜索法。
进一步地,所述二分搜索法具体是:
步骤3.3.1:设可用计算资源总量为C,对作业1和作业2分别分配C/2个 CPU核和C个CPU核,通过决策树模型预测两个作业的作业完成时间差ΔJCT;
步骤3.3.2:若ΔJCT≤0,则表示分配C/2个CPU核时,作业1的完成时间更小,推断C/2比C计算资源分配更好,则在(0,C/2)中继续搜索计算资源,否则,推断C比C/2计算资源分配更好;如果C/2比C计算资源分配更好,那么下一次搜索时,分配作业C/4个CPU核,观察作业的计算时间,若ΔJCT≤0,则表示分配C/4个CPU核时,作业1的完成时间更小,推断C/4比C/2计算资源分配更好,则在(0,C/4)中继续搜索计算资源。
步骤3.3.3:以此类推,不断重复二分搜索的过程,直到搜索区间缩小到设定的阈值时停止。
进一步地,步骤4中使用初始资源分配算法对已获得初始资源分配预估值的该批作业进行资源初分配的方法是:
步骤4.1:获取计算机集群中最大可用的CPU核数;
步骤4.2:对该批作业按照执行时间长短进行递增排序;
步骤4.3:使用最短作业最优分配方法将所有可用的资源分配给按执行时间排序在前的作业,将已分配资源的所有作业分为一组G1,未能分配上资源的作业划分到另一组G2;
步骤4.4:假设从第一组G1中选择一个作业作为捐助者捐献出θ计算资源迁移给第二组G2,第二组G2选出一个作业作为受助者,第一组G1中的捐助者在减少计算资源θ后,其完成时间增加ΔT1,第二组G2中的受助者在增加计算资源θ后,其完成时间减少ΔT2;
步骤4.5:若ΔT1>ΔT2,重复步骤4.4,直到ΔT1≤ΔT2,记录此刻第一组和第二组中的每个作业的资源分配量并作为每个作业的初始资源分配值,ΔT1表示G1中捐助者扣除计算资源后的时间增加量,ΔT2表示G2中受助者增加计算资源后的时间减少量;
进一步地,步骤4.4中所述受助者和捐助者的选出方法为:
捐助者的选出方法为:
从G1中每一个作业的初始资源分配预估值中扣除θ个CPU核后,通过决策树模型预测它们的作业完成时间增加量,作业完成时间增加量最少的那个作业作为捐助者;
受助者的选出方法为:
将θ个CPU核分别分配给G2的每一个作业,通过决策树模型预测它们的作业完成时间减少量,作业完成时间减少得最多的那个作业做为受助者。
进一步地,基于决策树预测的数据并行作业资源分配方法还包括
步骤6:在作业执行过程中,每完成一次机器学习作业迭代后,对计算资源进行动态微调整。
进一步地,所述动态微调整的方法是:
步骤6.1:当机器学习作业执行完每次迭代后,记录本轮迭代的完成时间;
步骤6.2:选择微调方向和微调资源步长,开始微调资源分配,并执行下一轮迭代,所述微调方向是指递增微调资源或者递减微调资源,所述微调资源步长是指在一轮机器学习作业迭代结束后,作业的计算资源发生变化,其计算资源变化的大小为微调资源步长;
步骤6.3:比较下一轮迭代和上一轮迭代的完成时间,如果完成时间在减少,继续采用相同的微调方向和微调资源步长,调整下下一轮迭代的资源分配,如果完成时间在增加,则采用相反的微调方向,微调资源步长为两倍的原微调资源步长,调整下下一轮迭代的资源分配;
步骤6.4:重复步骤6.1至6.3,直到机器学习作业完成所有迭代。
进一步地,所述作业的特征包括作业的输入数据大小、内存、任务数量、有向循环图DAG宽度、有向循环图DAG深度。
与现有技术相比,本发明所取得的有益效果是:
本发明基于决策树预测的数据并行作业资源分配方法,1)通过使用已经执行的作业的历史数据对决策树模型进行训练,然后通过决策树模型来预测不同计算资源分配下的作业完成时间差,推断出完成时间更小的那个作业,其计算资源分配更好,从而找到使得作业完成时间最小的计算资源分配,得到较佳的计算资源分配预估值。本发明没有通过直接预测作业的完成时间,如果分别预测两个作业的完成时间,再通过比较找出最优分配,会引入较大的预测错误,而是通过充分利用底层网络、磁盘读写操作等作为预测特征,能够反映分布式计算框架的网络传输和磁盘输入输出开销,从而实现比建模预测更高的预测精确性。
2)本发明初始资源分配算法,避免在个别作业上消耗大量资源却实现较少的性能提升,通过不断把计算资源从分配效率低即完成时间长的作业迁移到分配效率高即完成时间更短的作业,从而实现总作业完成时间最小化的初始分配。
3)本发明还设计了一种针对迭代作业的动态调节资源算法。可以在迭代作业运行时,根据前后两轮迭代的完成时间来判断是否调节资源来获得较好的性能。这个动态调节的资源分配方法是为了解决部分作业完成后,回收这些作业释放的计算资源,将释放的资源重新分配给正在执行的作业。
附图说明
图1为本发明总体流程图;
图2为本发明初始资源分配算法的流程图;
图3为本发明初始资源分配算法的流程图;
图4为基于决策树的预测模型和支持向量回归预测模型的比较示意图;
图5为评价基于决策树预测模型的分配方法性能的作业完成时间实测实验示意图;
图6为动态调整迭代作业的实测实验示意图;
图7为多作业资源分配时的不同分配方法的完成时间的对比示意图。
具体实施方式
图1至图7示出了本发明基于决策树预测的数据并行作业资源分配方法的一种实施例,整个分配方法包括三个过程:决策树预测模型训练并预测单个作业的初始资源;然后对初始资源分配进行优化;最后再动态调整资源分配。其中,用户提交作业后,作业特征会被抽取出来用于预测其初始资源分配预估值。预测的结果被输出给初始资源分配算法来计算每个作业的初始资源分配。在确定每个作业的初始资源分配值后,作业会被提交给Spark集群,开始执行。在作业执行的过程中,动态资源调整的方法可以在迭代机器学习作业的前后迭代之间改变计算资源,进一步减小完成时间。具体步骤为:
一种基于决策树预测的数据并行作业资源分配方法,包括以下步骤:
步骤1:获取已完成的作业数据集;每条完成的作业为一个样本,样本特征包括作业的各项特征和标签,所述标签是指作业的完成时间;
步骤2:使用已完成的作业数据集对决策树模型进行训练;
步骤2.1:从已完成的作业数据集中任选两个原始样本构造成新样本,所述两个原始样本分别代表两个不同的作业,新样本的特征包含原来两个样本的特征,新样本的标签是原来两个样本的作业完成时间之差;
步骤2.2:用新样本的数据训练决策树模型。
本实施例通过对作业数据集进行处理,重新构造新样本,通过新样本对决策树模型进行训练,从而通过决策树模型来预测不同计算资源分配下的作业完成时间差,找到使得作业完成时间最小的计算资源分配,也即最优资源分配。本发明没有通过直接预测作业的完成时间,如果分别预测两个作业的完成时间,再通过比较找出最优分配,会引入较大的预测错误,而是通过预测样本的输入特征,即通过底层网络、磁盘读写操作等作为预测特征,能够反映分布式计算框架的网络传输和磁盘输入输出开销,从而实现比建模预测更高的预测精确性。
步骤3:作业端接收一批作业,通过决策树模型预估该批作业中每个作业的初始资源分配预估值,所述初始资源分配预估值使得每个作业的完成时间最短;
步骤3.1:获取该批作业中某一作业1的特征,构造虚拟作业2,使作业2 也采用完全相同的特征,作业1和作业2的计算资源不同,将作业1和作业2 组成一个预测样本,所述预测样本的特征包含作业1和作业2的特征;
步骤3.2:通过决策树模型,预测作业1和作业2的作业完成时间之差;
步骤3.3:对作业1和作业2分配不同的计算资源,找到完成时间最小的那个作业的计算资源分配,将该计算资源大小作为作业1的初始资源分配预估值。
本实施例中对作业1和作业2分配不同的计算资源,找到完成时间最小的那个作业的计算资源分配的方法是二分搜索法。二分搜索法具体为:
步骤3.3.1:设可用计算资源总量为C,在(0,C)中搜索计算资源,对作业1和作业2分别分配C/2个CPU核和C个CPU核,通过决策树模型预测两个作业的作业完成时间差ΔJCT;
步骤3.3.2:若ΔJCT≤0,则表示分配C/2个CPU核时,作业1的完成时间更小,推断C/2比C计算资源分配更好,则在(0,C/2)中继续搜索计算资源,否则,推断C比C/2计算资源分配更好;如果C/2比C计算资源分配更好,那么下一次搜索时,分配作业C/4个CPU核,观察作业的计算时间,若ΔJCT≤0,则表示分配C/4个CPU核时,作业1的完成时间更小,推断C/4比C/2计算资源分配更好,则在(0,C/4)中继续搜索计算资源。
步骤3.3.3:以此类推,不断重复二分搜索的过程,直到搜索区间缩小到设定的阈值时停止。本实施例中设定的搜索区间缩小到6个CPU核时,则停止搜索。
二分搜索举例为:给定可用计算资源总量C,现在需要判断作业的最佳计算资源A’。使用决策树模型预测,结合二分法确定最佳计算资源的区间。s、m、p、 w、d分别代表这个作业的输入数据大小、内存、任务数量、DAG宽度、DAG深度。给作业分别分配C/2个CPU核和C个CPU核,即分别对作业1和作业2分配C/2 个CPU核和C个CPU核时,用决策树模型来预测作业完成时间的差ΔJCT=F(v)。其中v代表输入特征<…,C/2,C,…>。如果ΔJCT≤0,则分配C/2个CPU核时,作业的完成时间更小,则进一步在0到C/2中搜索最佳计算资源。比较这个作业分别分配C/4个CPU核和C/2个CPU核时的作业完成时间的差。ΔJCT=F(v'),其中v'代表输入特征<…,C/4,C/2,…>。如果ΔJCT≤0,则分配C/4个CPU核时,作业的完成时间更小。类似地,不断重复二分搜索的过程,直到这个区间缩小到6个CPU核。即,如果最佳的CPU核数位于此区间,这时的误差应该小于3 个CPU核。
本实施例通过决策树模型对预测样本进行预测,从而预测这两个作业的作业完成时间之差,由此可推断完成时间更小的那个作业,其计算资源分配更好。本发明决策树模型的创新之处在于没有直接预测作业的完成时间:如果分别预测两个作业的完成时间,再通过比较找出最优分配,会引入较大的预测错误。本发明的决策树模型直接预测完成时间之差,即可找出最优初始资源分配预估值。
步骤4:使用初始资源分配方法对已获得初始资源分配预估值的该批作业进行资源初分配,进一步对每个作业的资源分配预估值进行调整,得到每个作业的初始资源分配值;如图2所示,初始资源分配方法是指:
步骤4.1:获取计算机集群中最大可用的CPU核数;
步骤4.2:对该批作业按照执行时间长短进行递增排序;
本实施例从这批作业中选取两个作业,构成一个测试样本,输入给决策树预测模型,算出预测完成时间的差值。根据差值的正负,从而判断哪个作业的完成时间更小。
步骤4.3:使用最短作业最优分配方法将所有可用的资源分配给按执行时间排序在前的作业,将已分配资源的所有作业分为一组G1,未能分配上资源的作业划分到另一组G2;
步骤4.4:假设从第一组G1中选择一个作业作为捐助者捐献出θ计算资源迁移给第二组G2,第二组G2选出一个作业作为受助者,第一组G1中的捐助者在减少计算资源θ后,其完成时间增加ΔT1,第二组G2中的受助者在增加计算资源θ后,其完成时间减少ΔT2;
捐助者的选出方法为:
从G1中的每一个作业的初始资源分配预估值中扣除θ个CPU核后,通过决策树模型预测它们的作业完成时间增加量,作业完成时间增加量最少的那个作业作为捐助者;
受助者的选出方法为:
将θ个CPU核分别分配给G2的每一个作业,通过决策树模型预测它们的作业完成时间减少量,作业完成时间减少得最多的那个作业做为受助者。
步骤4.5:若ΔT1>ΔT2,重复步骤4.4,直到ΔT1≤ΔT2,记录此刻第一组和第二组中的每个作业的资源分配量并作为每个作业的初始资源分配值,ΔT1表示G1中捐助者扣除计算资源后的时间增加量,ΔT2表示G2中受助者增加计算资源后的时间减少量。
本实施例对于多作业提交的资源分配问题,通过初始资源分配方法,避免在个别作业上消耗大量资源却实现较少的性能提升,通过不断把计算资源从分配效率低即完成时间长的作业迁移到分配效率高即完成时间更短的作业,从而实现总作业完成时间最小化的初始分配。此步骤在作业开始执行前完成。
步骤5:将获得初始资源分配值的该批作业提交给Spark集群开始执行;
步骤6:在作业执行过程中,每完成一次迭代机器学习作业后,对计算资源进行动态微调整。
动态微调整的方法是:
步骤6.1:当机器学习作业执行完每次迭代后,记录本轮迭代的完成时间;
在开始执行一个迭代的机器学习作业后,开始按照预测的初始资源分配来执行该作业。当机器学习作业执行完每次迭代后,记录本轮迭代的完成时间。当第一轮迭代结束后,按照默认设置的微调方向、微调步长来改变计算资源。改变后,再执行该作业的下一轮迭代。
步骤6.2:选择微调方向和微调资源步长,开始微调资源分配,并执行下一轮迭代,所述微调方向是指递增微调资源或者递减微调资源,所述微调资源步长是指在一轮机器学习作业迭代结束后,作业的计算资源发生变化,其计算资源变化的大小为微调资源步长;作业会在新的资源分配下,执行下一轮迭代。
步骤6.3:比较下一轮迭代和上一轮迭代的完成时间,如果完成时间在减少,继续采用相同的微调方向和微调资源步长,调整下下一轮迭代的资源分配,如果完成时间在增加,则采用相反的微调方向,两倍的微调资源步长,调整下下一轮迭代的资源分配;本实施例通过比较前后两轮迭代的完成时间,来判断上一次资源微调是否起到了减少完成时间的作用。如果迭代完成时间减少了,会继续按照相同的微调方向和微调步长来调整计算资源;否则,需要朝相反的微调方向来调整下一轮迭代的计算资源。
步骤6.4:重复步骤6.1至6.3,直到机器学习作业完成所有迭代。
本发明通过在作业执行期间对计算资源进行动态微调整,根据前后两轮机器学习迭代的完成时间来判断是否调节资源来获得较好的性能。这个动态调节的资源分配方法是为了解决部分作业完成后,回收这些作业释放的计算资源,将释放的资源重新分配给正在执行的作业。本实施例通过动态微调整,在计算资源初始分配值的基础上,在实际执行作业过程中再次对资源进行调整,从而逼近实际的最优资源分配值。
下面通过实验来验证本发明的效果。
1、预测的精确性:
实验比较了支持向量回归和决策树两个预测模型,预测四种不同作业的完成时间,其预测性能表现如图4 的 4a和图4 的 4b所示。秩相关系数反映了预测模型能否用本实施例设定的作业特征来预测完成时间,决策树的秩相关系数更高;绝对相关性系数反映了决策树预测模型能更好的拟合数据。从图4 的 4a和图4 的 4b中可以看出,本发明所选取的作业特征可以较准确地预测作业完成时间。
2、基于决策树预测方法的单个作业完成时间提升:本实施例中选择了两个典型的Spark应用,图5 的 5a是聚类算法,是一种迭代的机器学习方法,图5 的 5b是回归预测应用。从图中可以看出,基于决策树预测的分配方法可以让作业的完成时间更小。
3、单个迭代作业的动态资源分配方法,如图6所示,每次机器学习作业迭代结束后,每条线表示不同的微调步长,如分别为10、1、5个CPU核,从图中可以看出,在微调步长为5个CPU核的情况下,最接近最优的资源分配。
4、多作业的资源分配:从图7可以看出,当作业的数量从10增加到50的过程中,,基于决策树预测的多作业资源分配方法能实现更少的作业完成时间。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (8)

1.一种基于决策树预测的数据并行作业资源分配方法,包括以下步骤:
步骤1:获取已完成的作业数据集;每条完成的作业为一个样本,样本特征包括作业的各项特征和标签,所述标签是指作业的完成时间;
步骤2:使用已完成的作业数据集对决策树模型进行训练,具体为:
步骤2.1:从已完成的作业数据集中任选两个原始样本构造成新样本,每个原始样本为一个作业的执行数据,新样本的特征包含原来两个样本的特征,新样本的标签是原来两个样本的作业完成时间之差;
步骤2.2:将已完成的作业数据集中的所有新样本组合成新样本集;
步骤2.3:使用新样本集中的数据训练决策树模型;
步骤3:作业端接收一批作业,通过决策树模型预估该批作业中每个作业的初始资源分配预估值,具体为:
步骤3.1:获取该批作业中某一作业1的特征,构造虚拟作业2,使作业2也采用完全相同的特征,作业1和作业2的计算资源不同,将作业1和作业2组成一个预测样本,所述预测样本的特征包含作业1和作业2的特征;
步骤3.2:通过决策树模型,预测作业1和作业2的作业完成时间之差;
步骤3.3:对作业1和作业2分配不同的计算资源,找到完成时间最小的那个作业的计算资源分配,将该计算资源大小作为作业1的初始资源分配预估值;
步骤4:使用初始资源分配算法对已获得初始资源分配预估值的该批作业进行资源初分配,进一步对每个作业的资源分配预估值进行调整,得到每个作业的初始资源分配值;
步骤5:将获得初始资源分配值的该批作业提交给计算机集群开始执行。
2.根据权利要求1所述的基于决策树预测的数据并行作业资源分配方法,其特征在于:步骤3.3对作业1和作业2分配不同的计算资源,找到完成时间最小的那个作业的计算资源分配的方法是二分搜索法。
3.根据权利要求2所述的基于决策树预测的数据并行作业资源分配方法,其特征在于:所述二分搜索法具体是:
步骤3.3.1:设可用计算资源总量为C,对作业1和作业2分别分配C/2个CPU核和C个CPU核,通过决策树模型预测两个作业的作业完成时间差ΔJCT;
步骤3.3.2:若ΔJCT≤0,则表示分配C/2个CPU核时,作业1的完成时间更小,推断C/2比C计算资源分配更好,则在(0,C/2)中继续搜索计算资源,否则,推断C比C/2计算资源分配更好;如果C/2比C计算资源分配更好,那么下一次搜索时,分配作业C/4个CPU核,观察作业的计算时间,若ΔJCT≤0,则表示分配C/4个CPU核时,作业1的完成时间更小,推断C/4比C/2计算资源分配更好,则在(0,C/4)中继续搜索计算资源;
步骤3.3.3:以此类推,不断重复二分搜索的过程,直到搜索区间缩小到设定的阈值时停止。
4.根据权利要求1所述的基于决策树预测的数据并行作业资源分配方法,其特征在于:步骤4中使用初始资源分配算法对已获得初始资源分配预估值的该批作业进行资源初分配的方法是:
步骤4.1:获取计算机集群中最大可用的CPU核数;
步骤4.2:对该批作业按照执行时间长短进行递增排序;
步骤4.3:使用最短作业最优分配方法将所有可用的资源分配给按执行时间排序在前的作业,将已分配资源的所有作业分为一组G1,未能分配上资源的作业划分到另一组G2;
步骤4.4:假设从第一组G1中选择一个作业作为捐助者捐献出θ计算资源迁移给第二组G2,第二组G2选出一个作业作为受助者,第一组G1中的捐助者在减少计算资源θ后,其完成时间增加ΔT1,第二组G2中的受助者在增加计算资源θ后,其完成时间减少ΔT2;
步骤4.5:若ΔT1>ΔT2,重复步骤4.4,直到ΔT1≤ΔT2,记录此刻第一组和第二组中的每个作业的资源分配量并作为每个作业的初始资源分配值,ΔT1表示G1中捐助者扣除计算资源后的时间增加量,ΔT2表示G2中受助者增加计算资源后的时间减少量。
5.根据权利要求4所述的基于决策树预测的数据并行作业资源分配方法,其特征在于:步骤4.4中所述受助者和捐助者的选出方法为:
捐助者的选出方法为:
从G1中每一个作业的初始资源分配预估值中扣除θ个CPU核后,通过决策树模型预测它们的作业完成时间增加量,作业完成时间增加量最少的那个作业作为捐助者;
受助者的选出方法为:
将θ个CPU核分别分配给G2的每一个作业,通过决策树模型预测它们的作业完成时间减少量,作业完成时间减少得最多的那个作业做为受助者。
6.根据权利要求1所述的基于决策树预测的数据并行作业资源分配方法,其特征在于:还包括
步骤6:在作业执行过程中,每完成一次迭代机器学习作业后,对计算资源进行动态微调整。
7.根据权利要求6所述的基于决策树预测的数据并行作业资源分配方法,其特征在于:所述动态微调整的方法是:
步骤6.1:当机器学习作业执行完每次迭代后,记录本轮迭代的完成时间;
步骤6.2:选择微调方向和微调资源步长,开始微调资源分配,并执行下一轮迭代,所述微调方向是指递增微调资源或者递减微调资源,所述微调资源步长是指在一轮机器学习作业迭代结束后,作业的计算资源发生变化,其计算资源变化的大小为微调资源步长;
步骤6.3:比较下一轮迭代和上一轮迭代的完成时间,如果完成时间在减少,继续采用相同的微调方向和微调资源步长,调整下下一轮迭代的资源分配,如果完成时间在增加,则采用相反的微调方向,微调资源步长为两倍的原微调资源步长,调整下下一轮迭代的资源分配;
步骤6.4:重复步骤6.1至6.3,直到机器学习作业完成所有迭代。
8.根据权利要求1至7中任一项所述的基于决策树预测的数据并行作业资源分配方法,其特征在于:所述作业的各项特征包括作业的输入数据大小、内存、任务数量、有向循环图DAG宽度、有向循环图DAG深度。
CN201910591774.9A 2019-07-01 2019-07-01 基于决策树预测的数据并行作业资源分配方法 Active CN110321222B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910591774.9A CN110321222B (zh) 2019-07-01 2019-07-01 基于决策树预测的数据并行作业资源分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910591774.9A CN110321222B (zh) 2019-07-01 2019-07-01 基于决策树预测的数据并行作业资源分配方法

Publications (2)

Publication Number Publication Date
CN110321222A CN110321222A (zh) 2019-10-11
CN110321222B true CN110321222B (zh) 2021-05-07

Family

ID=68122371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910591774.9A Active CN110321222B (zh) 2019-07-01 2019-07-01 基于决策树预测的数据并行作业资源分配方法

Country Status (1)

Country Link
CN (1) CN110321222B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111126668B (zh) * 2019-11-28 2022-06-21 中国人民解放军国防科技大学 基于图卷积网络的Spark作业时间预测方法和装置
CN110688993B (zh) * 2019-12-10 2020-04-17 中国人民解放军国防科技大学 一种基于Spark作业的计算资源确定方法及装置
CN111104222B (zh) * 2019-12-16 2023-06-30 上海众源网络有限公司 任务处理方法、装置、计算机设备和存储介质
CN110955529B (zh) * 2020-02-13 2020-10-02 北京一流科技有限公司 内存资源静态部署系统及方法
CN111340240A (zh) * 2020-03-25 2020-06-26 第四范式(北京)技术有限公司 实现自动机器学习的方法及装置
CN111625352A (zh) * 2020-05-18 2020-09-04 杭州数澜科技有限公司 调度方法、装置及存储介质
CN113742052B (zh) * 2020-05-29 2023-09-01 北京京东振世信息技术有限公司 批量任务处理方法和装置
CN113762675A (zh) * 2020-10-27 2021-12-07 北京沃东天骏信息技术有限公司 信息生成方法、装置、服务器、系统和存储介质
CN112348173A (zh) * 2020-11-13 2021-02-09 南开大学 一种移动平台上cnn流水线优化方法
CN112600906B (zh) * 2020-12-09 2022-04-26 中国科学院深圳先进技术研究院 在线场景的资源分配方法、装置及电子设备
CN112965813B (zh) * 2021-02-10 2023-01-10 山东英信计算机技术有限公司 一种ai平台资源调控方法、系统及介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9571567B2 (en) * 2013-03-14 2017-02-14 Vmware, Inc. Methods and systems to manage computer resources in elastic multi-tenant cloud computing systems
CN108182115B (zh) * 2017-12-28 2021-08-31 福州大学 一种云环境下的虚拟机负载均衡方法
CN108491302B (zh) * 2018-02-12 2020-07-31 中国科学院计算技术研究所 一种检测spark集群节点状态的方法
US10776174B2 (en) * 2018-05-24 2020-09-15 Amazon Technologies, Inc. Managing hosted resources across different virtualization platforms

Also Published As

Publication number Publication date
CN110321222A (zh) 2019-10-11

Similar Documents

Publication Publication Date Title
CN110321222B (zh) 基于决策树预测的数据并行作业资源分配方法
CN110096349B (zh) 一种基于集群节点负载状态预测的作业调度方法
CN107888669B (zh) 一种基于深度学习神经网络的大规模资源调度系统及方法
US7082606B2 (en) Dedicated heterogeneous node scheduling including backfill scheduling
CN110351348B (zh) 一种基于dqn的云计算资源调度优化方法
JPH06202882A (ja) 複数のタスク及びジョブのスケジューリング方法
JPH07282013A (ja) 分散処理システム
CN110262897B (zh) 一种基于负载预测的Hadoop计算任务初始分配方法
CN103701886A (zh) 一种云计算环境下的服务及资源分层调度方法
CN107193655B (zh) 一种基于效用函数的面向大数据处理的公平资源调度方法
CN111274036A (zh) 一种基于速度预测的深度学习任务的调度方法
CN111813523A (zh) 时长预估模型生成方法、系统资源调度方法、装置、电子设备和存储介质
CN110008013B (zh) 一种最小化作业完工时间的Spark任务分配方法
CN110084507B (zh) 云计算环境下分级感知的科学工作流调度优化方法
CN114780247A (zh) 一种流速和资源感知的流应用调度方法及系统
CN113553103B (zh) 基于cpu+gpu异构处理平台的多核并行调度方法
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN113127173B (zh) 一种异构感知的集群调度方法及装置
CN112148471A (zh) 分布式计算系统中资源调度的方法和装置
CN113535387A (zh) 一种异构感知的gpu资源分配与调度方法及系统
CN116915869A (zh) 基于云边协同的时延敏感型智能服务快速响应方法
CN116954905A (zh) 一种面向Flink大数据的任务编排与迁移方法
CN112035234A (zh) 分布式批量作业分配方法及装置
CN104731662B (zh) 一种可变并行作业的资源分配方法
Baheri Mars: Multi-scalable actor-critic reinforcement learning scheduler

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