CN110688993B - 一种基于Spark作业的计算资源确定方法及装置 - Google Patents

一种基于Spark作业的计算资源确定方法及装置 Download PDF

Info

Publication number
CN110688993B
CN110688993B CN201911256157.XA CN201911256157A CN110688993B CN 110688993 B CN110688993 B CN 110688993B CN 201911256157 A CN201911256157 A CN 201911256157A CN 110688993 B CN110688993 B CN 110688993B
Authority
CN
China
Prior art keywords
data
processed
computing resource
computing resources
computing
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
CN201911256157.XA
Other languages
English (en)
Other versions
CN110688993A (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 CN201911256157.XA priority Critical patent/CN110688993B/zh
Publication of CN110688993A publication Critical patent/CN110688993A/zh
Application granted granted Critical
Publication of CN110688993B publication Critical patent/CN110688993B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例公开了一种基于Spark作业的计算资源确定方法及装置,方法包括:以不同数据量大小的数据集和为数据集分配的各种计算资源为输入,以处理耗时为监督,对预设结构的神经网络进行训练,得到预测模型;利用该预测模型,分别预测利用每种计算资源对待处理数据进行处理的耗时;在预测得到的耗时中,确定最短耗时对应的计算资源,作为待处理数据对应的计算资源;可见,本方案通过预测模型确定处理数据所需的计算资源,减少了对人工经验的依赖。

Description

一种基于Spark作业的计算资源确定方法及装置
技术领域
本发明涉及并行计算技术领域,特别是指一种基于Spark作业的计算资源确定方法及装置。
背景技术
一些场景中,通常需要对数据进行并行处理。比如,需要对100张图像进行人脸识别,则可以将这100张图像分配给多个处理单元,这些处理单元并行对这些图像进行人脸识别。处理单元可以理解为设备中的计算资源,比如,一个处理单元可以为一个CPU(CentralProcessing Unit,中央处理器),或者一个GPU(Graphics Processing Unit,图形处理器),或者为其他处理芯片。
如果为数据分配了较少的计算资源,则并行处理的数据较少,处理耗时较长;如果为数据分配了较多的计算资源,则设备的其他资源消耗如网络通信、磁盘I/O(Input/Output,输入/输出)较多,导致设备运行较慢,数据处理耗时也会较长。目前,大多依赖人工经验确定处理数据所需的计算资源。
发明内容
有鉴于此,本发明的目的在于提出一种基于Spark作业的计算资源确定方法及装置,减少对人工经验的依赖。
基于上述目的,本发明实施例提供了一种基于Spark作业的计算资源确定方法,包括:
利用预先训练得到的预测模型,分别预测利用每种计算资源对待处理数据进行处理的耗时;其中,所述预测模型为:以不同数据量大小的数据集和为所述数据集分配的各种计算资源为输入,以处理耗时为监督,对预设结构的神经网络进行训练得到的;每种计算资源中包括一个或多个处理单元,各计算资源包括的处理单元的数量不同;
在预测得到的耗时中,确定最短耗时对应的计算资源,作为所述待处理数据对应的计算资源。
可选的,采用如下步骤训练得到所述预测模型:
获取多份待训练样本数据,其中,每份样本数据中包括输入特征及其对应的处理耗时,所述输入特征包括:数据集及为其分配的计算资源;
在所述多份待训练样本数据中确定多个样本对,每个样本对包括两份样本数据的输入特征、以及该两份样本数据的处理耗时之差;
利用所述多个样本对所述预设结构的神经网络进行训练,得到所述预测模型。
可选的,所述输入特征还包括:并行处理的任务数量以及任务的有向循环图。
可选的,所述在预测得到的耗时中,确定最短耗时对应的计算资源,作为所述待处理数据对应的计算资源之后,还包括:
若存在多份待处理数据,根据所述预测模型预测得到的每份待处理数据对应的最短耗时,分配计算资源,其中,优先为耗时短的待处理数据分配其对应的计算资源;
针对分配到计算资源的每份待处理数据,利用所述预测模型,预测调整为该份待处理数据分配的计算资源后,该份待处理数据对应的处理耗时,作为第一调整后耗时;
在预测得到的第一调整后耗时中,确定最短第一调整后耗时对应的待处理数据,作为捐赠者;
从为所述捐赠者分配的计算资源中,确定待迁移计算资源;
将所述待迁移计算资源分配给未分配到计算资源的待处理数据。
可选的,所述方法还包括:
针对未分配到计算资源的每份待处理数据,利用所述预测模型,预测调整为该份待处理数据分配的计算资源后,该份待处理数据对应的处理耗时,作为第二调整后耗时;
在预测得到的第二调整后耗时中,确定最短第二调整后耗时对应的待处理数据,作为接受者;
所述将所述待迁移计算资源分配给未分配到计算资源的待处理数据,包括:
将所述待迁移计算资源分配给所述接受者。
可选的,所述从为所述捐赠者分配的计算资源中,确定待迁移计算资源,包括:
根据所述最短第一调整后耗时对应的计算资源调整量,从为所述捐赠者分配的计算资源中,确定待迁移计算资源。
基于上述目的,本发明实施例还提供了一种基于Spark作业的计算资源确定装置,包括:
第一预测模块,用于利用预先训练得到的预测模型,分别预测利用每种计算资源对待处理数据进行处理的耗时;其中,所述预测模型为:以不同数据量大小的数据集和为所述数据集分配的各种计算资源为输入,以处理耗时为监督,对预设结构的神经网络进行训练得到的;每种计算资源中包括一个或多个处理单元,各计算资源包括的处理单元的数量不同;
第一确定模块,用于在预测得到的耗时中,确定最短耗时对应的计算资源,作为所述待处理数据对应的计算资源。
可选的,所述装置还包括:
预测模型训练模块,用于获取多份待训练样本数据,其中,每份样本数据中包括输入特征及其对应的处理耗时,所述输入特征包括:数据集及为其分配的计算资源;在所述多份待训练样本数据中确定多个样本对,每个样本对包括两份样本数据的输入特征、以及该两份样本数据的处理耗时之差;利用所述多个样本对所述预设结构的神经网络进行训练,得到所述预测模型。
可选的,所述装置还包括:
第一分配模块,用于若存在多份待处理数据,根据所述预测模型预测得到的每份待处理数据对应的最短耗时,分配计算资源,其中,优先为耗时短的待处理数据分配其对应的计算资源;
第二预测模块,用于针对分配到计算资源的每份待处理数据,利用所述预测模型,预测调整为该份待处理数据分配的计算资源后,该份待处理数据对应的处理耗时,作为第一调整后耗时;
第二确定模块,用于在预测得到的第一调整后耗时中,确定最短第一调整后耗时对应的待处理数据,作为捐赠者;
第三确定模块,用于从为所述捐赠者分配的计算资源中,确定待迁移计算资源;
第二分配模块,用于将所述待迁移计算资源分配给未分配到计算资源的待处理数据。
可选的,所述装置还包括:
第三预测模块,用于针对未分配到计算资源的每份待处理数据,利用所述预测模型,预测调整为该份待处理数据分配的计算资源后,该份待处理数据对应的处理耗时,作为第二调整后耗时;
第四确定模块,用于在预测得到的第二调整后耗时中,确定最短第二调整后耗时对应的待处理数据,作为接受者;
所述第二分配模块,具体用于:将所述待迁移计算资源分配给所述接受者。
应用本发明所示实施例,以不同数据量大小的数据集和为数据集分配的各种计算资源为输入,以处理耗时为监督,对预设结构的神经网络进行训练,得到预测模型;利用该预测模型,分别预测利用每种计算资源对待处理数据进行处理的耗时;在预测得到的耗时中,确定最短耗时对应的计算资源,作为待处理数据对应的计算资源;可见,本方案通过预测模型确定处理数据所需的计算资源,减少了对人工经验的依赖。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于Spark作业的计算资源确定方法的流程示意图;
图2为本发明实施例提供的一种神经网络的结构示意图;
图3为本发明实施例提供的一种DAG示意图;
图4为本发明实施例提供的一种具体实施方式示意图;
图5a表示应用最短作业优先算法进行资源分配的耗时示意图;
图5b表示应用最大最小公平性算法进行资源分配的耗时示意图;
图5c表示应用HA进行资源分配的耗时示意图;
图6为本发明实施例提供的一种基于Spark作业的计算资源确定装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
为了解决上述技术问题,本发明实施例提供了一种基于Spark作业的计算资源确定方法及装置,该方法及装置可以应用于各种电子设备,具体不做限定。下面首先对本发明实施例提供的基于Spark作业的计算资源确定方法进行介绍。
图1为本发明实施例提供的一种基于Spark作业的计算资源确定方法的流程示意图,包括:
S101:利用预先训练得到的预测模型,分别预测利用每种计算资源对待处理数据进行处理的耗时。
其中,所述预测模型为:以不同数据量大小的数据集和为所述数据集分配的各种计算资源为输入,以处理耗时为监督,对预设结构的神经网络进行训练得到的;每种计算资源中包括一个或多个处理单元,各计算资源包括的处理单元的数量不同。
这里所说的处理单元可以为CPU、GPU或者其他处理芯片,具体类型不做限定。
举例来说,可以采用如下步骤训练得到该预测模型:
获取多份待训练样本数据,其中,每份样本数据中包括输入特征及其对应的处理耗时,所述输入特征包括:数据集及为其分配的计算资源;
将所述输入特征输入至预设结构的神经网络中,并以其对应的处理耗时为监督,对所述神经网络中的参数进行迭代调整,得到所述预测模型。
举例来说,神经网络及预测模型的输入可以包括多组输入特征:组1{数据集A、5个CPU}、组2{数据集A、4个CPU}、组3{数据集A、6个CPU}、组4{数据集B、8个CPU}、组5{数据集B、7个CPU}、组6{数据集B、9个CPU}……不再一一列举。可以预先确定每组输入特征对应的标签,标签即为处理耗时,也就是训练过程中的监督信息,比如,组1对应的标签可以为2s,组2对应的标签可以为2.5s……不再一一列举。
举例来说,可以采用Bayesian(贝叶斯)正则化反馈算法对神经网络进行训练,训练过程中可以根据Levenberg-Marquardt优化算法对神经网络中的参数进行迭代调整。调整完成后的神经网络即为预测模型。
另一种实施方式中,可以采用如下步骤训练得到该预测模型:
获取多份待训练样本数据,其中,每份样本数据中包括输入特征及其对应的处理耗时,所述输入特征包括:数据集及为其分配的计算资源;
在所述多份待训练样本数据中确定多个样本对,每个样本对包括两份样本数据的输入特征、以及该两份样本数据的处理耗时之差;
利用所述多个样本对所述预设结构的神经网络进行训练,得到所述预测模型。
举例来说,输入特征还可以包括:并行处理的任务数量以及任务的有向循环图,等等,输入特征的具体内容不做限定。
本实施方式中,对神经网络进行训练过程中,并不直接输入特征输入神经网络,而是基于输入特征构造样本对。一种情况下,可以针对每两份输入特征,将这两份输入特征以及这两份输入特征对应的处理耗时之差组成为一个样本对。以一个样本对为例来说,将这个样本对中的两份输入特征输入至神经网络中(或者说,神经网络的输入为特征对),并以其对应的处理耗时之差为监督,对神经网络中的参数进行迭代调整,得到预测模型。
举例来说,上述预设结构的神经网络可以如图2所示,该神经网络可以为DNN(DeepNeural Networks,深度神经网络),DNN中包括输入层、隐藏导和输出层,该输入层可以包括多种特征,比如数量集大小(或者说数据集的数据量)、CPU核数(也就是为数据集分配的计算资源)、任务数量、内存数量、DAG(Directed Acyclic Graph,有向无环图)特征、算子特征等等。
DAG可以表示并行处理数据的流程,举例来说,参考图3,图3表示一个作业的DAG,该DAG包括5个计算阶段:计算阶段0、计算阶段1、计算阶段2、计算阶段3和计算阶段4,图3包括执行该作业的过程中,对数据集进行处理的每个算子。作业的DAG越长、算子越复杂,则执行该作业的耗时越长。举例来说,可以将DAG的长度、宽度、路径数量作为DAG特征,DAG特征可以反应处理耗时。
本实施例中的所说的“任务”、“作业”等,可以包括一份待处理数据,或者也可以包括多份待处理数据。一种情况下,“作业”可以包括多个任务,每个任务包括一份待处理数据。
图3中的Map(对数据分区进行映射操作)、FlatMap(平面图)、Join(加入)、ReduceByKey(对键相同的数据进行处理)和GroupByKey(对键相同的数据进行分组)等都为算子。计算开销、通信开销、磁盘I/O开销与算子的类型和数量相关,算子特征也可以反应处理耗时。表1为多种算子类型及其主要开销:
表1
算子类型 含义 主要的开销
map 对数据分区进行映射操作 计算
count 统计数据集中元素的个数 计算
cartesian 计算两个集合的Cartesian积 计算
filter 按照指定要求从数据集中筛选元素 计算
distinct 从原数据集中取出完全不重复的元素 计算
union 计算两个数据集的并集 计算
collect 从不同的计算任务中收回计算结果 通信
coalesce 计算一个新的被reduce的数据集 通信
join 计算两个数据集中带有匹配key值的元素对 通信
reduce 聚合数据集中的元素 通信
repartition 对数据集重新进行分区 通信
groupByKey 按照key值对数据集的元素进行分组操作 通信
countByKey 按照key值对数据集的元素进行计数操作 通信
reduceByKey 按照key值对数据集的元素进行reduce操作 通信
cogroup 按照key值对两个数据集进行联合分组操作 通信
combineByKey 按照key值对数据集的元素进行合并操作 通信
sortByKey 按照key值对数据集的元素进行排序操作 计算、通信
aggregateByKey 按照key值对数据集的元素进行聚合操作 计算、通信
举例来说,可以采用Bayesian(贝叶斯)正则化反馈算法对神经网络进行训练,训练过程中可以根据Levenberg-Marquardt优化算法对神经网络中的参数进行迭代调整。一种情况下,可以设置学习率为0.05,如果训练过程中迭代次数超过1000,或者训练损失减小到0.001,则训练过程结束,得到训练完成的预测模型。
可以理解,训练过程只是对神经网络中的参数进行调整,神经网络与预测模型的结构、以及输入输出的格式均相同。
上一种实施方式中,以一份样本数据的输入特征作为神经网络的输入,以处理耗时作为神经网络的输出;本实施方式中,以特征对(两份样本数据的输入特征)作为神经网络的输入,以耗时之差作为神经网络的输出;对比这两种实施方式:
第一方面,假设有n份样本数据,则上一种实施方式的训练数据量为n,本实施方式的训练数据量可以达到Cn 2,本实施方式的训练数据量较大,进而训练得到的预测模型越准确;第二方面,上一种实施方式中,预测模型的输出为耗时,后续需要对输出结果进行比较,而本实施方式中,预测模型的输出为耗时之差,也就是说输出结果直接表示比较结果,相比于上一种实施方式减少了比较的步骤。
S102:在预测得到的耗时中,确定最短耗时对应的计算资源,作为待处理数据对应的计算资源。
假设S101中,分别将{待处理数据A,5个CPU}、{待处理数据A,6个CPU}、{待处理数据A,7个CPU}、{待处理数据A,8个CPU}等输入特征输入预测模型中,预测模型的输出分别为:3s、2s、1s、1.5s,则最短耗时为1s,其对应的计算资源为7个CPU,将7个CPU作为待处理数据A对应的计算资源。或者,也可以理解为待处理数据A对应的最佳计算资源为7个CPU。
举例来说,如果计算资源充足,则可以将7个CPU分配给待处理数据A,或者说,利用7个CPU对待处理数据A进行处理。而如果存在多份待处理资源,计算资源不足,则可以利用一些调度算法,比如最短作业优先算法、最大最小公平性算法等算法进行资源分配。
最短作业优先算法可以理解为:优先将计算资源分配给处理耗时较短的待处理数据。最大最小公平性算法可以理解为:根据待处理数据所需要的处理单元的数量进行资源分配。
作为一种实施方式,在S102之后,若存在多份待处理数据,则可以根据所述预测模型预测得到的每份待处理数据对应的最短耗时,分配计算资源,其中,优先为耗时短的待处理数据分配其对应的计算资源;针对分配到计算资源的每份待处理数据,利用所述预测模型,预测调整为该份待处理数据分配的计算资源后,该份待处理数据对应的处理耗时,作为第一调整后耗时;在预测得到的第一调整后耗时中,确定最短第一调整后耗时对应的待处理数据,作为捐赠者;从为所述捐赠者分配的计算资源中,确定待迁移计算资源;将所述待迁移计算资源分配给未分配到计算资源的待处理数据。
本实施方式中提出一种新的调度算法,可以将其称为启发式调度算法(HA,Heuristic Algorithm),该算法中,初始分配资源的方式与最短作业优先算法类似,优先将计算资源分配给处理耗时较短的待处理数据,如果计算资源不足,在初始分配资源之后,有的待处理数据分配到了计算资源,有的待处理数据未分配到计算资源。
预先设定一个计算资源调整量θ,计算资源调整量可以为调整的处理单元的数量,假设θ为:一个CPU;以一份分配到计算资源的待处理数据X为例来说,假设S102中确定其对应的计算资源为5个CPU,则利用预测模型,预测将数据X的计算资源调整为4个CPU(减少θ)后,数据X对应的处理耗时,作为第一调整后耗时。
分别确定每份待处理数据对应的第一调整后耗时,在这些第一调整后耗时中,确定最短第一调整后耗时,将最短第一调整后耗时对应的待处理数据确定为捐赠者。本实施方式中,在初始分配资源之后,还可以进行计算资源的迁移,比如将原分配给数据X的CPU重新分配给数据Y,这种情况下,将数据X称为捐赠者,将数据Y称为接受者。
举例来说,可以将为捐赠者分配的部分计算资源确定为待迁移计算资源,一种情况下,可以根据所述最短第一调整后耗时对应的计算资源调整量,从为所述捐赠者分配的计算资源中,确定待迁移计算资源。
延续上述例子,待迁移计算资源的数量可以为θ。一种实施方式中,可以将待迁移计算资源分配给任意一份未分配到计算资源的待处理数据。
或者,另一种实施方式中,可以针对未分配到计算资源的每份待处理数据,利用所述预测模型,预测调整为该份待处理数据分配的计算资源后,该份待处理数据对应的处理耗时,作为第二调整后耗时;在预测得到的第二调整后耗时中,确定最短第二调整后耗时对应的待处理数据,作为接受者;这种实施方式中,将所述待迁移计算资源分配给所述接受者。
以一份未分配到计算资源的待处理数据Z为例来说,假设S102中确定其对应的计算资源为6个CPU,则利用预测模型,预测将数据Z的计算资源调整为7个CPU(将θ计算资源分配给数据Z)后,数据Z对应的处理耗时,作为第二调整后耗时。
分别确定每份待处理数据对应的第二调整后耗时,在这些第一调整后耗时中,确定最短第二调整后耗时,将最短第二调整后耗时对应的待处理数据确定为接受者。
将θ计算资源从捐赠者迁移至接受者,这样,处理各份待处理数据的整体耗时会缩短,在此之后可以循环执行该启发式调度算法,直至整体耗时不再减小后停止。
迁移资源的过程是一个不断重复的过程,该启发式调度算法为迭代算法,该启发式调度算法是可以收敛的。
举例来说,假设存在两个任务Job1和Job2,应用本发明实施例,分别确定Job1和Job2对应的计算资源和处理耗时;假设Job1对应的处理耗时小于Job2对应的处理耗时,则先为Job1分配其对应的计算资源(可以理解为,为Job1分配最佳计算资源),记为A_1,假设Job2处于资源分配不足的情况,将为Job2分配的计算资源记为A_2。将计算资源θ迭代地在从Job1迁移到Job2。该迭代过程会最终停止,也就是说,上述启发式调度算法是可以收敛的。在迭代次数最多的情况下,迭代次数是⌊A_1/θ⌋。
再举一个例子,假设存在两组任务J_1和J_2,J_1和J_2中分别包括多个任务,假设为J_1中每个任务分配了最佳计算资源,J_2中每个任务处于资源分配不足的情况;每次迭代过程中存在两种可能:一是不进行计算资源迁移;二是进行计算资源迁移。每次迁移前会从J_1中选出捐赠者,从J_2中选出接受者。完成迁移后,J_1中所有任务的计算资源总量会减少θ,J_2中所有任务的计算资源总量会增加θ。也就是说,不论迭代过程是否迁移计算资源,J_1中所有任务的计算资源总量不会增加,这种迁移最终会收敛。
本实施例中的所说的“任务”、“作业”等,可以包括一份待处理数据,或者也可以包括多份待处理数据。一种情况下,“作业”可以包括多个任务,每个任务包括一份待处理数据。
一种实施方式中,参考图4,可以在Spark(一种计算引擎)框架中增加一个扩展模块,将该模块记为ReB,ReB包括两个子模块:模块训练模块和分配模块;模块训练模块用于训练上述预测模型,具体来说,可以通过数据采样得到样本数据,然后利用样本数据对DNN进行训练得到预测模型;分配模块可以利用上述HA,结合预测模型的预测结果,为待处理数据分配计算资源。
用户提交一批需要处理的作业(作业1、作业2和作业3),ReB分析这些作业,得到这些作业的特征,比如输入数据集大小、DAG、任务数量等等。ReB将这些作业的特征输入至预测模型,预测模型的预测结果可以为利用不同核数的CPU执行作业需要的时间。然后ReB利用HA并结合预测模型的输出(预测结果),得到资源分配结果,比如图4中的:作业1需要40核,作业2需要50核,作业3需要60核。将该资源分配结果发送至Spark集群中的主节点,主节点根据该资源分配结果,为每个作业分配资源。
应用本发明所示实施例,以不同数据量大小的数据集和为数据集分配的各种计算资源为输入,以处理耗时为监督,对预设结构的神经网络进行训练,得到预测模型;利用该预测模型,分别预测利用每种计算资源对待处理数据进行处理的耗时;在预测得到的耗时中,确定最短耗时对应的计算资源,作为待处理数据对应的计算资源;可见,第一方面,本方案通过预测模型确定处理数据所需的计算资源,减少了对人工经验的依赖。
第二方面,本方案提出了HA(启发式调度算法),利用HA结合预测模型,能够更合理的分配计算资源。
第三方面,以特征对(两份样本数据的输入特征)作为神经网络及预测模型的输入,以耗时之差作为神经网络及预测模型的输出,这样训练数据量较大,进而训练得到的预测模型越准确;并且预测模型的输出为耗时之差,也就是说输出直接表示比较结果,减少了比较的步骤。
第四方面,本发明所示实施例揭示了计算资源过度分配也会延长处理耗时的原因(设备的其他资源消耗如网络通信、磁盘I/O(Input/Output,输入/输出)较多,导致设备运行较慢)。
关于上述第二方面,下述实验数据证明了:相比于最短作业优先算法、最大最小公平性算法等算法,上述本实施方式中提出的HA(启发式调度算法)能够缩短处理耗时。
假设存在两个任务Job1和Job2,下表2和表3显示了Job1和Job2的相关参数:迭代轮数、分配的计算资源的数量、提交时间等等。
表2:
Figure DEST_PATH_IMAGE001
表3:
Figure DEST_PATH_IMAGE003
参考图5a-图5c,图5a表示应用最短作业优先算法进行资源分配的耗时,图5b表示应用最大最小公平性算法进行资源分配的耗时,图5c表示应用HA进行资源分配的耗时。图5a中,Job2在第8秒提交以后,会抢占80个CPU核。这是因为Job2的完成时间比Job1的完成时间更短,因此,Job2会被优先分配计算资源。
在图5b中,在Job2提交后,Job1与Job2平分计算资源,各占50个CPU核。不过尽管图5b中Job2得到更少的CPU核,但是它的完成时间比图5a短,根据表3可知,Job2分配50个CPU核的情况下,其完成时间更短。不过,对于Job2来说,50个CPU核也不是最佳的,利用上述预测模型可以得到Job2对应的最佳计算资源。
在图5c中,由于Job2的完成时间更短,HA会优先将最佳的计算资源分配给Job2。在最佳资源的分配下,Job2的完成时间更短。由5a-图5c可知,相比于最短作业优先算法、最大最小公平性算法等算法,上述本实施方式中提出的HA(启发式调度算法)能够缩短处理耗时。
与上述方法实施例相对应,本发明实施例还提供一种基于Spark作业的计算资源确定装置,如图6所示,包括:
第一预测模块601,用于利用预先训练得到的预测模型,分别预测利用每种计算资源对待处理数据进行处理的耗时;其中,所述预测模型为:以不同数据量大小的数据集和为所述数据集分配的各种计算资源为输入,以处理耗时为监督,对预设结构的神经网络进行训练得到的;每种计算资源中包括一个或多个处理单元,各计算资源包括的处理单元的数量不同;
第一确定模块602,用于在预测得到的耗时中,确定最短耗时对应的计算资源,作为所述待处理数据对应的计算资源。
作为一种实施方式,所述装置还包括:
预测模型训练模块(图中未示出),用于获取多份待训练样本数据,其中,每份样本数据中包括输入特征及其对应的处理耗时,所述输入特征包括:数据集及为其分配的计算资源;在所述多份待训练样本数据中确定多个样本对,每个样本对包括两份样本数据的输入特征、以及该两份样本数据的处理耗时之差;利用所述多个样本对所述预设结构的神经网络进行训练,得到所述预测模型。
作为一种实施方式,所述装置还包括:第一分配模块、第二预测模块、第二确定模块、第三确定模块和第二分配模块(图中未示出),其中,
第一分配模块,用于若存在多份待处理数据,根据所述预测模型预测得到的每份待处理数据对应的最短耗时,分配计算资源,其中,优先为耗时短的待处理数据分配其对应的计算资源;
第二预测模块,用于针对分配到计算资源的每份待处理数据,利用所述预测模型,预测调整为该份待处理数据分配的计算资源后,该份待处理数据对应的处理耗时,作为第一调整后耗时;
第二确定模块,用于在预测得到的第一调整后耗时中,确定最短第一调整后耗时对应的待处理数据,作为捐赠者;
第三确定模块,用于从为所述捐赠者分配的计算资源中,确定待迁移计算资源;
第二分配模块,用于将所述待迁移计算资源分配给未分配到计算资源的待处理数据。
作为一种实施方式,所述装置还包括:第三预测模块和第四确定模块(图中未示出),其中,
第三预测模块,用于针对未分配到计算资源的每份待处理数据,利用所述预测模型,预测调整为该份待处理数据分配的计算资源后,该份待处理数据对应的处理耗时,作为第二调整后耗时;
第四确定模块,用于在预测得到的第二调整后耗时中,确定最短第二调整后耗时对应的待处理数据,作为接受者;
所述第二分配模块,具体用于:将所述待迁移计算资源分配给所述接受者。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种基于Spark作业的计算资源确定方法,其特征在于,包括:
利用预先训练得到的预测模型,分别预测利用每种计算资源对待处理数据进行处理的耗时;
训练得到所述预测模型包括:
获取多份待训练样本数据,其中,每份样本数据中包括输入特征及其对应的处理耗时,所述输入特征包括:数据并行的算子、数据集及为其分配的计算资源;
在所述多份待训练样本数据中确定多个样本对,每个样本对包括两份样本数据的输入特征、以及该两份样本数据的处理耗时之差;
利用所述多个样本对预设结构的神经网络进行训练,得到所述预测模型;
其中,所述预测模型为:以不同数据量大小的数据集和为所述数据集分配的各种计算资源为输入,以处理耗时为监督,对预设结构的神经网络进行训练得到的;每种计算资源中包括一个或多个处理单元,各计算资源包括的处理单元的数量不同;
在预测得到的耗时中,确定最短耗时对应的计算资源,作为所述待处理数据对应的计算资源。
2.根据权利要求1所述的方法,其特征在于,所述输入特征还包括:并行处理的任务数量以及任务的有向循环图。
3.根据权利要求1所述的方法,其特征在于,所述在预测得到的耗时中,确定最短耗时对应的计算资源,作为所述待处理数据对应的计算资源之后,还包括:
若存在多份待处理数据,根据所述预测模型预测得到的每份待处理数据对应的最短耗时,分配计算资源,其中,优先为耗时短的待处理数据分配其对应的计算资源;
针对分配到计算资源的每份待处理数据,利用所述预测模型,预测调整为该份待处理数据分配的计算资源后,该份待处理数据对应的处理耗时,作为第一调整后耗时;
在预测得到的第一调整后耗时中,确定最短第一调整后耗时对应的待处理数据,作为捐赠者;
从为所述捐赠者分配的计算资源中,确定待迁移计算资源;
将所述待迁移计算资源分配给未分配到计算资源的待处理数据。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
针对未分配到计算资源的每份待处理数据,利用所述预测模型,预测调整为该份待处理数据分配的计算资源后,该份待处理数据对应的处理耗时,作为第二调整后耗时;
在预测得到的第二调整后耗时中,确定最短第二调整后耗时对应的待处理数据,作为接受者;
所述将所述待迁移计算资源分配给未分配到计算资源的待处理数据,包括:
将所述待迁移计算资源分配给所述接受者。
5.根据权利要求3或4所述的方法,其特征在于,所述从为所述捐赠者分配的计算资源中,确定待迁移计算资源,包括:
根据所述最短第一调整后耗时对应的计算资源调整量,从为所述捐赠者分配的计算资源中,确定待迁移计算资源。
6.一种基于Spark作业的计算资源确定装置,其特征在于,包括:
第一预测模块,用于利用预先训练得到的预测模型,分别预测利用每种计算资源对待处理数据进行处理的耗时;
训练得到所述预测模型包括:
获取多份待训练样本数据,其中,每份样本数据中包括输入特征及其对应的处理耗时,所述输入特征包括:数据并行的算子、数据集及为其分配的计算资源;
在所述多份待训练样本数据中确定多个样本对,每个样本对包括两份样本数据的输入特征、以及该两份样本数据的处理耗时之差;
利用所述多个样本对预设结构的神经网络进行训练,得到所述预测模型;
其中,所述预测模型为:以不同数据量大小的数据集和为所述数据集分配的各种计算资源为输入,以处理耗时为监督,对预设结构的神经网络进行训练得到的;每种计算资源中包括一个或多个处理单元,各计算资源包括的处理单元的数量不同;
第一确定模块,用于在预测得到的耗时中,确定最短耗时对应的计算资源,作为所述待处理数据对应的计算资源。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
预测模型训练模块,用于获取多份待训练样本数据,其中,每份样本数据中包括输入特征及其对应的处理耗时,所述输入特征包括:数据集及为其分配的计算资源;在所述多份待训练样本数据中确定多个样本对,每个样本对包括两份样本数据的输入特征、以及该两份样本数据的处理耗时之差;利用所述多个样本对所述预设结构的神经网络进行训练,得到所述预测模型。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一分配模块,用于若存在多份待处理数据,根据所述预测模型预测得到的每份待处理数据对应的最短耗时,分配计算资源,其中,优先为耗时短的待处理数据分配其对应的计算资源;
第二预测模块,用于针对分配到计算资源的每份待处理数据,利用所述预测模型,预测调整为该份待处理数据分配的计算资源后,该份待处理数据对应的处理耗时,作为第一调整后耗时;
第二确定模块,用于在预测得到的第一调整后耗时中,确定最短第一调整后耗时对应的待处理数据,作为捐赠者;
第三确定模块,用于从为所述捐赠者分配的计算资源中,确定待迁移计算资源;
第二分配模块,用于将所述待迁移计算资源分配给未分配到计算资源的待处理数据。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第三预测模块,用于针对未分配到计算资源的每份待处理数据,利用所述预测模型,预测调整为该份待处理数据分配的计算资源后,该份待处理数据对应的处理耗时,作为第二调整后耗时;
第四确定模块,用于在预测得到的第二调整后耗时中,确定最短第二调整后耗时对应的待处理数据,作为接受者;
所述第二分配模块,具体用于:将所述待迁移计算资源分配给所述接受者。
CN201911256157.XA 2019-12-10 2019-12-10 一种基于Spark作业的计算资源确定方法及装置 Active CN110688993B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911256157.XA CN110688993B (zh) 2019-12-10 2019-12-10 一种基于Spark作业的计算资源确定方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911256157.XA CN110688993B (zh) 2019-12-10 2019-12-10 一种基于Spark作业的计算资源确定方法及装置

Publications (2)

Publication Number Publication Date
CN110688993A CN110688993A (zh) 2020-01-14
CN110688993B true CN110688993B (zh) 2020-04-17

Family

ID=69117791

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911256157.XA Active CN110688993B (zh) 2019-12-10 2019-12-10 一种基于Spark作业的计算资源确定方法及装置

Country Status (1)

Country Link
CN (1) CN110688993B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112199198A (zh) * 2020-10-28 2021-01-08 上海特金无线技术有限公司 无人机探测的运算资源调配方法、装置、设备与介质
CN113255903A (zh) * 2021-05-21 2021-08-13 北京百度网讯科技有限公司 检测模型调整方法和装置
CN113239243A (zh) * 2021-07-08 2021-08-10 湖南星汉数智科技有限公司 基于多计算平台的图数据分析方法、装置和计算机设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202373A (zh) * 2014-08-21 2014-12-10 清华大学深圳研究生院 移动云计算迁移方法及系统
CN108845874A (zh) * 2018-06-25 2018-11-20 腾讯科技(深圳)有限公司 资源的动态分配方法及服务器
US10176097B2 (en) * 2014-12-16 2019-01-08 Samsung Electronics Co., Ltd. Adaptable data caching mechanism for in-memory cluster computing
CN110275765A (zh) * 2019-06-14 2019-09-24 中国人民解放军国防科技大学 基于分支dag依赖的数据并行作业调度方法
CN110321222A (zh) * 2019-07-01 2019-10-11 中国人民解放军国防科技大学 基于决策树预测的数据并行作业资源分配方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55147331A (en) * 1979-05-07 1980-11-17 Toyota Central Res & Dev Lab Inc Engine analyzer
US7723906B2 (en) * 2006-12-08 2010-05-25 Denso Corporation Spark plug designed to minimize drop in insulation resistance
CN105426344A (zh) * 2015-11-09 2016-03-23 南京大学 基于Spark的分布式大规模矩阵乘法的矩阵计算方法
US20180349768A1 (en) * 2017-06-06 2018-12-06 Ca, Inc. Configuring a neural network based on a dashboard interface
CN110245022B (zh) * 2019-06-21 2021-11-12 齐鲁工业大学 海量数据下并行Skyline处理方法及系统
CN110442454B (zh) * 2019-08-02 2022-06-24 联想(北京)有限公司 一种资源调度方法、装置及计算机设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202373A (zh) * 2014-08-21 2014-12-10 清华大学深圳研究生院 移动云计算迁移方法及系统
US10176097B2 (en) * 2014-12-16 2019-01-08 Samsung Electronics Co., Ltd. Adaptable data caching mechanism for in-memory cluster computing
US10467136B2 (en) * 2014-12-16 2019-11-05 Samsung Electronics Co., Ltd. Adaptable data caching mechanism for in-memory cluster computing
CN108845874A (zh) * 2018-06-25 2018-11-20 腾讯科技(深圳)有限公司 资源的动态分配方法及服务器
CN110275765A (zh) * 2019-06-14 2019-09-24 中国人民解放军国防科技大学 基于分支dag依赖的数据并行作业调度方法
CN110321222A (zh) * 2019-07-01 2019-10-11 中国人民解放军国防科技大学 基于决策树预测的数据并行作业资源分配方法

Also Published As

Publication number Publication date
CN110688993A (zh) 2020-01-14

Similar Documents

Publication Publication Date Title
CN110688993B (zh) 一种基于Spark作业的计算资源确定方法及装置
US11886993B2 (en) Method and apparatus for task scheduling based on deep reinforcement learning, and device
CN109684083B (zh) 一种面向边缘-云异构下的多级事务调度分配策略
CN108549583B (zh) 大数据处理方法、装置、服务器及可读存储介质
WO2020108371A1 (en) Partitioning of deep learning inference with dynamic offloading
US11436050B2 (en) Method, apparatus and computer program product for resource scheduling
CN104834561A (zh) 一种数据处理方法及装置
CN112148468B (zh) 一种资源调度方法、装置、电子设备及存储介质
WO2020133317A1 (zh) 计算资源分配技术及神经网络系统
CN111108480A (zh) 一种用于分布式资源需求及分配的系统和方法
CN112068957B (zh) 资源分配方法、装置、计算机设备及存储介质
CN113918351A (zh) 深度学习框架与ai加速卡片内分布式训练适配方法和装置
CN110502321A (zh) 一种资源调度方法及系统
CN113946431B (zh) 一种资源调度方法、系统、介质及计算设备
CN104320854A (zh) 资源调度方法及装置
CN108256182B (zh) 一种动态可重构fpga的布局方法
WO2023087658A1 (zh) 一种任务调度方法、装置、设备及可读存储介质
CN111131447A (zh) 一种基于中介节点任务分配的负载均衡方法
CN114579282A (zh) 一种任务调度方法及装置
CN112560392B (zh) 用于处理电路版图的方法、设备和存储介质
CN116915869A (zh) 基于云边协同的时延敏感型智能服务快速响应方法
CN110958192B (zh) 一种基于虚拟交换机的虚拟数据中心资源分配系统及方法
CN117014057A (zh) 一种网络切片资源分配方法、装置及存储介质
CN115827178A (zh) 边缘计算任务分配方法、装置、计算机设备及相关介质
CN109165729A (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