基于自适应调整步长的大数据作业采样方法和装置与流程

文档序号:20190064发布日期:2020-03-27 19:34阅读:450来源:国知局
基于自适应调整步长的大数据作业采样方法和装置与流程

本申请涉及计算机技术领域,特别是涉及一种基于自适应调整步长的大数据作业采样方法和装置。



背景技术:

训练样本的数量会影响这神经网络模型的泛化能力。通常来说,采集更多的训练样本(不包括负样本)可以更有效地提升神经网络模型的预测能力。然而,在大数据作业的背景下,收集样本是一件很耗时的体力劳动。一个样本或者一条数据记录是从一个正常执行完成的数据并行作业中提取的。也就是说,采样的开销相当于样本作业的执行时间。对于大数据作业来说,作业执行的过程会持续至少数小时以上的时间。因此,采集充足的训练样本(成百上千)一直是一项很难的挑战。在最近的一项相关工作中,研究者曾花了两到四天来收集样本。尤其是,大数据作业可被划分为不同的应用类型,只有属于同一应用的大数据作业才能组成训练样本的数据集。

常见的采样方法包括:(1)随机采样方法;(2)固定步长采样方法。随机采样方法会用随机的采样步长来采集样本。固定步长的采样方法会设置固定的采样步长。随机采样得到的样本大多数是从过量分配或者欠分配的作业中采集得到的。为了增加预测精确度,一个直接的采样方法是采集尽可能多的样本。然而,通过增加样本数量来提高预测精确度的做法是不可取的。由于每采集一个样本就得执行一个大数据作业,采集样本是特别花时间的。过去的预测方法花了四天时间来采集两千个样本。然而,这批样本大多数是从过量分配或者欠分配的作业中采集得到的。这对预测模型的精确度提升并没有帮助。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够解决样本稀疏化问题的基于自适应调整步长的大数据作业采样方法和装置。

一种基于自适应调整步长的大数据作业采样方法,所述方法包括:

配置大数据作业的采样参数;

根据集群中cpu核心总数,设置采样范围长度,以及设置采样步长变化倍数;

根据所述采样范围长度、所述采样步长变化倍数,确定执行所述采样参数所分配的采样cpu核心数量;

根据所述采样cpu核心数量,执行所述采样参数,得到作业执行时间;

将所述作业执行时间和所述采样cpu核心数量输出作为大数据作业的样本。

在其中一个实施例中,还包括:确定采样的数据文件大小、采样数据分区数量以及内存资源的数量作为采样参数。

在其中一个实施例中,还包括:根据集群中cpu核心总数,设置采样时cpu核心的上边界和下边界;根据所述上边界和所述下边界,确定采样范围长度;以及设置采样步长变化倍数;所述采样步长变化倍数大于0,且小于1。

在其中一个实施例中,还包括:根据所述下边界、所述采样步长变化倍数以及所述采样范围长度,确定执行所述采样参数所分配的采样cpu核心数量的表达式如下:

其中,cn表示第n个执行采样参数所分配的采样cpu核心数量,τ表示采样步长变化倍数,0<τ<1,δ1表示下边界,l表示采样范围长度。

在其中一个实施例中,还包括:当检测到第n个执行采样参数所分配的采样cpu核心数量对应的作业执行时间tn以及第n-1个执行采样参数所分配的采样cpu核心数量对应的作业执行时间tn-1满足tn>tn-1时,停止采样。

在其中一个实施例中,还包括:获取预先设置的采样范围的界限松弛度ε;

当检测到第n个执行采样参数所分配的采样cpu核心数量cn与第n-1个执行采样参数所分配的采样cpu核心数量cn-1满足cn-cn-1<ε时,停止采样。

在其中一个实施例中,还包括:获取预先设置的最小采样样本数λ;

当检测到样本数n满足n<λ时,更新所述上边界和所述下边界;更新后所述下边界满足如下表达式:

更新后所述上边界满足如下表达式:

