一种分布式迭代计算系统的任务参数优化方法转让专利

申请号 : CN201610341201.7

文献号 : CN106021495B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王建民龙明盛陈侨安黄向东

申请人 : 清华大学

摘要 :

本发明涉及一种分布式迭代计算系统中的任务参数优化方法,属于分布式数据处理技术领域。本方法首先采集分布式迭代计算系统中历史任务的运行数据,构建历史数据库;进行任务参数优化时,根据约束条件对历史数据库中显著不相关的运行数据进行一次过滤;然后对待优化任务对应的历史数据库中的运行数据与一次过滤后的运行数据进行有向无环图的相似度计算,并对相似度低于一定阈值的运行数据进行二次过滤;最后将两次过滤后的结果经过计算排序,并将排序后的运行数据所对应的任务参数作为任务参数优化结果。本发明能自动进行分布式迭代计算系统的任务参数优化,是一种即插即用型自适应调优方法,能够显著降低用户使用分布式迭代计算系统的门槛。

权利要求 :

1.一种分布式迭代计算系统中任务参数优化的方法,其特征在于,该方法首先采集分布式迭代计算系统中历史任务的运行数据,构建历史数据库;进行任务参数优化时,根据约束条件对历史数据库中显著不相关的运行数据进行一次过滤;然后对待优化任务对应的历史数据库中的运行数据与一次过滤后的运行数据进行有向无环图的相似度计算,并对相似度低于一定阈值的运行数据进行二次过滤;最后将两次过滤后的结果经过计算排序,并将排序后的运行数据所对应的任务参数作为任务参数优化结果。

2.如权利要求1所述的方法,其特征在于,该方法具体包括以下步骤:

(1)从分布式迭代计算系统中获取每个历史任务的运行数据,将每个历史任务的运行数据保存到历史数据库中,历史数据库中每一项数据代表一个历史任务的运行数据;

(2)根据用户请求,对分布式迭代计算系统中的任务进行任务参数优化,设从历史数据库中找出的与该任务相同的的历史任务的运行数据为Jsrc;

(3)从历史数据库中找出满足所有硬件资源约束的历史任务运行数据组成数据集合Shardware;

(4)在步骤(3)得到的Shardware的所有运行数据中找出输入数据总大小与步骤(2)得到的Jsrc的输入数据总大小在数值上相对差异小于设定的输入数据大小差异阈值的运行数据组成数据集合Sdatasize;

(5)在步骤(4)得到的Sdatasize的所有运行数据的所有有向无环图中找出与Jsrc的有向无环图在规模上相近的有向无环图的运行数据组成数据集合Sdag;

(6)计算步骤(5)得到的Sdag中每项运行数据的有向无环图与Jsrc的有向无环图的相似度,并设定相似度阈值;

(7)遍历步骤(6)的计算结果,抛弃Sdag中有向无环图与Jsrc的有向无环图相似度低于设定的相似度阈值的运行数据,设剩余运行数据组成的数据集合为Ssim;

(8)对步骤(7)得到的Ssim中的每项运行数据按照公式 的计算结果

从高到低进行排序,并只保留排序后计算结果中前n项的运行数据,n为正整数;式中,定义Jsrc的有向无环图为Gsrc;设Sdag中任一项运行数据为Jdst,定义Jdst的有向无环图为Gdst,timedst表示Jdst的运行时间;sim(Gsrc,Gdst)代表Jdst的有向无环图与Jsrc的有向无环图的相似度;设排序后所得结果组成的数据集合为Srank;

(9)将步骤(8)得到的Srank中的每一条运行数据的任务参数在图型显示界面上显示给用户,任务参数优化流程结束;

(10)当用户再次请求对分布式迭代计算系统的任务进行优化时,重新返回步骤(2)。

3.如权利要求2所述的方法,其特征在于,步骤(6)中计算Sdag中每项运行数据的有向无环图与Jsrc的有向无环图的相似度,具体计算步骤如下:(6-1)设Sdag中任一项运行数据为Jdst,计算Jdst的有向无环图与Jsrc的有向无环图相似度,定义Jsrc的有向无环图为Gsrc=(Nsrc,Esrc,Lsrc),其中Nsrc表示有向无环图Gsrc中的节点集合,Esrc表示有向无环图Gsrc中的边集合,Lsrc表示有向无环图Gsrc中每个节点上的标签所构成的集合;定义Jdst的有向无环图为Gdst=(Ndst,Edst,Ldst),其中Ndst表示有向无环图Gdst中的节点集合,Edst表示有向无环图Gdst中的边集合,Ldst表示有向无环图Gdst中每个节点上的标签所构成的集合;

(6-2)Jdst与Jsrc的有向无环图之间的相似度由如下公式定义:

式中,sim(Gsrc,Gdst)代表Jdst的有向无环图与Jsrc的有向无环图的相似度,取值范围为[0,1];

skipN(Gsrc,Gdst)代表使Gsrc和Gdst相等的过程中,Gsrc与Gdst分别增加或删除的节点的数目之和;

skipE(Gsrc,Gdst)代表使Gsrc和Gdst相等过程中,Gsrc与Gdst分别增加或删除的边的数目之和;

nsrc和ndst分别代表在有向无环图Gsrc中的任一个节点和有向无环图Gdst中的任一个节点;

lsrc和ldst分别代表节点nsrc和ndst所对应的标签;

edit(lsrc,ldst)表示lsrc和ldst两个标签上的编辑距离,即由标签lsrc转换成标签ldst过程中所需的最少编辑操作次数;

|lsrc|和|ldst|分别表示标签lsrc和标签ldst的字符串长度;

(6-3)重复步骤(6-1)至(6-2),计算得到Sdag中每项运行数据的有向无环图与Jsrc的有向无环图的相似度。

4.如权利要求2所述的方法,其特征在于,步骤(3)所述硬件资源约束,包括:历史数据库中运行数据总体内存与Jsrc的总体内存在数值上相对差异小于设定的内存差异阈值;运行数据可运行CPU核数与Jsrc的可运行CPU核数在数值上相对差异小于设定的核数差异阈值;运行数据机器节点数与Jsrc的机器节点数在数值上相对差异小于设定的机器节点数差异阈值。

5.如权利要求2所述的方法,其特征在于,步骤(5)所述两个有向无环图的规模相近,包括以下两方面条件:其一,两个有向无环图上的节点数目在数值上相对差异小于设定的有向无环图节点数目差异阈值;其二,两个有向无环图上的边数目在数值上相对差异小于设定的有向无环图边数目差异阈值。

说明书 :

一种分布式迭代计算系统的任务参数优化方法

技术领域

[0001] 本发明属于分布式数据处理技术领域,特别涉及一种分布式迭代计算系统中任务参数优化方法。

背景技术

[0002] 使用分布式迭代计算系统处理大规模数据集已成为目前数据处理的主要做法。相比于传统的单机数据处理方案,现在流行并被大量使用的分布式迭代计算系统,如Apache Spark,利用了多台机器对数据进行划分,从而大幅度的提高了数据处理的规模。并且,多台机器参与到数据处理的流程中,提高了数据处理的并行数目,加快了大规模数据的处理速度。
[0003] 尽管拥有以上的优点,一个分布式迭代计算系统任务的正常运行需要合理的任务参数。不合理的任务参数会导致该任务在分布式迭代计算系统中的处理速度下降。合理的任务参数能增加任务在分布式迭代计算系统中数据处理的并行度,减少网络的传输开销和减少调度时间开销,因此能加快任务的处理速度。分布式迭代计算系统所涉及的任务参数多达数十个,并且任务参数之间存在错综复杂的关系。任务参数的配置工作给开发人员带来了额外的开销,并且人工决策的任务参数不一定取得良好的运行性能。
[0004] 分布式迭代计算系统中存在任务参数众多并且不容易配好的难题,由此引出的一个问题是,能否给分布式迭代计算系统中的任务参数进行优化。目前,分布式迭代计算系统中任务参数优化工作主要依赖于工程师的经验进行决策。但这种优化方法过于主观,经验充足的工程师往往能得出较好的任务参数,而经验不足的工程师却得不出较好的任务参数。

发明内容

