分布式机器学习任务的资源管理方法及装置与流程

文档序号:24193188发布日期:2021-03-09 15:50阅读:128来源:国知局
分布式机器学习任务的资源管理方法及装置与流程

1.本发明涉及机器学习任务领域,具体而言,涉及一种分布式机器学习任务的资源管理方法及装置。


背景技术:

2.分布式机器学习任务在运行前,用户需要预先分配资源。应用在运行时是动态的,资源的使用情况并不是固定的,并且和任务本身以及处理的数据量相关。除了需要分配内存之外,用户还需要确定缓存的方式,而且内存分配的大小和缓存模式强耦合,同时对任务的性能产生影响。想减轻用户对内存的分配和缓存模式的选择的负担,应设计分布式机器学习任务的资源管理系统。
3.斯坦福大学计算机系delimitrou christina等人设计的quasar系统,该系统提前运行小数据收集运行时的结果数据,根据结果数据预测任务在满足性能期望的条件下所需要的资源。但现有技术的缺点是没有考虑不同的缓存模式对内存分配和性能的影响,同时需要额外运行任务收集结果数据才可以预测内存使用情况。


技术实现要素:

4.本发明实施例提供了一种分布式机器学习任务的资源管理方法及装置,以至少解决现有资源管理系统没有考虑不同的缓存模式对内存分配和性能影响的技术问题。
5.根据本发明的一实施例,提供了一种分布式机器学习任务的资源管理方法,包括以下步骤:
6.用户提交机器学习任务,该任务包括两方面的信息,一是数据集大小,二是容器数量;
7.预测模型根据数据集大小和容器数量计算内存的分配大小,同时选择相应的缓存模式;
8.根据缓存模式的选择把内存分配分成两种情况,当内存足够时,选用最优性能模型;当内存不足时,选用最优资源利用率模型。
9.进一步地,最优性能模型为数据缓存和计算都是用内存资源;最优资源利用率模型为数据缓存用磁盘资源,计算使用内存资源。
10.进一步地,对于最优性能模型的内存分配和缓存模式选择,方法先是根据数据集大小和容器数量计算每个容器需要缓存数据的大小,再根据计算分配给缓存的存储比例推算出所需分配内存的大小。
11.进一步地,在方法中预留一部分给内存垃圾回收使用,计算得到的内存大小额外添加垃圾回收使用内存。
12.进一步地,机器学习任务运行在java虚拟机上,其垃圾回收使用内存的大小和总的内存成固定的比例关系,直接通过计算得到额外添加的垃圾回收使用内存的大小。
13.进一步地,对于内存不足时,缓存模式的选择切换成磁盘缓存,此时选择了磁盘缓
存,数据全都缓存到磁盘上,只需要预留极少的内存满足计算内存需求。
14.进一步地,选择的机器学习应用为三个,分别是线性回归、逻辑回归和支持向量机三个算法。
15.根据本发明的另一实施例,提供了一种分布式机器学习任务的资源管理装置,包括:
16.提交单元,用于用户提交机器学习任务,该任务包括两方面的信息,一是数据集大小,二是容器数量;
17.缓存模式选择单元,用于预测模型根据数据集大小和容器数量计算内存的分配大小,同时选择相应的缓存模式;
18.内存分配单元,用于根据缓存模式的选择把内存分配分成两种情况,当内存足够时,选用最优性能模型;当内存不足时,选用最优资源利用率模型。
19.一种存储介质,存储介质存储有能够实现上述任意一项分布式机器学习任务的资源管理方法的程序文件。
20.一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的分布式机器学习任务的资源管理方法。
21.本发明实施例中的分布式机器学习任务的资源管理方法及装置,通过内存的预测和缓存模式的选择节省资源和提高任务的性能,用于指导用户运行分布式机器学习任务。本发明主要是分析分布式机器学习的特性以及计算框架的资源管理情况,根据这些分析构建内存预测和缓存模式选择的模型,并不需要额外的应用画像,直接对新的机器学习任务分配内存和选择缓存模式。
附图说明
22.此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
23.图1为本发明分布式机器学习任务的资源管理方法的流程图;
24.图2为本发明机器学习任务运行时的逻辑图;
25.图3为本发明针对的分布式机器学习任务的资源管理系统的逻辑图;
26.图4为本发明分布式机器学习任务的资源管理装置的模块图。
具体实施方式
27.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
28.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆
盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.实施例1
30.根据本发明一实施例,提供了一种分布式机器学习任务的资源管理方法,参见图1,包括以下步骤:
31.s101:用户提交机器学习任务,该任务包括两方面的信息,一是数据集大小,二是容器数量;
32.s102:预测模型根据数据集大小和容器数量计算内存的分配大小,同时选择相应的缓存模式;
33.s103:根据缓存模式的选择把内存分配分成两种情况,当内存足够时,选用最优性能模型;当内存不足时,选用最优资源利用率模型。
34.本发明实施例中的分布式机器学习任务的资源管理方法,通过内存的预测和缓存模式的选择节省资源和提高任务的性能,用于指导用户运行分布式机器学习任务。本发明主要是分析分布式机器学习的特性以及计算框架的资源管理情况,根据这些分析构建内存预测和缓存模式选择的模型,并不需要额外的应用画像,直接对新的机器学习任务分配内存和选择缓存模式。
35.其中,最优性能模型为数据缓存和计算都是用内存资源;最优资源利用率模型为数据缓存用磁盘资源,计算使用内存资源。
36.其中,对于最优性能模型的内存分配和缓存模式选择,方法先是根据数据集大小和容器数量计算每个容器需要缓存数据的大小,再根据计算分配给缓存的存储比例推算出所需分配内存的大小。
37.其中,在方法中预留一部分给内存垃圾回收使用,计算得到的内存大小额外添加垃圾回收使用内存。
38.其中,机器学习任务运行在java虚拟机上,其垃圾回收使用内存的大小和总的内存成固定的比例关系,所以不需要通过历史数据预测,可以直接通过计算得到额外添加的垃圾回收使用内存的大小。
39.其中,对于内存不足时,缓存模式的选择切换成磁盘缓存,此时选择了磁盘缓存,数据全都缓存到磁盘上,只需要预留极少的内存满足计算内存需求。
40.其中,选择的机器学习应用为三个,分别是线性回归、逻辑回归和支持向量机三个算法。
41.下面以具体实施例,对本发明的分布式机器学习任务的资源管理方法进行详细说明:
42.本发明主要是设计一套分布式机器学习任务的资源管理方法,通过内存的预测和缓存模式的选择节省资源和提高任务的性能,用于指导用户运行分布式机器学习任务。
43.本发明的目的是考虑缓存模式对性能的影响,同时进行资源预测时并不需要额外的应用画像数据,如额外运行任务采集的数据。从而直接从数据集大小以及分配容器数目来分配内存和选择缓存模式,充分利用了缓存的优势和减少应用画像额外的开销。
44.本发明技术方案主要是分析分布式机器学习的特性以及计算框架的资源管理情
况,根据这些分析构建内存预测和缓存模式选择的模型,并不需要额外的应用画像,直接对新的机器学习任务分配内存和选择缓存模式。
45.图2是机器学习任务运行时的逻辑图。因为任务运行在各个工作节点上,需要在任务运行前对工作节点分配资源。运行时先是阶段1从分布式文件系统上读取数据并缓存起来;接着是后续的算法迭代,如附图2中的算法迭代1和算法迭代2,每次算法迭代都可以拆成两个阶段,包括算法梯度计算和梯度收集更新,在这两个阶段中间需要进行参数的交换。因为机器学习任务训练过程需要迭代上百次,所以一次迭代的时间长短直接决定性能。在一次迭代中,因为梯度收集更新中梯度参数的数据量少,梯度参数交换、收集和更新的性能开销很小,所以重点的开销在梯度计算中需要读取的数据上。
46.图3是本发明针对的分布式机器学习任务的资源管理系统的逻辑图,首先是用户提交机器学习任务,该任务包括两方面的信息,一是数据集大小;二是容器数量。预测模型根据数据集大小和容器数量计算内存的分配大小,同时选择相应的缓存模式。前面对机器学习任务的性能开销分析得到的结论可知梯度计算中数据的读取是性能的瓶颈,所以在选择缓存模式时,需要重点考虑内存的大小。
47.本发明主要是根据缓存模式的选择把内存分配分成两种情况,一是最优性能;二是最优资源利用率。前者是数据缓存和计算都是用内存资源,以获得最优的性能;后者是数据缓存用磁盘资源,计算使用内存资源,以获得最优的资源利用率。两者的内存分配和缓存模式选择不一样。
48.对于最优性能的内存分配和缓存模式选择,本发明先是根据数据集大小和容器数量计算每个容器需要缓存数据的大小,再根据计算分配给缓存的存储比例推算出所需分配内存的大小。现在的计算框架基本都是用java虚拟机,需要预留一部分给内存垃圾回收使用,所以计算得到的内存大小还可以额外添加这部分内存,以满足正常的内存垃圾回收使用。此处是性能最优的内存分配和缓存选择模型,把数据全部缓存到内存里面,以获得最优的性能。
49.但对于内存不足时,缓存模式的选择切换成磁盘缓存。因为机器学习算法的参数很少,所需要的计算内存开销很小,所以如果选择了磁盘缓存,数据全都缓存到磁盘上,所以只需要预留极少的内存满足计算内存需求即可。此处是最优资源利用率的内存分配和缓存选择模型,把数据全部缓存到磁盘,以获得最优的资源利用率。
50.实施例2
51.根据本发明的另一实施例,提供了一种分布式机器学习任务的资源管理装置,参见图4,包括:
52.提交单元201,用于用户提交机器学习任务,该任务包括两方面的信息,一是数据集大小,二是容器数量;
53.缓存模式选择单元202,用于预测模型根据数据集大小和容器数量计算内存的分配大小,同时选择相应的缓存模式;
54.内存分配单元203,用于根据缓存模式的选择把内存分配分成两种情况,当内存足够时,选用最优性能模型;当内存不足时,选用最优资源利用率模型。
55.本发明实施例中的分布式机器学习任务的资源管理装置,通过内存的预测和缓存模式的选择节省资源和提高任务的性能,用于指导用户运行分布式机器学习任务。本发明
主要是分析分布式机器学习的特性以及计算框架的资源管理情况,根据这些分析构建内存预测和缓存模式选择的模型,并不需要额外的应用画像,直接对新的机器学习任务分配内存和选择缓存模式。
56.下面以具体实施例,对本发明的分布式机器学习任务的资源管理装置进行详细说明:
57.本发明主要是设计一套分布式机器学习任务的资源管理装置,通过内存的预测和缓存模式的选择节省资源和提高任务的性能,用于指导用户运行分布式机器学习任务。
58.本发明的目的是考虑缓存模式对性能的影响,同时进行资源预测时并不需要额外的应用画像数据,如额外运行任务采集的数据。从而直接从数据集大小以及分配容器数目来分配内存和选择缓存模式,充分利用了缓存的优势和减少应用画像额外的开销。
59.本发明技术方案主要是分析分布式机器学习的特性以及计算框架的资源管理情况,根据这些分析构建内存预测和缓存模式选择的模型,并不需要额外的应用画像,直接对新的机器学习任务分配内存和选择缓存模式。
60.图2是机器学习任务运行时的逻辑图。因为任务运行在各个工作节点上,需要在任务运行前对工作节点分配资源。运行时先是阶段1从分布式文件系统上读取数据并缓存起来;接着是后续的算法迭代,如附图2中的算法迭代1和算法迭代2,每次算法迭代都可以拆成两个阶段,包括算法梯度计算和梯度收集更新,在这两个阶段中间需要进行参数的交换。因为机器学习任务训练过程需要迭代上百次,所以一次迭代的时间长短直接决定性能。在一次迭代中,因为梯度收集更新中梯度参数的数据量少,梯度参数交换、收集和更新的性能开销很小,所以重点的开销在梯度计算中需要读取的数据上。
61.图3是本发明针对的分布式机器学习任务的资源管理系统的逻辑图,提交单元201:首先是用户提交机器学习任务,该任务包括两方面的信息,一是数据集大小;二是容器数量。缓存模式选择单元202:预测模型根据数据集大小和容器数量计算内存的分配大小,同时选择相应的缓存模式。前面对机器学习任务的性能开销分析得到的结论可知梯度计算中数据的读取是性能的瓶颈,所以在选择缓存模式时,需要重点考虑内存的大小。
62.内存分配单元203:本发明主要是根据缓存模式的选择把内存分配分成两种情况,一是最优性能;二是最优资源利用率。前者是数据缓存和计算都是用内存资源,以获得最优的性能;后者是数据缓存用磁盘资源,计算使用内存资源,以获得最优的资源利用率。两者的内存分配和缓存模式选择不一样。
63.对于最优性能的内存分配和缓存模式选择,本发明先是根据数据集大小和容器数量计算每个容器需要缓存数据的大小,再根据计算分配给缓存的存储比例推算出所需分配内存的大小。现在的计算框架基本都是用java虚拟机,需要预留一部分给内存垃圾回收使用,所以计算得到的内存大小还可以额外添加这部分内存,以满足正常的内存垃圾回收使用。此处是性能最优的内存分配和缓存选择模型,把数据全部缓存到内存里面,以获得最优的性能。
64.但对于内存不足时,缓存模式的选择切换成磁盘缓存。因为机器学习算法的参数很少,所需要的计算内存开销很小,所以如果选择了磁盘缓存,数据全都缓存到磁盘上,所以只需要预留极少的内存满足计算内存需求即可。此处是最优资源利用率的内存分配和缓存选择模型,把数据全部缓存到磁盘,以获得最优的资源利用率。
65.实施例3
66.一种存储介质,存储介质存储有能够实现上述任意一项分布式机器学习任务的资源管理方法的程序文件。
67.实施例4
68.一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的分布式机器学习任务的资源管理方法。
69.本发明的创新技术点至少在于:
70.1.内存分配结合数据缓存模式的选择;
71.2.根据数据集大小和容器个数计算最优性能和最优资源利用率的内存分配和数据缓存模式选择。
72.本发明的有益效果至少在于:
73.1.本发明不需要对运行的机器学习任务做额外的应用画像,减少这部分的开销;
74.2.本发明充分考虑不同缓存模式的影响。
75.本发明经过了实验验证,实验的计算框架是spark,选择的机器学习应用有三个,分别是线性回归、逻辑回归和支持向量机等三个算法。运行的结果表明,本发明的内存分配和缓存选择方案的准确率高达95%,可以取得最优的性能和最优的资源利用率。
76.在内存分配处于充足和不充足之间,缓存模式的选择可以考虑结合内存缓存和硬盘缓存。先缓存满内存,然后再把剩余部分的数据缓存到硬盘。这样的好处是充分利用了内存快速读写的优势,同时又兼顾了数据不足以全部缓存到内存的情况。
77.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
78.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
79.在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的系统实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
80.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
81.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
82.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步
骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
83.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1