一种基于自适应调整步长的大数据作业采样装置,所述装置包括:

参数配置模块,用于配置大数据作业的采样参数;

样本采集模块,用于根据集群中cpu核心总数,设置采样范围长度,以及设置采样步长变化倍数;根据所述采样范围长度、所述采样步长变化倍数,确定执行所述采样参数所分配的采样cpu核心数量;根据所述采样cpu核心数量,执行所述采样参数,得到作业执行时间;

样本输出模块,用于将所述作业执行时间和所述采样cpu核心数量输出作为大数据作业的样本。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

配置大数据作业的采样参数;

根据集群中cpu核心总数,设置采样范围长度,以及设置采样步长变化倍数;

根据所述采样范围长度、所述采样步长变化倍数,确定执行所述采样参数所分配的采样cpu核心数量;

根据所述采样cpu核心数量,执行所述采样参数,得到作业执行时间;

将所述作业执行时间和所述采样cpu核心数量输出作为大数据作业的样本。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

配置大数据作业的采样参数;

根据集群中cpu核心总数,设置采样范围长度,以及设置采样步长变化倍数;

根据所述采样范围长度、所述采样步长变化倍数,确定执行所述采样参数所分配的采样cpu核心数量;

根据所述采样cpu核心数量,执行所述采样参数,得到作业执行时间;

将所述作业执行时间和所述采样cpu核心数量输出作为大数据作业的样本。

上述基于自适应调整步长的大数据作业采样方法、装置、计算机设备和存储介质,利用大数据作业的作业完成时间随着计算资源变化的特点,通过设置采样范围长度以及设置采样步长变化倍数自适应地调整作业的计算资源数量(即步长),来减小采样的开销。这种方法充分从近似最优分配的作业中采集样本,解决样本稀疏化的问题。

附图说明

图1为一个实施例中基于自适应调整步长的大数据作业采样方法的流程示意图;

图2为另一个实施例中基于自适应调整步长的大数据作业采样方法的流程示意图;

图3为一个实施例中基于自适应调整步长的大数据作业采样装置的结构框图;

图4为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

在一个实施例中,如图1所示,提供了一种基于自适应调整步长的大数据作业采样方法,该方法应用于终端中,包括以下步骤:

步骤102,配置大数据作业的采样参数。

采样参数指的是计算机执行的环境,在spark平台执行数据并行作业时,不同的采样参数下,相同cpu核心数的作业完成时间可能不同,针对于spark作业时间预测模型而言,需要采集大量的样本数据,因此,通过配置固定的采样参数,设置不同的cpu核心数量,可以采集到多个样本数据,便于对预测模型的训练。

一般而言,采集参数可以是数据文件大小、采样数据分区数量以及内存资源的数量等。

步骤104,根据集群中cpu核心总数,设置采样范围长度,以及设置采样步长变化倍数。

cpu核心总数指的是spark平台中,集群中的cpu核心总数,可以预先获取到集群中cpu核心总数,然后通过指定执行该采样参数所需的cpu核心数,完成一次样本数据的采集。

采样范围指的是执行采样参数的cpu核心数范围,通过采样范围可以确定采样范围长度,根据cpu核心总数可以确定采样范围,进一步可以得到采样范围长度。

采样步长变化倍数指的是,随着时间或者次数的变化,每一次采样的步长采用几何的方式变化,而设置的采样步长变化倍数,即当执行该采样参数所需的cpu核心数越接近cpu核心总数,可以使得步长的变化速度越小,从而实现自适应地调整作业的计算资源数量(即cpu核心数)

步骤106,根据采样cpu核心数量,执行采样参数,得到作业执行时间。

当确定采样参数和采样cpu核心数量时,在spark平台中执行该作业,可以记录该作业的时间,即作业执行时间。

随着时间或者采样时间的推进,在不同的采样cpu核心数量的条件下,可以记录多个作业执行时间。

步骤108,将作业执行时间和采样cpu核心数量输出作为大数据作业的样本。