[0005] 本发明的目的是针对现有分布式迭代计算系统中任务参数众多并且不容易配置好的难题,提出一种分布式迭代计算系统的任务参数优化方法。本发明能自动进行分布式迭代计算系统的任务参数优化,是一种即插即用型自适应调优方法,能够显著降低用户使用分布式迭代计算系统的门槛。
[0006] 本发明提出的分布式迭代计算系统中的任务参数优化方法,首先采集分布式迭代计算系统中历史任务的运行数据,构建历史数据库;进行任务参数优化时,根据约束条件对历史数据库中显著不相关的运行数据进行一次过滤;然后对待优化任务对应的历史数据库中的运行数据与一次过滤后的运行数据进行有向无环图的相似度计算,并对相似度低于一定阈值的运行数据进行二次过滤;最后将两次过滤后的结果经过计算排序,并将排序后的运行数据所对应的任务参数作为任务参数优化结果。该方法具体包括以下步骤:
[0007] (1)从分布式迭代计算系统中获取每个历史任务的运行数据,将每个历史任务的运行数据保存到历史数据库中,历史数据库中每一项数据代表一个历史任务的运行数据;
[0008] (2)根据用户请求,对分布式迭代计算系统中的任务进行任务参数优化,设从历史数据库中找出的与该任务相同的的历史任务的运行数据为Jsrc;
[0009] (3)从历史数据库中找出满足所有硬件资源约束的历史任务运行数据组成数据集合Shardware;
[0010] (4)在步骤(3)得到的Shardware的所有运行数据中找出输入数据总大小与步骤(2)得到的Jsrc的输入数据总大小在数值上相对差异小于设定的输入数据大小差异阈值的运行数据组成数据集合Sdatasize;
[0011] (5)在步骤(4)得到的Sdatasize的所有运行数据中找出有向无环图与Jsrc的有向无环图在规模上相近的运行数据组成数据集合Sdag;
[0012] (6)计算步骤(5)得到的Sdag中每项运行数据的有向无环图与Jsrc的有向无环图的相似度,并设定相似度阈值;
[0013] (7)遍历步骤(6)的计算结果,抛弃Sdag中有向无环图与Jsrc的有向无环图相似度低于设定的相似度阈值的运行数据,设剩余运行数据组成的数据集合为Ssim;
[0014] (8)对步骤(7)得到的Ssim中的每项运行数据按照公式 的计算结果从高到低进行排序,并只保留排序后计算结果中前n项的运行数据,n为正整数;式中,timedst表示Jdst的运行时间;设排序后所得结果组成的数据集合为Srank;
[0015] (9)将步骤(8)得到的Srank中的每一条运行数据的任务参数在图型显示界面上显示给用户,任务参数优化流程结束;
[0016] (10)当用户再次请求对分布式迭代计算系统的任务进行优化时,重新返回步骤(2)。
[0017] 本发明提出的分布式迭代计算系统中任务参数的优化方法,其特点和有益效果是:
[0018] 1.本发明方法能让计算机承担分布式迭代计算系统中的任务参数优化的工作,减少了用户在使用分布式迭代计算系统时的工作量。在用户不熟悉分布式迭代计算系统的情况下,能给用户提供较为有效的任务参数,减轻了使用分布式迭代计算系统的压力。
[0019] 2.本方法结合了系统优化的经验规则和基于相似性搜索的优化方法,提高了任务参数优化的可靠性和可用性。
[0020] 3.本发明方法能适应系统的变化而进行改变,是一种自适应的调优方法。在分布式迭代计算系统运行的过程中,该方法会不断的收集系统所产生的运行数据,使得历史数据库的数据量越来越大,所能覆盖的任务类别越来越多。数据量的增加会使得任务参数优化结果随着系统运行而变得更好。
[0021] 4.本发明方法不需改动原有的分布式迭代计算系统,属于即插即用型的方法。

附图说明

[0022] 图1是本发明提出的分布式迭代计算系统中任务参数优化方法的总体流程图。

具体实施方式

