CN109710406B - 数据分配及其模型训练方法、装置、及计算集群 - Google Patents
数据分配及其模型训练方法、装置、及计算集群 Download PDFInfo
- Publication number
- CN109710406B CN109710406B CN201811573032.5A CN201811573032A CN109710406B CN 109710406 B CN109710406 B CN 109710406B CN 201811573032 A CN201811573032 A CN 201811573032A CN 109710406 B CN109710406 B CN 109710406B
- Authority
- CN
- China
- Prior art keywords
- key
- computing
- data
- node
- amount
- 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
Links
Images
Abstract
本发明公开了一种数据分配及其模型训练方法、装置、及计算集群,所述方法包括:确定进行图计算需要执行的数据操作,根据所确定的数据操作获取对应的数据总量;将所确定数据操作的操作类型及对应的数据总量输入至深度学习模型,得到计算集群中计算节点对应的可占用资源量;根据所确定的数据操作获取键对应的键值对,由键对应的键值对计算键的键值对数量;基于键的键值对数量和计算集群中计算节点对应的可占用资源量,统计键对应键值对在计算集群中计算节点上的分布;通过所统计的分布结果,构建键与计算集群中计算节点之间的映射函数;根据所构建的映射函数,将键对应的键值对分配至计算集群中的计算节点。采用本发明解决了数据分配不均衡的问题。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种数据分配及其模型训练方法、装置、及计算集群。
背景技术
在社交网络、商品推荐、线上广告等业务场景中都有大量的大规模图计算需求,如果仅使用一台计算机为用户提供图计算服务势必影响用户体验,这就需要多台计算机共同为用户提供图计算服务,以加快图计算流程,从而形成了计算集群。
计算集群,通常包括一个控制节点和多个计算节点,由控制节点向多个计算节点分配数据,以使多个计算节点基于自身资源对分配到的数据执行图计算所需要的数据操作。
然而,无论是基于Spark方案的计算集群,还是基于Hadoop方案的计算集群,在进行数据分配时都存在倾斜,进而导致计算集群中计算节点上存在资源分配不均衡的问题,即,某些计算节点分配了大量数据,需要占用大量的资源,而某些计算节点仅分配到少量数据甚至没有分配到数据,直接导致资源浪费。
发明内容
为了解决相关技术中存在的数据分配不均衡的问题,本发明各实施例提供一种数据分配及其模型训练方法、装置、及计算集群。
其中,本发明所采用的技术方案为:
根据本发明实施例的一方面,一种数据分配方法,应用于计算集群,所述计算集群包括控制节点和计算节点,所述方法包括:所述控制节点确定进行图计算需要执行的数据操作,根据所确定的数据操作获取对应的数据总量;将所确定数据操作的操作类型及对应的数据总量输入至深度学习模型,得到所述计算集群中计算节点对应的可占用资源量;根据所确定的数据操作获取键对应的键值对,由所述键对应的键值对计算所述键的键值对数量;基于所述键的键值对数量和所述计算集群中计算节点对应的可占用资源量,统计所述键对应键值对在所述计算集群中计算节点上的分布;通过所统计的分布结果,构建所述键与所述计算集群中计算节点之间的映射函数;根据所构建的映射函数,将所述键对应的键值对分配至所述计算集群中的计算节点。
根据本发明实施例的一方面,一种数据分配装置,适用于计算集群中的控制节点,所述计算集群还包括计算节点,所述装置包括:数据总量获取模块,用于确定进行图计算需要执行的数据操作,根据所确定的数据操作获取对应的数据总量;可占用资源量获取模块,用于将所确定数据操作的操作类型及对应的数据总量输入至深度学习模型,得到所述计算集群中计算节点对应的可占用资源量;键值对数量获取模块,用于根据所确定的数据操作获取键对应的键值对,由所述键对应的键值对计算所述键的键值对数量;键值对分布统计模块,用于基于所述键的键值对数量和所述计算集群中计算节点对应的可占用资源量,统计所述键对应键值对在所述计算集群中计算节点上的分布;映射函数构建模块,用于通过所统计的分布结果,构建所述键与所述计算集群中计算节点之间的映射函数;键值对分配模块,用于根据所构建的映射函数,将所述键对应的键值对分配至所述计算集群中的计算节点。
根据本发明实施例的一方面,一种计算集群,所述计算集群包括控制节点和计算节点,其中,所述控制节点,用于确定进行图计算需要执行的数据操作,根据所确定的数据操作获取对应的数据总量;所述控制节点,还用于将所确定数据操作的操作类型及对应的数据总量输入至深度学习模型,得到所述计算集群中计算节点对应的可占用资源量;所述控制节点,还用于根据所确定的数据操作获取键对应的键值对,由所述键对应的键值对计算所述键的键值对数量;所述控制节点,还用于基于所述键的键值对数量和所述计算集群中计算节点对应的可占用资源量,统计所述键对应键值对在所述计算集群中计算节点上的分布;所述控制节点,还用于通过所统计的分布结果,构建所述键与所述计算集群中计算节点之间的映射函数;所述控制节点,还用于根据所构建的映射函数,将所述键对应的键值对分配至所述计算集群中的计算节点;所述计算节点,用于根据分配到的所述键对应键值对,执行所述数据操作。
根据本发明实施例的一方面,一种计算机设备,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的数据分配方法。
根据本发明实施例的一方面,一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据分配方法。
在上述技术方案中,在执行图计算需要的数据操作之前,首先预测计算集群中计算节点对应的可占用资源量,然后结合预测的可占用资源量动态决定数据应该如何分配给计算集群中的计算节点,以此避免现有技术中存在的数据分配不均衡的问题。
具体地,控制节点根据图计算需要执行的数据操作获取对应的数据总量,以将该数据操作的操作类型及对应的数据总量输入至深度学习模型,得到计算集群中计算节点对应的可占用资源量,并根据该数据操作获取键对应的键值对,由此得到键的键值对数量,进而基于键的键值对数量和计算集群中计算节点对应的可占用资源量,进行键对应键值对在计算集群中计算节点上的分布统计,通过统计的分布结果构建键与计算集群中计算节点之间的映射函数,从而基于该映射函数将键对应的键值对分配至计算集群中的计算节点,由此,只要数据操作发生变化,计算集群中计算节点对应的可占用资源量、分布结果、映射函数都将随之相应地变化,那么,键对应键值对所分配到的计算节点也可能有所不同,从而保证了数据分配均衡。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是根据本发明所涉及的实施环境的示意图。
图2是根据一示例性实施例示出的一种服务器的硬件结构框图。
图3是根据一示例性实施例示出的一种数据分配方法的流程图。
图4是图3对应实施例中步骤390在一个实施例的流程图。
图5是图3对应实施例中步骤330在一个实施例的流程图。
图6是图5对应实施例所涉及的神经网络模型的模型结构示意图。
图7是根据一示例性实施例示出的另一种数据分配方法的流程图。
图8是图7对应实施例中步骤410在一个实施例的流程图。
图9是图7对应实施例中步骤410在另一个实施例的流程图。
图10是图3对应实施例中步骤350在一个实施例的流程图。
图11是图3对应实施例中步骤370在一个实施例的流程图。
图12是图11对应实施例中步骤375在一个实施例的流程图。
图13是一具体实施例所涉及的Spark计算集群框架的示意图。
图14是图13对应具体实施例示出的一种数据分配方法的流程图。
图15是根据一示例性实施例示出的一种数据分配装置的框图。
图16是根据一示例性实施例示出的一种应用于数据分配的模型训练装置的框图。
图17是根据一示例性实施例示出的一种计算机设备的框图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述,这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在社交网络、商品推荐、线上广告等业务场景中,大数据是以图的形式存储的,以此表示数据之间的关联关系。
应当理解,图实质上是顶点、边的集合,在计算机应用技术领域,通常表示为二元组格式,即键值对(key,value)。其中,key表示键,value表示键值。
进一步地,顶点的二元组格式为(source,vertex attribute),source对应于键key,vertex attribute对应于键值value。边的二元组格式为(source,(destination,vertex attribute)),source对应于边的起始点的键key,destination对应于边的终点的键key,vertex attribute对应于边的终点的键值value,(destination,vertexattribute)则对应于边的起始点的键值value。
由此,图计算过程中,对于计算集群而言,控制节点实质是将不同键对应的键值对作为数据分配至计算节点,以使计算节点基于自身资源对分配到的不同键对应的键值对执行图计算所需要的数据操作。
在进行键值对分配时,需要满足的分配条件是:键相同的键值对必须集中处理,即分配至一个或者多个指定的计算节点。对于图而言,不仅是指相同的顶点需要集中处理,而且起始点相同的边也将集中处理,此外,集中处理的边的终点可能还存在构成其余边的起始点,也都需要集中处理,以此节省不同计算节点之间所引起的网络传输开销,进而有利于加快图计算速度。
如前所述,无论是基于Spark方案的计算集群,还是基于Hadoop方案的计算集群,在进行数据分配时都存在数据分配不均衡的问题。
首先,由于不清楚每个键的键值对数量,可能存在数据倾斜严重。
举例来说,对于图而言,经常会存在由某个顶点构成的边的数量非常巨大的情况,即与该某个顶点连接的其他顶点的数量(称为该某个顶点的度)非常巨大。那么,进行键值对分配时,需要集中处理的数据量将会非常庞大,也即是,为该某个顶点所在的键所分配的计算节点需要占用的资源显著多于其他计算节点,这就会造成其他计算节点提前完成图计算,然后一直等待,使得其他计算节点的计算能力不能充分利用,并行化不足。
此外,更严重的情况下,为该某个顶点所在的键所分配的计算节点可占用资源量可能小于实际需要处理的数据量,这又将造成该计算节点内存不足,使得该计算节点中的图计算失败,进而导致整体计算任务无法完成。
其次,由于键值对中的键一般被表示或者映射为一个整数,为此,在进行键值对分配时,实质是用键的标识(例如编号)模N(假设计算集群包括N个计算节点),以得到一个0~N-1之间的数字M,进而将键对应的键值对分配到编号为数字M的计算节点。其中,计算集群中的N个计算节点的编号为0~N-1。在此情形中,键值对被分配至计算集群中计算节点的概率是相同的,也可以理解为,此时,键值对是平均分配至计算集群中计算节点的,即数据分配均衡。
考虑一种特殊情形,假设所有键的编号均以0结尾,例如,编号为10、20、30、40、50、……,并且计算集群包括10个计算节点,此时,通过键的编号模N=10,得到的数字均为0,也就是说,所有键对应的键值对将全部分配至编号为0的同一个计算节点,而导致数据分配严重不均衡。
也就是说,现有的键值对分配并不具备普适性,不同的键编号方式会造成不同的数据分配结果,而可能导致数据分配不均衡。
再次,现有的键值对分配并未考虑计算节点自身资源大小不同的情况。例如,多核服务器的自身资源要显著大于笔记本电脑的自身资源。如前所述,键值对平均分配至计算集群中计算节点的概率是相同的,那么,对于自身资源较小的计算节点而言,在进行图计算时存在内存不足的可能,而对于自身资源较大的计算节点而言,则存在计算能力未能充分利用的可能。
由上可知,现有的数据分配仍存在数据分配不均衡的缺陷。
为此,本发明特提出了一种数据分配方法,能够有效地改善数据分配的不均衡,相应地,该种数据分配方法适用于数据分配装置,该数据分配装置部署于具备冯诺依曼体系结构的计算机设备中,例如,该计算机设备可以是个人计算机(PC)、笔记本电脑、服务器等等。
图1为一种数据分配方法所涉及的实施环境的示意图。该实施环境包括计算集群100,该计算集群100包括控制节点110和计算节点130。
具体地,该计算集群100由若干台服务器组成,其中,服务器是为用户提供后台服务的计算机设备,例如,后台服务包括图计算服务。
不同服务器之间通过无线或者有线网络预先建立网络连接,通过所建立的网络连接实现不同服务器之间的数据传输,例如,传输的数据包括键值对。
至少一台服务器作为控制节点110,用于数据分配。
多台服务器作为多个计算节点130,用于图计算。
随着控制节点110与计算节点130之间的交互,控制节点110为图计算所需要执行的数据操作将数据分配至计算节点130,对于计算节点而言,便可根据分配到的数据,执行数据操作,以完成图计算。
图2是根据一示例性实施例示出的一种服务器的硬件结构框图。该种服务器适用于图1所示出实施环境的控制节点110和计算节点130。
需要说明的是,该种服务器只是一个适配于本发明的示例,不能认为是提供了对本发明的使用范围的任何限制。该种服务器也不能解释为需要依赖于或者必须具有图2中示出的示例性的服务器200中的一个或者多个组件。
服务器200的硬件结构可因配置或者性能的不同而产生较大的差异,如图2所示,服务器200包括:电源210、接口230、至少一存储器250、以及至少一中央处理器(CPU,Central Processing Units)270。
具体地,电源210用于为服务器200上的各硬件设备提供工作电压。
接口230包括至少一有线或无线网络接口,用于与外部设备交互。例如,进行图1所示出实施环境中控制节点110与计算节点130之间的交互。
当然,在其余本发明适配的示例中,接口230还可以进一步包括至少一串并转换接口233、至少一输入输出接口235以及至少一USB接口237等,如图2所示,在此并非对此构成具体限定。
存储器250作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统251、应用程序253及数据255等,存储方式可以是短暂存储或者永久存储。
其中,操作系统251用于管理与控制服务器200上的各硬件设备以及应用程序253,以实现中央处理器270对存储器250中海量数据255的运算与处理,其可以是WindowsServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTM等。
应用程序253是基于操作系统251之上完成至少一项特定工作的计算机程序,其可以包括至少一模块(图2中未示出),每个模块都可以分别包含有对服务器200的一系列计算机可读指令。例如,资源分配装置可视为部署于控制节点的应用程序253。
数据255可以是存储于磁盘中的照片、图片等,还可以是键值对等,存储于存储器250中。
中央处理器270可以包括一个或多个以上的处理器,并设置为通过至少一通信总线与存储器250通信,以读取存储器250中存储的计算机可读指令,进而实现对存储器250中海量数据255的运算与处理。例如,通过中央处理器270读取存储器250中存储的一系列计算机可读指令的形式来完成数据分配方法。
此外,通过硬件电路或者硬件电路结合软件也能同样实现本发明,因此,实现本发明并不限于任何特定硬件电路、软件以及两者的组合。
请参阅图3,在一示例性实施例中,一种数据分配方法适用于图1所示实施环境的控制节点110,该控制节点110的结构可以如图2所示。
该种数据分配方法可以由控制节点110执行,可以包括以下步骤:
步骤310,所述控制节点确定进行图计算需要执行的数据操作,根据所确定的数据操作获取对应的数据总量。
图计算需要执行的数据操作,包括map、join、reduce等数据操作。
对于控制节点而言,在确定图计算需要执行的数据操作之后,便可确定该数据操作的操作类型以及该数据操作的数据总量。
不同操作类型的数据操作,对应的数据总量有所区别,对于计算集群而言,各计算节点所需要占用的资源也将有所差异。其中,资源包括但不限于:内存、CPU数量等。
为此,确定图计算需要执行的数据操作对应的数据总量,将有利于后续预测计算集群中计算节点对应的可占用资源量。
步骤330,将所确定数据操作的操作类型及对应的数据总量输入至深度学习模型,得到所述计算集群中计算节点对应的可占用资源量。
可以理解,在计算集群中,由于各计算节点的内存大小、内存存取速度、CPU数量、CPU性能、所在网络环境等各种因素的影响,计算节点在执行数据操作时的性能会有所差异,也即是,各计算节点为执行同一数据操作所占用资源量存在差异,这难以依靠手工进行精确地衡量。
为此,本实施例中,针对图计算需要执行的数据操作,计算集群中计算节点对应的可占用资源量的预测基于深度学习模型实现。
其中,深度学习模型是通过进行标签标注的训练数据训练得到的,该标签指示了计算集群中计算节点针对已完成数据操作实际分配的数据量。
也就是说,基于训练数据的训练,深度学习模型实质上在已完成数据操作的操作类型及对应的数据总量、与计算集群中计算节点实际分配的数据量之间构建了映射关系。
那么,基于深度学习模型所构建的映射关系,将所确定数据操作的操作类型及对应的数据总量输入至深度学习模型,便可得到计算集群中计算节点对应的可占用资源量。
可选地,深度学习模型包括:神经网络模型、残差网络模型等,神经网络模型还可以进一步包括:卷积神经网络模型、循环神经网络模型、深度神经网络模型等,在此并未加以限定。
应当理解,针对计算集群中的所有计算节点而言,各计算节点对应可占用资源量之和不大于所确定数据操作对应的数据总量。而针对一个计算节点而言,所对应的可占用资源量,大于等于该计算节点针对所确定数据操作实际分配到的数据量(即键值对数量),以此避免该计算节点因内存不足而导致图计算失败。
举例来说,假设数据操作对应的数据总量为10,计算集群包括3个计算节点a、b、c,经由深度学习模型进行预测,得到计算节点a对应的可占用资源量为3,计算节点b对应的可占用资源量为3,计算节点c对应的可占用资源量为4。
那么,基于上述计算节点对应的可占用资源量,进行数据分配时,控制节点分配给计算节点a的数据量为3,分配给计算节点b的数据量为3,分配给计算节点c的数据量为4。
步骤350,根据所确定的数据操作获取键对应的键值对,由所述键对应的键值对计算所述键的键值对数量。
数据分配均衡,是指各计算节点针对所确定数据操作实际分配到的数据量不倾斜,也即是,不存在哪个计算节点所分配到的数据量显著大于其余计算节点分配到的数据量。
如前所述,计算节点针对所确定数据操作实际分配到的数据量,是指键值对数量。
对于控制节点而言,在确定图计算需要执行的数据操作时,仅能够基于所确定的数据操作获取到键对应的键值对。也就是说,控制节点仅能够获知有哪些键值对需要分配,尚不能够获知具体的键值对数量。
为此,本实施例中,将根据键对应的键值对预先计算键的键值对数量,以便于后续动态决定键值对应该如何分配给计算集群中的计算节点,进而保证数据分配均衡。
步骤370,基于所述键的键值对数量和所述计算集群中计算节点对应的可占用资源量,统计所述键对应键值对在所述计算集群中计算节点上的分布。
在获取到键的键值对数量和计算集群中计算节点对应的可占用资源量之后,便可进行键对应键值对在计算集群中计算节点上的分布统计。
仍以前述数据操作对应的数据总量为10进行举例说明,其中,计算集群包括3个计算节点a、b、c,经由深度学习模型进行预测,得到计算节点a对应的可占用资源量为3,计算节点b对应的可占用资源量为3,计算节点c对应的可占用资源量为4。
那么,假设键的键值对数量=数据操作对应的数据总量=10,则分布结果为:计算节点a分配到的键值对数量为3,计算节点b分配到的键值对数量为3,计算节点c分配到的键值对数量为4。
也就是说,分布结果,反映了计算集群中计算节点分配到键的键值对数量,可以用下述公式(1)表示:
步骤380,通过所统计的分布结果,构建所述键与所述计算集群中计算节点之间的映射函数。
在获知分布结果之后,便可构建键与计算节点之间的映射函数。
例如,针对键key,计算节点a分配到的键值对数量为3,计算节点b分配到的键值对数量为3,计算节点c分配到的键值对数量为4。
那么,映射函数实质上反映了键key到计算节点a、b、c的计算过程,且该计算过程遵循键key对应键值对在计算节点a、b、c上的不同分布:3、3、4。
即,映射函数可以用下述公式(2)表示:
其中,l表示为键key分配的计算节点的节点标识,key表示键的键标识,lkey表示为键key分配的计算节点,表示计算节点lkey分配到的键key的键值对数量,表示键key的键值对数量,hash()表示哈希算法,rand()表示生成一个随机正整数。
以前述例子进行说明,针对键key,计算得到的l有三个,分别表示计算节点a、b、c的节点标识。其中,节点标识唯一地表示计算集群中的计算节点,可以是指计算节点的编号。
应当理解,在数据分配不存在倾斜的情况下,同一数据操作中不同键的数量远大于计算集群中计算节点的数量,一个键的键值对数量远小于一个计算节点的可占用资源量,进而使得计算集群中计算节点分配到的键值对数量基本相同。
由此可见,本实施例中的映射函数相较于现有技术的键值对分配方法,具有普适性,即不同的键编号方式不会影响键值对分配结果,以此充分地保证数据分配均衡。
步骤390,根据所构建的映射函数,将所述键对应的键值对分配至所述计算集群中的计算节点。
如图4所示,在一实施例中,分配过程可以包括以下步骤:
步骤391,将所述键的键标识输入所述映射函数,计算得到节点标识。
步骤393,在所述计算集群的计算节点中,根据计算得到的节点标识查找到目标计算节点,所述目标计算节点的节点标识与计算得到的节点标识相匹配。
步骤395,将所述键对应的键值对分配至所述目标计算节点。
举例来说,针对键key的键标识key,通过映射函数f(key)计算得到三个l,即1、2、3,表示计算节点的节点标识。
假设计算集群包含5个计算节点,通过编号唯一地标识,分别为编号1的计算节点a、编号2的计算节点b、编号3的计算节点c、编号4的计算节点d、编号5的计算节点。
通过编号查找,确定目标计算节点为计算节点a、b、c。
那么,键key的键值对将分别分配至计算节点a、b、c,且遵循映射函数f(key)中的约束条件,将键key的3个键值对分配至计算节点a,将键key的3个键值对分配至计算节点b,将键key的4个键值对分配至计算节点c。
通过如上所述的过程,实现了数据分配的动态均衡,即随着数据操作的变化,键的键值对在计算集群中计算节点上的分布也相应变化,充分保证数据分配均衡,进而有利于高效地完成图计算。
请参阅图5,在一示例性实施例中,步骤330可以包括以下步骤:
步骤331,将所确定数据操作的操作类型及对应的数据总量,输入至所述深度学习模型的输入层进行特征提取。
步骤333,在所述深度学习模型的若干全连接层中进行特征传播。
步骤335,通过所述深度学习模型的输出层对所传播的特征进行可占用资源量预测,得到所述计算集群中计算节点对应的可占用资源量。
其中,深度学习模型为神经网络模型,神经网络模型包括输入层、若干全连接层和输出层。
如图6所示,所述神经网络模型300包括输入层input、若干全连接层和输出层output。
其中,按照由浅至深的顺序,若干全连接层依次包括全连接层301、302、……、303、304。
输出层output设置有基于标签Label的分类器,以此实现可占用资源量的预测。
具体地,将所确定数据操作的操作类型op及所确定数据操作对应的数据总量Mtotal,输入至输入层input进行特征提取,并经由若干全连接层进行特征传播,至输出层output。
基于输出层output设置的分类器,预测得到计算集群中计算节点i对应的可占用资源量Mi。
在上述实施例的作用下,借助深度学习模型得到了计算集群中计算节点对应的可占用资源量,为后续数据分配提供依据,不仅有利于数据分配均衡,而且避免计算集群中资源分配不均衡的问题,即对于自身资源较小的计算节点而言,避免出现进行图计算时内存不足的问题,而对于自身资源较大的计算节点而言,则避免出现计算能力未能充分利用的问题。
请参阅图7,在一示例性实施例中,所述方法还包括:进行所述深度学习模型的训练。
训练,实质上是通过训练数据对具有指定模型结构的深度学习模型的参数加以迭代优化,使得基于此参数构建的指定算法函数收敛。
可选地,深度学习模型可以是神经网络模型,其指定模型结构如图6所示。
可选地,指定算法函数包含但不限于:最大期望函数、损失函数等。
以指定算法函数为损失函数对深度学习模型的训练过程说明如下。
所述进行所述深度学习模型的训练,可以包括以下步骤:
步骤410,获取进行标签标注的训练数据,所述标签用于指示所述计算集群中计算节点针对已完成数据操作实际分配的数据量。
针对已完成数据操作,计算集群会记录已完成数据操作的操作类型、实际分配给计算节点的数据量、以及已完成数据操作的处理时间。
那么,训练数据可以表示为(op,Mtotal,M1,M2,...MM)。其中,Mtotal=M1+M2,+…+MM。
其中,op表示已完成数据操作的操作类型,Mtotal表示已完成数据操作对应的数据总量,Mi(0<i<M+1)表示计算集群中计算节点i实际分配的数据量,t表示已完成数据操作的处理时间。
相应地,标签可以表示为(M1,M2,...MM)。
具体而言,如图8所示,在一实施例中,训练数据的生成过程可以包括以下步骤:
步骤411,获取所述计算集群中计算节点针对已完成数据操作实际分配的数据量Mi(0<i<M+1)。
步骤413,针对所述已完成数据操作,将所述计算集群中计算节点实际分配到的数据量Mi(0<i<M+1)相加,得到所述已完成数据操作对应的数据总量Mtotal。
步骤415,以所述计算集群中计算节点针对已完成数据操作实际分配的数据量Mi(0<i<M+1)作为所述标签,对所述已完成数据操作的操作类型op及对应的数据总量Mtotal进行标注,得到所述训练数据(op,Mtotal,M1M2,...MM)。
步骤430,根据所述训练数据和所述深度学习模型的参数构建损失函数。
步骤450,在所述损失函数通过所述深度学习模型的反向传播收敛时,完成所述深度学习模型的训练。
深度学习模型包括前向传播和反向传播。其中,前向传播用于构建损失函数,反向传播则用于更新深度学习模型的参数。
具体而言,随机初始化深度学习模型的参数,根据当前一个训练数据,基于随机初始化的参数通过前向传播进行概率计算,通过计算的概率预测得到可占用资源量,基于预测得到的可占用资源量与标签中对应的可占用资源量之间的Dice距离构建损失函数,并进一步地计算该损失函数的损失值。
其中,损失函数可以用公式(3)表示如下:
L=||t-t′||+∑i||Mi-Mi′||+t′(3)。
其中,L表示损失函数,Mi(0<i<M+1)表示标签中的可占用资源量,t表示标签中的处理时间,M′i(0<i<M+1)表示预测得到的可占用资源量,t′表示预测得到的处理时间。
如果损失函数的损失值未达到最小,则通过反向传播更新深度学习模型的参数,并根据后一个训练数据,基于更新的参数进行概率计算,通过计算的概率重新预测得到可占用资源量,基于重新预测得到的可占用资源量与标签中对应的可占用资源量之间的Dice距离重新构建损失函数,并再次计算重新构建的损失函数的损失值。
如此迭代循环,直至所构建损失函数的损失值达到最小,即视为损失函数收敛,此时,深度学习模型也收敛,并符合预设精度要求,则停止迭代。
否则,迭代更新深度学习模型的参数,并根据其余训练数据和更新的参数,计算由此构建的损失函数的损失值,直至损失函数收敛。
值得一提的是,如果在损失函数收敛之前,迭代次数已经达到迭代阈值,也将停止迭代,以此保证深度学习模型训练的效率。
当深度学习模型收敛并符合预设精度要求时,表示深度学习模型完成训练。
那么,将所确定数据操作的操作类型及对应的数据总量输入至深度学习模型,便能够进行可占用资源量的预测,进而得到计算集群中计算节点对应的可占用资源量。
请参阅图9,在一示例性实施例中,步骤410可以包括以下步骤:
步骤412,基于操作类型相同的已完成数据操作,获取对应的处理时间。
步骤414,在操作类型相同的已完成数据操作所对应数据总量中,根据获取到的处理时间进行筛选,通过筛选结果进行所述训练数据的标签标注。
应当理解,针对操作类型相同的同一数据操作,不同时刻计算集群在执行该同一数据操作时的性能会有所差异,即不同时刻计算集群执行该同一数据操作的处理时间将有所不同。
为此,本实施例中,将对已完成数据操作对应的数据总量进行筛选。
具体地,删除处理时间超过指定阈值的数据总量,仅利用处理时间在指定阈值之内的数据总量进行训练数据的标签标注。
其中,指定阈值可以根据应用场景的实际需要灵活地调整,本实施例对此并未加以限定。
由此,训练数据还可以表示为(op,Mtotal,M1,M2,...MM,t)。相应地,标签还可以表示为(M1,M2,...MM,t)。
通过上述实施例的配合,用于训练数据的标签标注的数据总量是针对数据分配较为均衡,即处理时间较短的情形,而数据分配不够均衡而使得处理时间较长的情形下的数据总量将被过滤,以此保证深度学习模型训练的有效性和准确性,进而有利于提高后续可占用资源量预测的准确性。
请参阅图10,在一示例性实施例中,步骤350可以包括以下步骤:
步骤351,将所述键对应的键值对随机分配至所述计算集群中的计算节点。
步骤353,在所述计算集群中的计算节点上,计算随机分配到所述键对应键值对的数量。
步骤355,将所述计算集群中计算节点计算得到的数量相加,得到所述键的键值对数量。
如前所述,控制节点不能够获知键的键值对数量,为此,本实施例中,键的键值对数量的统计是在计算节点上完成的。
即,各计算节点各自统计随机分配到键对应键值对的数量,再将统计得到的数量汇总至控制节点进行相加,进而得到键的键值对数量。
应当说明的是,上述过程中,各计算节点之间并不需要进行网络传输,且各计算节点统计速度非常快,相较于各计算节点执行图计算所需要的数据操作过程而言,可以忽略不计。也即是说,预先计算键的键值对数量并未引入额外的时间消耗,仍然可以保证图计算速度。
在一示例性实施例中,步骤350还可以包括以下步骤:
如果所述键的键值对数量大于所述计算集群中计算节点对应的可占用资源量之和,则将所述键的键值对数量超出部分进行存储,以控制所述超出部分进行后一次的数据分配。
也就是说,对于当前一次的数据分配来说,键的键值对数量小于等于计算集群中计算节点对应的可占用资源量之和,以此保证为键所分配的计算节点的可占用资源量大于等于实际需要处理的数据量,避免计算节点内存不足,进而充分地确保了计算节点中图计算的成功率,充分地保证了整体计算任务能够完成。
请参阅图11,在一示例性实施例中,步骤370可以包括以下步骤:
步骤371,对键标识不同的若干键进行遍历,以遍历到的键作为当前键。
可选地,遍历可以随机进行,也可以按照键值对数量降序进行,还可以按照键值对数量升序进行,本实施例对此并未构成具体限定。
具体地,在一实施例中,基于键值对数量降序排列的若干键,以键值对数量最大的键作为所述当前键。
待完成所述当前键对应键值对在所述计算集群中计算节点上的分布统计,将键值对数量次大的键更新为所述当前键,直至完成所述遍历。
步骤373,根据所述当前键的键值对数量确定为所述当前键分配的目标资源量。
具体地,确定若干键的键值对总数量∑rk。
值得一提的是,目标资源量mk可以是非整数,本实施例对此并未构成具体限定。
步骤375,根据所述目标资源量,从所述计算集群的计算节点中选取目标计算节点。
其中,选取,可以是随机选取,也可以按照计算集群中计算节点对应的可占用资源量降序进行,还可以按照计算集群中计算节点对应的可占用资源量升序进行,只要选取到的所述目标计算节点对应的可占用资源量不小于所述目标资源量即可。
具体而言,如图12所示,在一实施例中,目标计算节点的选取过程可以包括以下步骤:
步骤3751,基于所述计算集群中计算节点对应可占用资源量的降序排列,选取可占用资源量最大的计算节点作为所述目标计算节点。
步骤3753,如果所述目标计算节点对应的可占用资源量小于所述目标资源量,则将可占用资源量次大的计算节点添加至所述目标计算节点,直至所述目标计算节点对应的可占用资源量不小于所述目标资源量。
也就是说,假设目标计算节点包含tkey个计算节点,则选取过程满足下述公式(4):
步骤3755,对所述目标计算节点所包含计算节点进行可占用资源量的更新。
步骤377,存储所述当前键与所述目标计算节点之间的映射关系,通过所存储的映射关系完成所述当前键对应键值对在所述计算集群中计算节点上的分布统计。
结合公式(1),分布结果,也可以理解为,即是存储了当前键key与目标计算节点lkey之间的映射关系。
通过上述过程,实现了键对应键值对在计算集群中计算节点上的分布统计,为映射函数的构建提供了依据,使得基于映射函数的数据分配得以实现。
下面结合一具体实施例对一种数据分配方法加以描述。
在该具体实施例中,如图13所示,计算集群包括控制节点cluster manager和计算节点worker node。
控制节点cluster manager确定进行图计算需要执行的数据操作,并将需要处理的数据,即键对应的键值对分配至计算节点worker node。
进一步地,该计算集群基于Spark方案,即,Spark主进程Driver Program部署在区别于计算集群的计算机设备中,以剥离对计算集群本身的关注,而更加专注于计算任务;而完成计算任务本身的executor子进程则部署于计算节点worker node中,随着Spark主进程Driver Program运行而相应启动,以此加快计算任务流程。
该Spark主进程Driver Program将用户的图计算任务分发为一个个计算任务task,并分配至不同计算节点worker node中部署的executor子进程。随着控制节点cluster manager与计算节点worker node的交互,计算节点worker node便可基于自身资源对分配到的键对应的键值对进行处理,即执行图计算需要的数据操作,以此完成计算任务task,进而完成整体的图计算任务。
此外,executor子进程在对应计算节点worker node完成计算任务task时,会将执行结果返回Spark主进程Driver Program,方便于控制节点cluster manager进行查询。
上述过程中,关于键值对分配,是根据图中边的起始点进行的,即将图中起始点相同的边所在键的键值对分配至同一个计算节点,在这种分配策略下,如果出现某些极端情况,例如,一个图中所有边的起始点都相同,就会导致所有键的键值对均分配至一个计算节点,而其余计算节点未分配到键值对,进而使得未分配到键值对的其余计算节点无法充分利用计算能力,而分配了键值对的计算节点因存放不下所有键值对而导致图计算失败,即数据分配发生倾斜。
为此,本发明所涉及的键值对分配过程如图14所示,具体包括以下步骤:
步骤701,进行深度学习模型的训练。
首先,获取到的训练数据为(op,Mtotal,M1,M2,...MM,t)。其中,标签表示为(M1,M2,...MM,t)。
基于大量的训练数据,构建深度学习模型的损失函数:L=||t-t′||+∑i||Mi-Mi′||+t′。
其中,op表示已完成数据操作的操作类型,Mtotal表示已完成数据操作对应的数据总量,Mi(0<i<M+1)表示标签中的可占用资源量,t表示标签中的处理时间,M′i(0<i<M+1)表示预测得到的可占用资源量,t′表示预测得到的处理时间。
在损失函数L收敛时,深度学习模型完成训练。
步骤702,基于训练的深度学习模型预测计算集群中计算节点i对应的可占用资源量M′i。
首先,确定图计算需要执行的数据操作的操作类型为op′,以及所确定数据操作对应的数据总量为M′total。
将所确定数据操作的操作类型op′及对应的数据总量M′total输入至深度学习模型,便预测得到计算集群中M个计算节点i对应的可占用资源量:M′i(0<i<M+1)。
步骤703,根据图计算需要执行的数据操作,计算键k的键值对数量rk。
步骤704,根据若干键的键值对数量确定为键k分配的目标资源量mk=dk×∑M′i。
其中,资源总量∑M′i为计算集群中计算节点i对应的可占用资源量M′i之和。
步骤705,基于目标资源量mk和预测的可占用资源量M′i,进行键k对应的键值对在计算集群中计算节点上的分布统计。
基于目标资源量mk以及可占用资源量M′i的降序排列,为键k选取目标计算节点。
假设目标计算节点包含tkey个计算节点,则选取过程满足下述公式(4’):
并且,对目标计算节点所包含计算节点进行可占用资源量的更新。
步骤706,检测是否存在尚未统计的键值对。
如果存在,则返回步骤705继续统计。如果不存在,则执行步骤707。
其中,l表示为键k分配的计算节点的节点标识,key表示键k的键标识,lkey表示为键k分配的计算节点,表示计算节点lkey分配到的键k的键值对数量,表示键k的键值对数量,hash()表示哈希算法,ran()表示生成一个随机正整数。
步骤708,根据映射函数进行键值对分配。
通过上述过程,仅利用额外的O(KlogK)时间开销即换取了数据的均衡分配,在不出现数据分配倾斜的前提下,充分保证了图计算的完成,在社交网络、商品推荐、线上广告等业务场景中具有很高的实用价值。
下述为本发明装置实施例,可以用于执行本发明所涉及的数据分配方法。对于本发明装置实施例中未披露的细节,请参照本发明所涉及的数据分配方法的方法实施例。
请参阅图15,在一示例性实施例中,一种数据分配装置900,适用于计算集群中的控制节点,所述计算集群还包括计算节点。
该装置900包括但不限于:数据总量获取模块910、可占用资源量获取模块930、键值对数量获取模块950、键值对分布统计模块970、映射函数构建模块980和键值对分配模块990。
其中,数据总量获取模块910,用于确定进行图计算需要执行的数据操作,根据所确定的数据操作获取对应的数据总量。
可占用资源量获取模块930,用于将所确定数据操作的操作类型及对应的数据总量输入至深度学习模型,得到所述计算集群中计算节点对应的可占用资源量。
键值对数量获取模块950,用于根据所确定的数据操作获取键对应的键值对,由所述键对应的键值对计算所述键的键值对数量。
键值对分布统计模块970,用于基于所述键的键值对数量和所述计算集群中计算节点对应的可占用资源量,统计所述键对应键值对在所述计算集群中计算节点上的分布。
映射函数构建模块980,用于通过所统计的分布结果,构建所述键与所述计算集群中计算节点之间的映射函数。
键值对分配模块990,用于根据所构建的映射函数,将所述键对应的键值对分配至所述计算集群中的计算节点。
请参阅图16,在一示例性实施例中,一种应用于数据分配的模型训练装置1100,适用于计算集群中的控制节点,所述计算集群还包括计算节点。
相应地,所述装置1100包括但不限于:
其中,数据获取模块1110,用于获取所述计算集群中计算节点针对已完成数据操作实际分配的数据量。
标签标注模块1130,用于通过获取到数据量进行的标签标注,得到训练数据。
函数构建模块1150,用于根据所述训练数据和深度学习模型的参数构建损失函数。
反向传播模块1170,用于在所述损失函数通过所述深度学习模型的反向传播收敛时,完成所述深度学习模型的训练。
需要说明的是,上述实施例所提供的装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即装置的内部结构将划分为不同的功能模块,以完成以上描述的全部或者部分功能。
另外,上述实施例所提供的装置与方法实施例属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
请参阅图17,在一示例性实施例中,在一示例性实施例中,一种计算机设备1000,包括至少一处理器1001、至少一存储器1002、以及至少一通信总线1003。
其中,存储器1002上存储有计算机可读指令,处理器1001通过通信总线1003读取存储器1002中存储的计算机可读指令。
该计算机可读指令被处理器1001执行时实现上述各实施例中的数据分配割方法。
在一示例性实施例中,一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各实施例中的数据分配方法。
上述内容,仅为本发明的较佳示例性实施例,并非用于限制本发明的实施方案,本领域普通技术人员根据本发明的主要构思和精神,可以十分方便地进行相应的变通或修改,故本发明的保护范围应以权利要求书所要求的保护范围为准。
Claims (16)
1.一种数据分配方法,其特征在于,应用于计算集群,所述计算集群包括控制节点和计算节点,所述方法包括:
所述控制节点确定进行图计算需要执行的数据操作,根据所确定的数据操作获取对应的数据总量;
将所确定数据操作的操作类型及对应的数据总量输入至深度学习模型,得到所述计算集群中计算节点对应的可占用资源量;
根据所确定的数据操作获取键对应的键值对,由所述键对应的键值对计算所述键的键值对数量;
对键标识不同的若干键进行遍历,以遍历到的键作为当前键;
根据所述当前键的键值对数量确定为所述当前键分配的目标资源量;
根据所述目标资源量,从所述计算集群的计算节点中选取目标计算节点,所选取的目标计算节点对应的可占用资源量不小于所述目标资源量;
存储所述当前键与所选取的目标计算节点之间的映射关系,通过所存储的映射关系完成所述当前键对应键值对在所述计算集群中计算节点上的分布统计;
通过所统计的分布结果,构建所述键与所述计算集群中计算节点之间的映射函数;
将所述键的键标识输入所述映射函数,计算得到节点标识;
在所述计算集群的计算节点中,根据计算得到的节点标识查找到目标计算节点,所查找到的目标计算节点的节点标识与计算得到的节点标识相匹配;
将所述键对应的键值对分配至所查找到的目标计算节点。
2.如权利要求1所述的方法,其特征在于,所述深度学习模型为神经网络模型,所述神经网络模型包括输入层、若干全连接层和输出层;
所述将所确定数据操作的操作类型及对应的数据总量输入至神经网络模型,得到所述计算集群中计算节点对应的可占用资源量,包括:
将所确定数据操作的操作类型及对应的数据总量,输入至所述神经网络模型的输入层进行特征提取;
在所述神经网络模型的若干全连接层中进行特征传播;
通过所述神经网络模型的输出层对所传播的特征进行可占用资源量预测,得到所述计算集群中计算节点对应的可占用资源量。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:进行所述深度学习模型的训练;
所述进行所述深度学习模型的训练,包括:
获取进行标签标注的训练数据,所述标签用于指示所述计算集群中计算节点针对已完成数据操作实际分配的数据量;
根据所述训练数据和所述深度学习模型的参数构建损失函数;
在所述损失函数通过所述深度学习模型的反向传播收敛时,完成所述深度学习模型的训练。
4.如权利要求3所述的方法,其特征在于,所述获取进行标签标注的训练数据,包括:
获取所述计算集群中计算节点针对已完成数据操作实际分配的数据量;
针对所述已完成数据操作,将所述计算集群中计算节点实际分配到的数据量相加,得到所述已完成数据操作对应的数据总量;
以所述计算集群中计算节点针对已完成数据操作实际分配的数据量作为所述标签,对所述已完成数据操作的操作类型及对应的数据总量进行标注,得到所述训练数据。
5.如权利要求4所述的方法,其特征在于,所述获取进行标签标注的训练数据,还包括:
基于操作类型相同的已完成数据操作,获取对应的处理时间;
在操作类型相同的已完成数据操作所对应数据总量中,根据获取到的处理时间进行筛选,通过筛选结果进行所述训练数据的标签标注。
6.如权利要求1所述的方法,其特征在于,所述根据所确定的数据操作获取键对应的键值对,由所述键对应的键值对计算所述键的键值对数量,包括:
将所述键对应的键值对随机分配至所述计算集群中的计算节点;
在所述计算集群中的计算节点上,计算随机分配到所述键对应键值对的数量;
将所述计算集群中计算节点计算得到的数量相加,得到所述键的键值对数量。
7.如权利要求6所述的方法,其特征在于,所述根据所确定的数据操作获取键对应的键值对,由所述键对应的键值对计算所述键的键值对数量,还包括:
如果所述键的键值对数量大于所述计算集群中计算节点对应的可占用资源量之和,则将所述键的键值对数量超出部分进行存储,以控制所述超出部分进行后一次的数据分配。
8.如权利要求1所述的方法,其特征在于,所述根据所述当前键的键值对数量确定为所述键分配的目标资源量,包括:
确定若干键的键值对总数量;
计算所述当前键的键值对数量在若干键的键值对总数量中的比例值;
根据计算的比例值和资源总量计算得到为所述当前键分配的目标资源量,所述资源总量为所述计算集群中计算节点对应的可占用资源量之和。
9.如权利要求1所述的方法,其特征在于,所述根据所述目标资源量,从所述计算集群的计算节点中选取目标计算节点,包括:
基于所述计算集群中计算节点对应可占用资源量的降序排列,选取可占用资源量最大的计算节点作为所述目标计算节点;
如果所述目标计算节点对应的可占用资源量小于所述目标资源量,则将可占用资源量次大的计算节点添加至所述目标计算节点,直至所述目标计算节点对应的可占用资源量不小于所述目标资源量;
对所述目标计算节点所包含计算节点进行可占用资源量的更新。
10.如权利要求1所述的方法,其特征在于,所述对键标识不同的若干键进行遍历,以遍历到的键作为当前键,包括:
基于键值对数量降序排列的若干键,以键值对数量最大的键作为所述当前键;
待完成所述当前键对应键值对在所述计算集群中计算节点上的分布统计,将键值对数量次大的键更新为所述当前键,直至完成所述遍历。
11.一种应用于数据分配的模型训练方法,其特征在于,适用于计算集群中的控制节点,所述计算集群还包括计算节点,所述方法包括:
获取所述计算集群中计算节点针对已完成数据操作实际分配的数据量;
针对所述己完成数据操作,将所述计算集群中计算节点实际分配到的数
据量相加,得到所述己完成数据操作对应的数据总量;
以所述计算集群中计算节点针对己完成数据操作实际分配的数据量作为标签,对所述己完成数据操作的操作类型及对应的数据总量进行标注,得到训练数据;
根据所述训练数据和深度学习模型的参数构建损失函数;
在所述损失函数通过所述深度学习模型的反向传播收敛时,完成所述深度学习模型的训练。
12.一种数据分配装置,其特征在于,适用于计算集群中的控制节点,所述计算集群还包括计算节点,所述装置包括:
数据总量获取模块,用于确定进行图计算需要执行的数据操作,根据所确定的数据操作获取对应的数据总量;
可占用资源量获取模块,用于将所确定数据操作的操作类型及对应的数据总量输入至深度学习模型,得到所述计算集群中计算节点对应的可占用资源量;
键值对数量获取模块,用于根据所确定的数据操作获取键对应的键值对,由所述键对应的键值对计算所述键的键值对数量;
键值对分布统计模块,用于对键标识不同的若干键进行遍历,以遍历到的键作为当前键;根据所述当前键的键值对数量确定为所述当前键分配的目标资源量;根据所述目标资源量,从所述计算集群的计算节点中选取目标计算节点,所选取的目标计算节点对应的可占用资源量不小于所述目标资源量;
存储所述当前键与所选取的目标计算节点之间的映射关系,通过所存储的映射关系完成所述当前键对应键值对在所述计算集群中计算节点上的分布统计;
映射函数构建模块,用于通过所统计的分布结果,构建所述键与所述计算集群中计算节点之间的映射函数;
键值对分配模块,用于将所述键的键标识输入所述映射函数,计算得到节点标识;在所述计算集群的计算节点中,根据计算得到的节点标识查找到目标计算节点,所查找到的目标计算节点的节点标识与计算得到的节点标识相匹配;将所述键对应的键值对分配至所查找到的目标计算节点。
13.一种应用于数据分配的模型训练装置,其特征在于,适用于计算集群中的控制节点,所述计算集群还包括计算节点,所述装置包括:
数据获取模块,用于获取所述计算集群中计算节点针对已完成数据操作实际分配的数据量;针对所述己完成数据操作,将所述计算集群中计算节点实际分配到的数据量相加,得到所述己完成数据操作对应的数据总量;以所述计算集群中计算节点针对己完成数据操作实际分配的数据量作为标签,对所述己完成数据操作的操作类型及对应的数据总量进行标注,得到训练数据;
标签标注模块,用于通过获取到数据量进行的标签标注,得到训练数据;
函数构建模块,用于根据所述训练数据和深度学习模型的参数构建损失函数;
反向传播模块,用于在所述损失函数通过所述深度学习模型的反向传播收敛时,完成所述深度学习模型的训练。
14.一种计算集群,其特征在于,所述计算集群包括控制节点和计算节点,其中,
所述控制节点,用于确定进行图计算需要执行的数据操作,根据所确定的数据操作获取对应的数据总量;
所述控制节点,还用于将所确定数据操作的操作类型及对应的数据总量输入至深度学习模型,得到所述计算集群中计算节点对应的可占用资源量;
所述控制节点,还用于根据所确定的数据操作获取键对应的键值对,由所述键对应的键值对计算所述键的键值对数量;
所述控制节点,还用于对键标识不同的若干键进行遍历,以遍历到的键作为当前键;根据所述当前键的键值对数量确定为所述当前键分配的目标资源量;根据所述目标资源量,从所述计算集群的计算节点中选取目标计算节点,所选取的目标计算节点对应的可占用资源量不小于所述目标资源量;
存储所述当前键与所选取的目标计算节点之间的映射关系,通过所存储的映射关系完成所述当前键对应键值对在所述计算集群中计算节点上的分布统计;
所述控制节点,还用于通过所统计的分布结果,构建所述键与所述计算集群中计算节点之间的映射函数;
所述控制节点,还用于根据所构建的映射函数,将所述键对应的键值对分配至所述计算集群中的计算节点;
所述计算节点,用于将所述键的键标识输入所述映射函数,计算得到节点标识;在所述计算集群的计算节点中,根据计算得到的节点标识查找到目标计算节点,所查找到的目标计算节点的节点标识与计算得到的节点标识相匹配;将所述键对应的键值对分配至所查找到的目标计算节点。
15.一种计算机设备,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如权利要求1至10任一项所述的数据分配方法。
16.一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述的数据分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811573032.5A CN109710406B (zh) | 2018-12-21 | 2018-12-21 | 数据分配及其模型训练方法、装置、及计算集群 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811573032.5A CN109710406B (zh) | 2018-12-21 | 2018-12-21 | 数据分配及其模型训练方法、装置、及计算集群 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109710406A CN109710406A (zh) | 2019-05-03 |
CN109710406B true CN109710406B (zh) | 2023-01-17 |
Family
ID=66256107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811573032.5A Active CN109710406B (zh) | 2018-12-21 | 2018-12-21 | 数据分配及其模型训练方法、装置、及计算集群 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710406B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413396B (zh) * | 2019-07-30 | 2022-02-15 | 广东工业大学 | 一种资源调度方法、装置、设备及可读存储介质 |
CN110415560B (zh) * | 2019-08-07 | 2020-10-27 | 腾讯科技(深圳)有限公司 | 基于车联网系统的资源量估计方法、碰撞预测方法及装置 |
CN111274036B (zh) * | 2020-01-21 | 2023-11-07 | 南京大学 | 一种基于速度预测的深度学习任务的调度方法 |
CN111858059A (zh) * | 2020-07-24 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种图计算方法、装置、设备及存储介质 |
CN112446490A (zh) * | 2020-11-27 | 2021-03-05 | 苏州浪潮智能科技有限公司 | 一种网络训练的数据集缓存方法、装置、设备及存储介质 |
CN113760933B (zh) * | 2021-08-25 | 2023-11-03 | 福建天泉教育科技有限公司 | 一种数据更新方法及终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107256132A (zh) * | 2017-06-21 | 2017-10-17 | 桂林电子科技大学 | 一种基于性能测试的异构Redis集群存储分配方法 |
CN108564164A (zh) * | 2018-01-08 | 2018-09-21 | 中山大学 | 一种基于spark平台的并行化深度学习方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110055131A1 (en) * | 2009-08-28 | 2011-03-03 | Hung-Han Chen | Method of universal computing device |
CN102831102A (zh) * | 2012-07-30 | 2012-12-19 | 北京亿赞普网络技术有限公司 | 一种在计算机集群上进行矩阵乘积运算的方法和系统 |
CN105426451A (zh) * | 2015-11-11 | 2016-03-23 | 深圳市华讯方舟科技有限公司 | 一种基于键值对的数据处理方法及系统 |
US10044505B2 (en) * | 2016-11-09 | 2018-08-07 | Sas Institute Inc. | Stable data-processing in a distributed computing environment |
CN108683738B (zh) * | 2018-05-16 | 2020-08-14 | 腾讯科技(深圳)有限公司 | 图数据处理方法和图数据的计算任务发布方法 |
CN109034396B (zh) * | 2018-07-11 | 2022-12-23 | 北京百度网讯科技有限公司 | 用于处理分布式集群中的深度学习作业的方法和装置 |
-
2018
- 2018-12-21 CN CN201811573032.5A patent/CN109710406B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107256132A (zh) * | 2017-06-21 | 2017-10-17 | 桂林电子科技大学 | 一种基于性能测试的异构Redis集群存储分配方法 |
CN108564164A (zh) * | 2018-01-08 | 2018-09-21 | 中山大学 | 一种基于spark平台的并行化深度学习方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109710406A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109710406B (zh) | 数据分配及其模型训练方法、装置、及计算集群 | |
CN110301128B (zh) | 基于学习的资源管理数据中心云架构的实现方法 | |
US10200261B2 (en) | Multiple-computing-node system job node selection | |
WO2020258920A1 (zh) | 一种网络切片资源管理方法及设备 | |
US10866840B2 (en) | Dependent system optimization for serverless frameworks | |
US8402469B2 (en) | Allocating resources for parallel execution of query plans | |
US20120198466A1 (en) | Determining an allocation of resources for a job | |
US20160203235A1 (en) | Striping of directed graphs and nodes with improved functionality | |
CN110347515B (zh) | 一种适合边缘计算环境的资源优化分配方法 | |
CN116134448A (zh) | 使用局部敏感散列的联合机器学习 | |
Zotov et al. | Resource allocation algorithm in data centers with a unified scheduler for different types of resources | |
CN111400555A (zh) | 图数据查询任务处理方法、装置、计算机设备和存储介质 | |
CN111722933A (zh) | 分布式进程之间的死锁解决 | |
CN111699481A (zh) | 减少模型更新引入的错误 | |
Chai et al. | A parallel placement approach for service function chain using deep reinforcement learning | |
CN102427420B (zh) | 基于图模式匹配的虚拟网络映射方法及装置 | |
TW201327239A (zh) | 分散式資源管理系統及其分散式資源管理方法 | |
US9817807B1 (en) | Selecting platform-supported services | |
US10387578B1 (en) | Utilization limiting for nested object queries | |
CN116737370A (zh) | 一种多资源调度方法、系统、存储介质及终端 | |
CN111008071A (zh) | 任务调度系统、方法和服务器 | |
Wang et al. | Virtual network embedding with pre‐transformation and incentive convergence mechanism | |
CN115834689A (zh) | 微服务分配方法、电子设备及存储介质 | |
Vidyasagar et al. | Optimized resource allocation and load balancing in distributed cloud using graph theory | |
Al-Masri et al. | Enhancing Resource Provisioning Across Edge-based Environments |
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 |