可以将作业执行时间和采样cpu核心数量对应保存为一条样本数据,作为spark平台预测作业时间的预测模型进行训练的样本。

上述基于自适应调整步长的大数据作业采样方法中,利用大数据作业的作业完成时间随着计算资源变化的特点,通过设置采样范围长度以及设置采样步长变化倍数自适应地调整作业的计算资源数量(即步长),来减小采样的开销。这种方法充分从近似最优分配的作业中采集样本,解决样本稀疏化的问题。

在同一采样参数下,通过自适应变化计算机资源,多次在spark平台中执行,可以得到多个样本数据,在进行每次采样下,会根据前一次采样的步长,自适应的调整步长,从而达到最佳的利用计算机资源,保证采样数据的有效性。

在其中一个实施例中,根据集群中cpu核心总数,设置采样时cpu核心的上边界和下边界,根据所述上边界和所述下边界,确定采样范围长度,以及设置采样步长变化倍数;所述采样步长变化倍数大于0,且小于1。

具体的,例如集群中总共有288个cpu核心,那么可以设置下边界为0,上边界为288,因此,采样范围为0-288,可以得到采样范围长度为288,由于采样步长变化倍数大于0,且小于1,可以设置采样步长变化倍数为0.5,值得说明的是,也可以设置为其他值,具体根据需要设置。

在其中一个实施例中,根据下边界、采样步长变化倍数以及采样范围长度,确定执行采样参数所分配的采样cpu核心数量的表达式如下:

其中,cn表示第n个执行采样参数所分配的采样cpu核心数量,τ表示采样步长变化倍数,0<τ<1,δ1表示下边界,l表示采样范围长度。

具体的,如图2所示,在终端中执行该采样方法时,包括如下步骤:

步骤201,计算初始采样步长。

初始采样步长step1=δ1+τ×l。

步骤202,将step1个cpu核心分配给spark平台作业。

步骤203,确定采样参数和采样cpu核心数量后,spark平台执行该作业。

步骤204,记录该作业的作业执行时间。

作业执行时间即采集这个样本的开销。

步骤205,从执行完成的作业中提取样本特征:采样参数和采样cpu核心数。

步骤206,从执行完成的作业中提取样本标签:作业执行时间。

步骤207,调整下一个样本的采样步长。

即stepn=δ1+τn×l。

步骤208,计算分配给下一个样本的样本cpu核心数量。

即样本cpu核心数量的表示为cn=cn-1+stepn。

步骤209,执行下一个样本的作业。

本发明实施例中,自适应采样会根据数据并行作业的特点来采集样本。数据并行作业的执行时间会随着计算资源的数量先降低再增加。如果采样方法的采样步长逐渐增加,那么在计算资源增加的过程中数据并行作业会经历欠分配到过量分配的状态。自适应采样会利用这个特点来按照上述方法调整采样步长。在作业处于计算资源欠分配的状态下,自适应采样方法会设置一个较大的采样步长,以便尽快增加计算资源数量,减少采集到计算资源欠分配的作业的概率。随着采集的样本越来越多,采集到的样本逐渐接近最优分配的状态。此时,为了多采集近似最优分配的样本,自适应采样方法会减少采样步长。尽管采样步长stepi减少,但是分配的计算资源数量(即ci)仍然是增加的。计算资源的增加量很小,因此采集到的样本仍然是近似最优分配的。自适应采样方法会选择以几何级数递减的采样步长。这意味着在前几轮采样之后,采样步长会变得非常小。这时候采集到的样本大多是从计算资源近似最优分配的作业处采集的。当采集的样本的作业执行时间反而增加时,作业进入过量分配的状态。此时,自适应采样方法会停止采样。因此,需要设置几种停止采样的方式。

在一个实施例中,当检测到第n个执行采样参数所分配的采样cpu核心数量对应的作业执行时间tn以及第n-1个执行采样参数所分配的采样cpu核心数量对应的作业执行时间tn-1满足tn>tn-1时,停止采样。本实施例中,当tn>tn-1时,说明再继续采样时,会处于过分配的条件下,因此需要停止采样。