[0023] 本发明提出一种分布式迭代计算系统中任务参数优化方法,下面结合附图和具体实施例进一步详细说明如下。
[0024] 本发明提出一种分布式迭代计算系统中任务参数优化方法,总体流程如图1所示,本方法首先采集分布式迭代计算系统中历史任务的运行数据,构建历史数据库;进行任务参数优化时,根据约束条件对历史数据库中显著不相关的运行数据进行一次过滤;然后对待优化任务对应的历史数据库中的运行数据与一次过滤后的运行数据进行有向无环图的相似度计算,并对相似度低于一定阈值的运行数据进行二次过滤;最后将两次过滤后的结果经过计算排序,并将排序后的运行数据所对应的任务参数作为任务参数优化结果。该方法具体包括以下步骤:
[0025] (1)从分布式迭代计算系统中获取每个历史任务的运行数据,一个历史任务的运行数据包括任务参数、硬件资源信息(总体内存、可运行CPU核数和机器节点数目)、输入数据总大小和对应的有向无环图(任务在执行过程中,任务被分为多个子任务,有向无环图用于反映各个子任务之间的依赖关系;有向无环图上的节点代表子任务,有向无环图上的边代表子任务之间的先后执行顺序关系,节点上的标签代表子任务的具体名字);然后将每个历史任务的运行数据保存到历史数据库中,历史数据库中每一项数据代表一个历史任务的运行数据;
[0026] (2)根据用户请求,对分布式迭代计算系统中的任务进行任务参数优化,设从历史数据库中找出与该任务相同的历史任务的运行数据为Jsrc;
[0027] (3)从历史数据库中找出满足所有硬件资源约束的历史任务运行数据组成数据集合Shardware;所述约束包括:运行数据总体内存与Jsrc的总体内存在数值上相对差异小于设定的内存差异阈值(本实施例设定的阈值为30%);运行数据可运行CPU核数与Jsrc的可运行CPU核数在数值上相对差异小于设定的核数差异阈值(本实施例设定的阈值为30%);运行数据机器节点数与Jsrc的机器节点数在数值上相对差异小于设定的机器节点数差异阈值(本实施例设定的阈值为30%);
[0028] (4)在步骤(3)得到的Shardware的所有运行数据中找出输入数据总大小与步骤(2)得到的Jsrc的输入数据总大小在数值(以兆为单位)上相对差异小于设定的输入数据大小差异阈值的运行数据,组成数据集合Sdatasize(本实施例设定的阈值为30%);
[0029] (5)在步骤(4)得到的Sdatasize的所有运行数据中找出有向无环图与Jsrc的有向无环图在规模上相近的运行数据组成数据集合Sdag;两个有向无环图的规模相近包括以下两方面条件:其一,两个有向无环图上的节点数目在数值上相对差异小于设定的有向无环图节点数目差异阈值(本实施例设定的阈值为30%);其二,两个有向无环图上的边数目在数值上相对差异小于设定的有向无环图边数目差异阈值(本实施例设定的阈值为30%);
[0030] (6)计算步骤(5)得到的Sdag中每项运行数据的有向无环图与Jsrc的有向无环图的相似度,并设定相似度阈值;具体计算过程步骤如下:
[0031] (6-1)设Sdag中任一项运行数据为Jdst,计算Jdst的有向无环图与Jsrc的有向无环图相似度,定义Jsrc的有向无环图为Gsrc=(Nsrc,Esrc,Lsrc),其中Nsrc表示有向无环图Gsrc中的节点集合,Esrc表示有向无环图Gsrc中的边集合,Lsrc表示有向无环图Gsrc中每个节点上的标签所构成的集合;定义Jdst的有向无环图为Gdst=(Ndst,Edst,Ldst),其中Ndst表示有向无环图Gdst中的节点集合,Edst表示有向无环图Gdst中的边集合,Ldst表示有向无环图Gdst中每个节点上的标签所构成的集合;
[0032] (6-2)Jdst与Jsrc的有向无环图之间的相似度由如下公式定义:
[0033]
[0034] 式中,sim(Gsrc,Gdst)代表Jdst的有向无环图与Jsrc的有向无环图的相似度,取值范围为[0,1];
[0035] skipN(Gsrc,Gdst)代表使Gsrc和Gdst相等的过程中,Gsrc与Gdst分别增加或删除的节点的数目之和;
[0036] skipE(Gsrc,Gdst)代表使Gsrc和Gdst相等过程中,Gsrc与Gdst分别增加或删除的边的数目之和;
[0037] nsrc和ndst分别代表在有向无环图Gsrc中的任一个节点和有向无环图Gdst中的任一个节点;
[0038] lsrc和ldst分别代表节点nsrc和ndst所对应的标签;
[0039] edit(lsrc,ldst)表示lsrc和ldst两个标签上的编辑距离,即由标签lsrc转换成标签ldst过程中所需的最少编辑操作次数(允许的编辑操作包括:将lsrc中的一个字符替换成另外一个字符;将lsrc中的一个字符删除;添加一个字符到lsrc中);
[0040] |lsrc|和|ldst|分别表示标签lsrc和标签ldst的字符串长度;
[0041] (6-3)重复步骤(6-1)至(6-2),计算得到Sdag中每项运行数据的有向无环图与Jsrc的有向无环图的相似度;
[0042] (7)遍历步骤(6)的计算结果,抛弃Sdag中有向无环图与Jsrc的有向无环图相似度低于设定相似度阈值的运行数据(本实施例设定的阈值为0.3),设剩余运行数据组成的数据集合为Ssim;
[0043] (8)对步骤(7)得到的Ssim中的每项运行数据按照公式 的计算结果从高到低进行排序,并只保留排序后计算结果中前n项的运行数据,n为正整数(具体保留结果的数目根据实际情况决定,本实施例保留排序后前10项计算结果);式中,timedst表示Jdst的运行时间;该公式综合考虑了两项因素,一是Jdst与Jsrc在有向无环图上的相似度,二是Jdst所对应的历史任务的运行时间;在这种评价指标下进行排序,在有向无环图上相似度越高,或Jdst所对应的历史任务运行时间越短,运行数据在排序结果中越靠前;设排序后所得结果组成的数据集合为Srank;
[0044] (9)将步骤(8)得到的Srank中的每一条运行数据的任务参数在图型显示界面上显示给用户,任务参数优化流程结束;
[0045] (10)当用户再次请求对分布式迭代计算系统的任务进行优化时,重新返回步骤(2)。