在另一个实施例中,获取预先设置的采样范围的界限松弛度ε,当检测到第n个执行采样参数所分配的采样cpu核心数量cn与第n-1个执行采样参数所分配的采样cpu核心数量cn-1满足cn-cn-1<ε时,停止采样。本实施例中,在整个采样范围已经被采样了,则会停止采样,通过设置界限松弛度,来确定cn非常接近采样范围的上边界δ2,即cn-cn-1<ε,一般而言,界限松弛度取10,也可以根据需求修改。

在又一个实施例中,获取预先设置的最小采样样本数λ,当检测到样本数n满足n<λ时,更新上边界和下边界;更新后下边界满足如下表达式:

更新后所述上边界满足如下表达式:

本实施例中,当采样的样本数不够,并且采样已经终止,可以更新上边界和下边界,以重新采样,获得更多的样本数。

具体的,以上述参数为例,若分配250个cpu核心数时,作业执行时间最短,当进行第三次采样时,分配的cpu核心数时253,显然第三次采样的作业执行时间大于最短时间,根据停止采样的条件,仅采集到3个样本,远小于最小采样样本数,因此需要从新设置上边界和下边界,以采集到更多的样本。

应该理解的是,虽然图1和2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1和2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图3所示,提供了一种基于自适应调整步长的大数据作业采样装置,包括:参数配置模块302、样本采集模块304和样本输出模块306,其中:

参数配置模块302,用于配置大数据作业的采样参数;

样本采集模块304,用于根据集群中cpu核心总数,设置采样范围长度,以及设置采样步长变化倍数;根据所述采样范围长度、所述采样步长变化倍数,确定执行所述采样参数所分配的采样cpu核心数量;根据所述采样cpu核心数量,执行所述采样参数,得到作业执行时间;

样本输出模块306,用于将所述作业执行时间和所述采样cpu核心数量输出作为大数据作业的样本。

在其中一个实施例中,参数配置模块302还用于确定采样的数据文件大小、采样数据分区数量以及内存资源的数量作为采样参数。

在其中一个实施例中,样本采集模块304还用于根据集群中cpu核心总数,设置采样时cpu核心的上边界和下边界;根据所述上边界和所述下边界,确定采样范围长度;以及设置采样步长变化倍数;所述采样步长变化倍数大于0,且小于1。

在其中一个实施例中,样本采集模块304还用于根据所述下边界、所述采样步长变化倍数以及所述采样范围长度,确定执行所述采样参数所分配的采样cpu核心数量的表达式如下:

其中,cn表示第n个执行采样参数所分配的采样cpu核心数量,τ表示采样步长变化倍数,0<τ<1,δ1表示下边界,l表示采样范围长度。

在其中一个实施例中,还包括:采样停止判断模块,用于当检测到第n个执行采样参数所分配的采样cpu核心数量对应的作业执行时间tn以及第n-1个执行采样参数所分配的采样cpu核心数量对应的作业执行时间tn-1满足tn>tn-1时,停止采样。

在其中一个实施例中,采样停止判断模块还用于获取预先设置的采样范围的界限松弛度ε;当检测到第n个执行采样参数所分配的采样cpu核心数量cn与第n-1个执行采样参数所分配的采样cpu核心数量cn-1满足cn-cn-1<ε时,停止采样。

在其中一个实施例中,还包括:边界更新模块,用于获取预先设置的最小采样样本数λ;当检测到样本数n满足n<λ时,更新所述上边界和所述下边界;更新后所述下边界满足如下表达式:

更新后所述上边界满足如下表达式:

关于基于自适应调整步长的大数据作业采样装置的具体限定可以参见上文中对于基于自适应调整步长的大数据作业采样方法的限定,在此不再赘述。上述基于自适应调整步长的大数据作业采样装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于自适应调整步长的大数据作业采样方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1