CN110851265A - 一种数据处理方法、相关设备及系统 - Google Patents
一种数据处理方法、相关设备及系统 Download PDFInfo
- Publication number
- CN110851265A CN110851265A CN201810825264.9A CN201810825264A CN110851265A CN 110851265 A CN110851265 A CN 110851265A CN 201810825264 A CN201810825264 A CN 201810825264A CN 110851265 A CN110851265 A CN 110851265A
- Authority
- CN
- China
- Prior art keywords
- node
- intermediate node
- variable data
- child
- processing
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 113
- 238000000034 method Methods 0.000 claims abstract description 62
- 238000013135 deep learning Methods 0.000 claims abstract description 53
- 230000002776 aggregation Effects 0.000 claims description 44
- 238000004220 aggregation Methods 0.000 claims description 44
- 238000009825 accumulation Methods 0.000 claims description 9
- 238000012935 Averaging Methods 0.000 claims description 6
- 239000002699 waste material Substances 0.000 abstract description 7
- 238000004364 calculation method Methods 0.000 description 33
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000008909 emotion recognition Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种数据处理方法、相关设备及系统,其中的方法应用于深度学习系统的第一中间节点,所述深度学习系统包括中间节点、子节点集合以及根节点,子节点集合包括至少一个子节点,该方法包括:第一中间节点接收下一跳节点集合发送的目标应用的第一变量数据,目标应用与第一中间节点对应,第一中间节点为深度学习系统中与根节点相连的任意一个中间节点,下一跳节点集合为子节点集合或下一跳中间节点集合;第一中间节点根据第一变量数据进行汇聚处理,得到第二变量数据;第一中间节点将第二变量数据发送给根节点,第二变量数据用于根节点进行汇聚处理,可以在一定程度上减少子节点上计算资源的浪费,提高计算效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、相关设备及系统。
背景技术
目前,机器学习已成为信息技术行业发展的一大热点,以深度神经网络为代表的深度学习算法在近几年得到了长足进步和广泛应用。数据汇聚模式是深度学习算法计算中一种常用的变量同步模式。
如图1所示,多个子节点(worker)在进行一轮训练计算后,每个子节点会各自产生一份变量数据;子节点将变量数据传输给根节点(paramenter server,ps),多份变量数据在一个根节点上汇聚为一份新的变量数据后,子节点再根据新的变量数据进行下一轮训练计算。
在数据汇聚模式中,网络传输对深度学习算法计算的效率有着决定性的影响。
当根节点侧的带宽较小时,会使得需在根节点上汇聚的变量数据,无法及时全部到达根节点。而根节点上的汇聚处理需要等待数据,因此,汇聚处理以及新的变量数据返回到子节点的传输被延迟。又由于子节点上的下一轮训练计算需要使用新的变量数据,因此下一轮计算也被延迟,导致子节点上计算资源的浪费,以及整个计算效率的下降。
发明内容
本申请所要解决的技术问题在于,解决如何在一定程度上减少子节点上计算资源的浪费,提高计算效率的问题。
第一方面,本申请提供了一种数据处理方法,应用于深度学习系统的第一中间节点,该深度学习系统包括中间节点、子节点集合以及根节点,该子节点集合中包括至少一个子节点。该数据处理方法可包括:第一中间节点接收下一跳节点集合发送的目标应用的第一变量数据,并根据该第一变量数据进行汇聚处理,得到第二变量数据,将该第二变量数据发送给根节点,以使该根据节点根据该第二变量数据进行汇聚处理。
其中,该第一中间节点与该目标应用相对应,该第一中间节点可被预先配置为对指定的目标应用的数据进行汇聚处理,其中,该目标应用为任意一个深度学习应用。该第一中间节点为深度学习系统中与该根节点相连的任意一个中间节点,该下一跳节点集合为该子节点集合或下一跳中间节点集合,该下一跳中间节点集合包括至少一个位于该第一中间节点的下一跳的中间节点。
可见,通过实施第一方面所提供的方法,在深度学习系统中设置中间节点,子节点先向中间节点发送关于目标应用的变量数据,由中间节点对变量数据进行汇聚处理后发送给根节点,可以减轻根节点的汇聚压力,提高计算的效率,同时,由于根节点的计算效率加快,也减少了子节点的等待数据的时间,从而加快了子节点的计算进程,避免了子节点上计算资源的浪费。
作为一种可行的实施方式,该第一中间节点接收下一跳节点集合发送的目标应用的第一变量数据之后,还可以识别该第一变量数据的身份标识,该身份标识可包括端口号和/或网络地址,并根据所述身份标识判断所述第一变量数据是否为该目标应用的变量数据,若是,则根据该目标应用的第一变量数据进行汇聚处理,得到第二变量数据。
对于第一中间节点而言,该第一中间节点在接收到该目标应用的第一变量数据之后,并不知晓该第一变量数据是否为关于目标应用的数据,因此,通过实施上述可行的实施方式,可以通过第一变量数据的身份标识,例如端口号和/或网络地址来使第一中间节点判断该第一变量数据是否为关于该目标应用的变量数据,如果是,才对该目标应用的第一变量数据进行汇聚处理,可以有效识别第一变量数据的身份,避免对不属于该目标应用的变量数据也进行处理,可以减小错误率。
作为一种可行的实施方式,该第一中间节点进行汇聚处理的处理方式根据该目标应用确定;其中,该第一中间节点进行汇聚处理的处理方式包括:累加处理、求最值处理、求平均值处理中的任意一种或多种。
可见,针对不同的目标应用,可以具有不同的汇聚处理的处理方式。如果该处理方式为累加处理,则该第一中间节点对各个第一变量数据进行累加后发送给根节点,可以加快计算进程,提高计算效率;如果该处理方式为求最值处理,求平均处理等,该第一中间节点仅需将最值或者平均值作为第二变量数据发送给该根节点,这时,该第二变量数据的数据量大小小于根节点直接接收子节点的第一变量数据的数据量大小,不仅可以加快计算进程,也可以进一步减小根节点的网络带宽压力。
作为一种可行的实施方式,该第一中间节点将该第二变量数据发送给根节点之后,还可以将该第二变量数据进行清零处理。
由于每轮汇聚计算是独立的,两轮计算中使用的变量数据如果同存于第一中间节点会容易造成相互干扰。可见,通过实施上述可行的实施方式,将该第二变量数据清零可以保证下一次计算结果的准确性。
作为一种可行的实施方式,该第一中间节点与该下一跳节点集合中的目标节点部署于同一个设备;该第一中间节点的网络带宽根据该下一跳节点集合中除该目标节点以外的节点的总带宽确定,该目标节点为该下一跳节点集合中的任意一个节点。
作为一种可行的实施方式,该第一中间节点与该根节点部署于同一个设备;该第一中间节点的网络带宽根据该下一跳节点集合的总带宽确定。
该设备可以为任何可部署深度学习应用的设备,该中间节点可与根节点或任意一个子节点同时部署在任何可部署深度学习应用的设备上,在预先对深度学习系统的配置过程中,可以直接通过软件将同一个设备设置为包括有多个不同功能的节点。
可见,通过实施上述可行的实施方式,将第一中间节点与根节点或任意一个子节点不属于同一设备,并配置相应的带宽,可以降低成本,同时也能够实现避免网络出现拥塞提高计算效率。
第二方面,提供了一种中间节点设备,该中间节点设备具有实现上述第一方面或第一方面可能的实现方式的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。该模块可以是软件和/或硬件。基于同一发明构思,由于该中间节点设备解决问题的原理以及有益效果可以参见上述第一方面和第一方面的各可能的方法实施方式,和/或第二方面或第二方面可能的实现方式以及所带来的有益效果,因此该中间节点设备的实施可以参见上述第一方面和第一方面的各可能的方法实施方式,重复之处不再赘述。
第三方面,提供了一种中间节点设备,该中间节点设备包括:存储器,用于存储一个或多个程序;处理器,用于调用存储在该存储器中的程序以实现上述第一方面的方法设计中的方案,该中间节点设备解决问题的实施方式以及有益效果可以参见上述第一方面和第一方面的各可能的方法的实施方式以及有益效果,重复之处不再赘述。
第四方面,提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法和第一方面的各可能的实现方式以及有益效果,重复之处不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例提供的一种用于数据汇聚的整体架构图;
图2a是本申请实施例提供的一种深度学习系统的逻辑示意图;
图2b是本申请实施例提供的另一种深度学习系统的逻辑示意图;
图2c是本申请实施例提供的一种深度学习系统的网络架构图;
图3是本申请实施例提供的一种数据处理方法的流程示意图;
图4是本申请提供的另一种数据处理方法的流程示意图;
图5是本申请实施例提供的一种用于数据处理的情景示意图;
图6是本申请实施例提供的一种中间节点设备的结构示意图;
图7是本申请实施例提供的另一种中间节点设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行相应地描述。
本发明实施例提供了一种数据处理方法、相关设备及系统。其中,该数据处理方法通过改变数据汇聚模式中的深度学习系统模型,新增中间节点,可以有效避免网络的拥塞,减少子节点上计算资源的浪费,提高计算效率。
为了更详细的描述本申请,下面首先介绍本申请涉及到的一种深度学习系统。
请参阅图2a,为本申请实施例提供的一种深度学习系统的逻辑示意图。图2a所示的深度学习系统可以包括:中间节点、子节点集合以及根节点,其中,该子节点集合可以包括至少一个子节点。
子节点与根节点之间还可以经过多跳中间节点。图2a示出了子节点与根节点之间经过一跳中间节点的情况,也即深度学习系统的层级为3层的情况。最底层(也即L=1)为子节点集合,该子节点集合可以具有多个,每个子节点集合中包括至少一个子节点,每个子节点集合可以唯一对应一个中间节点。图2a示出的第一层包括2个子节点集合,每个子节点集合中包括了2个子节点,应知,在其他实施例中,该子节点集合的数量可以为任意数量,子节点集合中的子节点数量也可以为任意数量,本申请对此不作任何限制;第二层(也即L=2)为中间节点,图2a示出的第二层包括2个中间节点,应知,在其他实施例中,该中间节点的数量可以为任意数量;第三层(也即L=2)为根节点。
图2b示出了子节点与根节点之间经过两跳中间节点的情况,也即深度学习系统的层级为4层的情况。可以看出,图2b所示的深度学习系统的第二层(L=2)以及第三层(L=3)均为中间节点,与根节点相连的中间节点为第一中间节点,该第一中间节点的下一跳可以为下一跳中间节点集合,该下一跳中间节点集合包括至少一个第二中间节点。该第二中间节点的下一跳可以连接中间节点,或者连接子节点,图2b示出了连接子节点的情况,应知,在其他实施例中,该第二中间节点的下一跳还可以是中间节点。
下面请参阅图2c,为本申请提供的一种深度学习系统的网络架构图。图2c所示的网络架构可以包括:至少一个中间节点设备202、根节点设备203以及至少一个子节点设备201。
在一个实施例中,该中间节点设备202、根节点设备203以及至少一个子节点设备201可以为交换机,且均为不同的设备。根节点设备203以及至少一个子节点设备201的中间跳上,部署有至少一个中间节点设备201,该中间节点设备201可以实现和根节点设备203实现相同的汇聚处理:将接收到的多份变量数据汇聚为一份新的变量数据,再将该新的变量数据继续向根节点设备203转发,直至变量到达该根节点设备203。其中,子节点设备201上产生的变量数据,在封装入网路报文的过程中,同时封装组标识(Group ID,GID)和序列号(Serial Number,SN)两个值,以对被封装的变量进行标识。其中,GID是汇聚处理的全局标识ID,用于唯一标识一次汇聚处理;SN是变量数据的序列号,用于唯一标识在一次汇聚处理中需要进行处理的变量数据。在该根节点设备203以及该中间节点设备201上,只有GID和SN都相同的变量数据,才能由该根节点设备203或该中间节点设备201进行汇聚处理。
在另一个实施例中,还提供了一种数据处理方法。其中,该方法可以不限于仅适用交换机,可以直接通过软件将同一个设备设置为包括有多个不同功能的节点,可以降低成本,同时能够避免网络出现拥塞,并在一定程度上减少计算资源的浪费,提高计算效率。
物理上,该中间节点设备202可以与根节点设备为同一设备,或者,该中间节点设备202也可以与任意一个子节点设备201为同一个设备。其中,该设备可以是服务器、交换机、计算机等任何可以部署深度学习应用的设备。也即,该中间节点设备202可以包括一中间节点和一子节点,或者,该中间节点设备202可以包括一中间节点和一根节点,上述根节点、子节点以及中间节点可以分别为设备的不同模块,逻辑上,该中间节点位于子节点集合的上一跳以及根节点的下一跳,物理上,该中间节点与子节点或者根节点可以部署于同一设备。
中间节点设备202可以与一些或全部子节点设备201在同一分组(group)。其中,该中间节点设备202与子节点设备201的分组对应关系,在深度学习应用部署时可以由开发者手动或云平台自动配置。中间节点设备202节点上可以配置相应带宽的网卡,以吸收多打一流量(该多打一流量为接收下一跳节点的变量数据所产生的流量)。
该中间节点设备202可以根据与该中间节点相连的下一跳节点集合的网络带宽配置相应带宽的网卡。例如,如图2c中,如果与子节点设备201相连的中间节点设备202(以下称为中间节点设备A)同时部署了一个子节点a以及一个中间节点1,则中间节点设备A的网卡带宽可以取决于子节点a的变量数据的传输方式配置:如果子节点a的变量数据通过内存复制给中间节点1,中间节点设备A除子节点a之外还与两个子节点相连,每个子节点可以是20Gbps的网卡,则可以配置网络带宽超过40Gbps的网卡;如果子节点a的变量数据通过网络传给中间节点1,中间节点设备A除子节点a之外还与两个子节点相连,每个子节点可以是20Gbps的网卡,则中间节点设备A则可以配置网络带宽超过60Gbps的网卡。
又例如,如果中间节点与根节点部署于同一设备中,那么中间节点设备202的网络带宽可以为与之相连接的子节点集合的总带宽。也即,如果该中间节点设备连接了2个子节点,每个子节点的网络带宽为20Gbps,那么可以配置网络带宽超过40Gbps的网卡。
在深度学习应用的运行过程中,该数据汇聚过程可以为:子节点设备201→中间节点设备202→根节点设备203。其中,在一个深度学习应用开始运行时,子节点设备201、中间节点设备202、根节点设备203三者,均可以为该深度学习应用构造运行的变量数据。数据汇聚过程过程中,子节点设备201的变量数据被发送给中间节点;中间节点设备202待至少一个子节点设备201的变量数据全部传输完成后,对接收到的变量数据进行汇聚,然后将汇聚后的变量数据,发送给根节点设备203。根节点设备203对接收到的变量数据进行汇聚后,将更新的变量数据,发送给每个子节点设备201。该子节点设备201利用更新的变量数据进行下一轮的计算处理。
基于上述深度学习系统,下面介绍本申请的方法实施例。下面请参阅图3,为本申请提供的一种数据处理方法的流程示意图。如图3所示的方法可应用于深度学习系统的第一中间节点,该深度学习系统包括中间节点、子节点集合以及根节点,该子节点集合包括至少一个子节点。所述方法包括:
301、第一中间节点接收下一跳节点集合发送的目标应用的第一变量数据。
其中,该第一中间节点为该深度学习系统中与根节点相连的任意一个中间节点,且该第一中间节点可以具有多个,每个第一中间节点均可以执行如图3所示的方法。在该深度学习系统中,该第一中间节点可以被设置为与目标应用相对应,也即,该第一中间节点可以被设置为指定接收关于目标应用的变量数据。
该目标应用可以为任意一个深度学习应用,例如图片识别应用,机器翻译应用,情感识别应用,健康分析应用等等,本申请对此不作任何限制。
该下一跳节点集合为子节点集合或下一跳中间节点集合,其中,该子节点集合位于深度学习系统的第一层,该下一跳中间节点集合可以为位于该第一中间节点的下一跳,并与该第一中间节点相连的中间节点的集合。
在该下一跳节点集合为子节点集合时,该第一变量数据可以为在本轮计算中,仅经过对应的子节点计算处理的数据。在该下一跳节点集合为中间节点集合时,该中间节点集合的下一跳可以为中间节点,也可以为子节点,该第一变量数据为经过对应子节点计算处理以及至少经过中间节点集合的对应中间节点汇聚处理后的数据。
302、第一中间节点根据第一变量数据进行汇聚处理,得到第二变量数据。
在一个实施例中,该第一中间节点进行汇聚处理的处理方式根据该目标应用确定;其中,该第一中间节点进行汇聚处理的处理方式包括:累加处理、求最值处理、求平均值处理中的任意一种或多种。
举例来说,如果该第一中间节点进行汇聚处理的处理方式为累加处理,那么在接收到该目标应用的第一变量数据之后,该第一中间节点可以将接收到的各个第一变量数据进行一一累加,累加的结果即为第二变量数据。
303、第一中间节点将第二变量数据发送给根节点,第二变量数据用于根节点进行汇聚处理。
在一个实施例中,该第一中间节点与该根节点可以部署于同一个设备。该第一中间节点可以通过网络将第二变量数据发送给根节点,也可以通过内存将该第二变量数据发送根节点。其中,该第一中间节点的网络带宽可以根据子节点集合的总带宽确定。
举例来说,与该第一中间节点的子节点集合包括2个子节点,每个子节点配置20Gbps的带宽,那么该第一中间节点的网络带宽可以大于或等于40Gbps,以确保能够接收该子节点集合传输的第一变量数据。
在另一个实施例中,该第一中间节点与该子节点集合中的目标节点部署于同一个设备。该第一中间节点的网络带宽根据该子节点集合中除该目标节点以外的节点的总带宽确定,该目标节点为该子节点集合中的任意一个子节点。
举例来说,该子节点集合除该目标节点以外,还包括2个子节点,每个子节点配置20Gbps的带宽,如果该目标节点通过内存发送给该第一中间节点,那么该第一中间节点的网络带宽可以大于或等于40Gbps。
在又一个实施例中,该第一中间节点与该子节点集合中的目标节点部署于同一个设备。在该目标节点通过网络发送第一变量数据至所述第一中间节点的情况下,该第一中间节点的网络带宽根据该子节点集合中所有节点的总带宽确定,该目标节点为该子节点集合中的任意一个子节点。
又举例来说,该子节点集合包括3个子节点(这3个子节点的其中一个为目标节点),每个子节点配置20Gbps的带宽,如果该目标节点通过网络发送给该第一中间节点,那么该第一中间节点的网络带宽可以大于或等于60Gbps。
该第一中间节点可以通过配置网卡的方式来增加网络带宽,或者,该第一中间节点也可以通过其他可行的方式来增加网络带宽,本申请对此不作任何限制。
该根节点等待全部接收到各个第一中间节点的第二变量数据之后,将各个第二变量数据进行汇聚处理,得到第三变量数据,并将该第三变量数据返回给各个子节点进行新一轮的计算处理,同时,此轮汇聚处理结束。在新一轮的计算处理中,子节点根据第三变量数据进行计算,得到计算结果,将此时的计算结果作为第一变量数据发送给中间节点,第一中间节点可循环执行301-303所示的步骤。
其中,该根节点进行汇聚处理的方式可以与该第一中间节点经常汇聚处理的方式相同,在此不作赘述。
可以看出,在本申请实施例中,第一中间节点接收下一跳节点集合发送的目标应用的第一变量数据,并将接收到的所有第一变量数据进行汇聚处理,得到第二变量数据,并将该第二变量数据发送给根节点,以便于该根节点根据该第二变量数据进行汇聚处理。通过增加中间节点将变量数据进行初步汇聚后再发送给根节点进行汇聚的方式,可以减轻根节点的网络带宽压力,提高计算的效率,同时也减少了子节点的等待数据的时间,加快了子节点的计算进程,避免了子节点上计算资源的浪费。
下面请参阅图4,为本申请提供的另一种数据处理方法的流程示意图。如图4所示的方法可包括:
401、第一中间节点接收下一跳节点集合发送的目标应用的第一变量数据。
其中,该目标应用与第一中间节点对应,第一中间节点为深度学习系统中与根节点相连的任意一个中间节点,下一跳节点集合为子节点集合或下一跳中间节点集合。
402、第一中间节点识别第一变量数据中的身份标识,身份标识包括端口号和/或网络地址。
该第一变量数据在封装入网路报文的过程中,可以同时封装该端口号和/或网络地址,端口号和/或网络地址用于指示该第一变量数据所属的目标应用。
在一个实施例中,可以通过预先配置中间节点、根节点以及子节点运行时所使用的网络地址和/或端口号来指定目标应用的数据。
在该第一变量数据在封装入网路报文的过程中,产生该第一变量数据的节点可以同时将端口号和/或网络地址封装入该网路报文,该端口号和/或网络地址用于指示该第一变量数据所属的目标应用。
403、第一中间节点根据身份标识判断第一变量数据是否为目标应用的变量数据。
该第一中间节点可以通过识别接收到的第一变量数据中的端口号和/或网络地址来确定该第一变量数据是否为目标应用的数据。
404、若是,则第一中间节点根据目标应用的第一变量数据进行汇聚处理,得到第二变量数据。
405、第一中间节点将第二变量数据发送给根节点,第二变量数据用于根节点进行汇聚处理。
406、第一中间节点将第二变量数据进行清零处理。
该第一中间节点可以在将第二变量数据发送给根节点之后,可以将该第二变量数据清零,以为下一次的汇聚处理作准备。其中,该清零处理可以为将第二变量数据从内存中删除,或者,也可以是将该第二变量数据从属于汇聚处理的内存中移动到除汇聚处理以外的内存中,或者,还可以是其他可行的实施方式,本申请对此不作任何限制。
为了更详细的说明,下面请参阅图5,图5为本申请提供的一种用于数据处理的情景示意图。图5中,子节点集合包括子节点1以及子节点2,该子节点集合和根节点之间经过一跳根节点。该子节点集合、至少一个中间节点以及一个根节点属于同一分组,该分组下的节点用于处理目标应用的数据。
在501中,该子节点1进行计算处理,得到第一变量数据。类似的,该子节点2也进行计算处理,得到第一变量数据。在502中,该子节点1确定所在分组(group)的中间节点,并向该中间节点的目标端口号发送该第一变量数据,该第一变量数据封装有该目标端口号和/或网络地址。类似的,该子节点2也可以确定所在分组(group)的中间节点,并向该中间节点的目标端口号发送该第一变量数据,在此不作赘述。
在503中,该中间节点在接收该子节点集合的第一变量数据。对于从该中间节点上的目标端口号接收到的梯度数据,对于每个子节点的第一变量数据(来源于同一“网址+端口号”),子节点集合的第一变量数据接收完成后,可以根据各个第一变量数据进行汇聚处理,得到第二变量数据。例如该汇聚处理为累加处理,该中间节点可以利用随机梯度下降(stochastic gradient descent,SGD)优化器进行变量调整,将其中的参数learning_rate设为-1,得可以使不同子节点的第一变量数据进行累加。
在504中,该子节点1以及该子节点2在发送了第一变量数据之后,可以进行同步操作,等待同组所有子节点的第一变量数据全部汇聚完成。
在505中,待本组所有子节点的第一变量数据汇聚完成后,可以将计算结果(也即第二变量数据)上发送给根节点的特定端口号。在一个实施例中,如果该子节点1为组内的主子节点(第一个子节点),且子节点1与中间节点部署于同一设备,本次发送处理可以由该主子节点发起,该主子节点可以调用中间节点上的apply_gradients函数,使得中间节点将第二变量数据上传给根节点。在506中,中间节点发送第二变量数据至根节点后,可以将该第二变量数据进行清零处理,以为下一次的汇聚处理做准备。
在507中,该根节点待接收到本组所有中间节点的第二变量数据后,将各个第二变量数据进行汇聚处理,以得到第三变量数据。在508中,该根节点将该第三变量数据发送给子节点集合中的各个子节点的特定端口号,以更新子节点集合中的各个子节点的变量数据,在下一次汇聚处理的过程中,该子节点集合中的各个子节点将该第三变量数据作为第一变量数据进行下一轮的计算处理。
可见,本申请可以实现:(1)在数据汇聚模式原有的子节点、根节点角色之上,增加中间节点角色,变量数据从该子节点先发往该中间节点,该中间节点对变量数据进行汇聚处理,再将汇聚处理后的变量数据发往根节点;(2)该中间节点不限于部署在交换机上,可部署在任何可部署深度学习应用的设备上,同时,该中间节点可以使用大带宽网卡吸收流量;(3)中间节点上,以深度学习应用为单位进行变量数据的汇聚:中间节点为每个深度学习应用,维护一个应用运行的变量数据;子节点的变量数据可以被指定发送给某个中间节点;中间节点待指定发送给它的至少一个子节点的变量数据全部传至中间节点上后,对属于同一应用的变量数据进行汇聚处理。
下面请参阅图6,为本申请提供的一种中间节点设备的结构示意图。如图6所示的中间节点设备可应用于深度学习系统,该深度学习系统包括中间节点、子节点集合以及根节点,该子节点集合包括至少一个子节点备,该中间节点设备包括:
接收模块601,用于接收下一跳节点集合发送的目标应用的第一变量数据,该目标应用与第一中间节点对应,该第一中间节点为该深度学习系统中与该根节点相连的任意一个中间节点,该第一中间节点部署于该中间节点设备,该下一跳节点集合为该子节点集合或下一跳中间节点集合。
汇聚模块602,用于根据该第一变量数据进行汇聚处理,得到第二变量数据。
发送模块603,用于将该第二变量数据发送给该根节点,该第二变量数据用于该根节点进行汇聚处理。
在一个实施例中,该中间节点设备还包括:识别模块604,用于识别该第一变量数据中的身份标识,该身份标识包括端口号和/或网络地址。
判断模块605,用于根据该身份标识判断该第一变量数据是否为该目标应用的变量数据;若是,则该汇聚模块602用于根据该目标应用的第一变量数据进行汇聚处理,得到第二变量数据。
在一个实施例中,该汇聚模块602进行汇聚处理的处理方式根据该目标应用确定;其中,该第一中间节点进行汇聚处理的处理方式包括:累加处理、求最值处理、求平均值处理中的任意一种或多种。
在一个实施例中,该中间节点设备还包括:清零模块606,用于将该第二变量数据进行清零处理。
在一个实施例中,该子节点集合中的目标节点部署于所述中间节点设备;该中间节点设备的网络带宽根据该子节点集合中除该目标节点以外的节点的总带宽确定,该目标节点为该子节点集合中的任意一子个节点。
在一个实施例中,该根节点部署于该中间节点设备;该中间节点设备的网络带宽根据该下一跳节点集合的总带宽确定。
请参阅图7,为本申请提供的另一种中间节点设备的结构示意图。本实施例中所描述的中间节点设备,包括:存储器702、输入设备705、输入/输出子系统704、处理器701、以及电源703等部件。本领域技术人员可以理解,图7中示出的中间节点设备结构并不构成对中间节点设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
下面结合图7对中间节点设备的各个构成部件进行具体的介绍:
存储器702可用于存储软件程序以及模块,处理器701通过运行存储在存储器702的软件程序以及模块,从而执行中间节点设备的各种功能应用以及数据处理。存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如汇聚处理功能)等;存储数据区可存储根据中间节点设备的使用所创建的数据(比如文本数据、音频数据、影像数据等)等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入设备705可用于接收变量数据,以及产生与中间节点设备的用户设置以及功能控制有关的键信号输入。具体地,输入设备705可包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、鼠标、操作杆、光鼠(光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸)等中的一种或多种。输入设备705与输入/输出子系统704的输入设备控制器7041相连接,在输入设备控制器7041的控制下与处理器701进行信号交互。
中间节点设备还可包括至少一种输出设备706,用于向外输出数据。在一些可行的实施方式中,该输出设备706与该输入设备705可以为同一设备,也可以为不同设备,本申请对此不作任何显示。
输入/输出子系统704用来控制输入输出的外部设备,可以包括输入设备控制器7041、输出设备控制器7042。可选的,一个或多个输入设备控制器7041从输入设备705接收信号,一个或者多个输出设备706可通过输出设备控制器7042向一个或者多个输出设备706发送信号。
处理器701是中间节点设备的控制中心,利用各种接口和线路连接整个中间节点设备的各个部分,通过运行或执行存储在存储器702内的软件程序和/或模块,以及调用存储在存储器702内的数据,执行中间节点设备的各种功能和处理数据,从而对中间节点设备进行整体监控。可选的,处理器701可包括一个或多个处理单元;优选的,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统和应用程序等。
中间节点设备还包括给各个部件供电的电源703(比如电池),优选的,电源可以通过电源管理系统与处理器701逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
尽管未示出,中间节点设备还可以包括显示模块、蓝牙模块等,在此不再赘述。
具体的,上述处理器701可以调用上述存储器702存储的程序指令,实现如本发明实施例所示的方法。
具体的,上述处理器701调用存储在上述存储器702存储的程序指令执行以下步骤:
接收下一跳节点集合发送的目标应用的第一变量数据,该目标应用与第一中间节点对应,该第一中间节点为该深度学习系统中与该根节点相连的任意一个中间节点,该下一跳节点集合为该子节点集合或下一跳中间节点集合;
根据该第一变量数据进行汇聚处理,得到第二变量数据;
将该第二变量数据发送给该根节点,该第二变量数据用于该根节点进行汇聚处理。
在一个实施例中,上述处理器701还用于:识别该第一变量数据中的身份标识,该身份标识包括端口号和/或网络地址;根据该身份标识判断该第一变量数据是否为该目标应用的变量数据;若是,则根据该目标应用的第一变量数据进行汇聚处理,得到第二变量数据。
在一个实施例中,进行汇聚处理的处理方式根据该目标应用确定;其中,进行汇聚处理的处理方式包括:累加处理、求最值处理、求平均值处理中的任意一种或多种。
在一个实施例中,上述处理器701还用于:将该第二变量数据进行清零处理。
在一个实施例中,该子节点集合中的目标节点部署于所述中间节点设备;该中间节点设备的网络带宽根据该子节点集合中除该目标节点以外的节点的总带宽确定,该目标节点为该子节点集合中的任意一子个节点。
在一个实施例中,该根节点部署于该中间节点设备;该中间节点设备的网络带宽根据该下一跳节点集合的总带宽确定。
本发明实施例中处理器执行的方法均从处理器的角度来描述,可以理解的是,本发明实施例中处理器要执行上述方法需要其他硬件结构的配合。例如,接收第一变量数据,可以由由上述处理器701控制输入设备705进行实现,又例如,发送第二变量数据,可以由上述处理器701控制输出设备706进行实现。本发明实施例对具体的实现过程不作详细描述和限制。
在本发明的另一实施例中提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时,可以实现:接收下一跳节点集合发送的目标应用的第一变量数据,该目标应用与第一中间节点对应,该第一中间节点为该深度学习系统中与该根节点相连的任意一个中间节点,该下一跳节点集合为该子节点集合或下一跳中间节点集合;根据该第一变量数据进行汇聚处理,得到第二变量数据;将该第二变量数据发送给该根节点,该第二变量数据用于该根节点进行汇聚处理。
需要说明的是,该计算机可读存储介质被处理器执行的具体过程可参见方法实施例中所描述的方法,在此不再赘述。
在本发明的又一实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行方法实施例中所描述的方法,在此不再赘述。
所述计算机可读存储介质可以是前述任一实施例所述的中间节点设备的内部存储单元,例如中间节点设备的硬盘或内存。所述计算机可读存储介质也可以是所述中间节点设备的外部存储设备,例如所述中间节点设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述中间节点设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述中间节点设备所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
基于同一发明构思,本发明实施例中提供的中间节点设备解决问题的原理与本发明方法实施例相似,因此该中间节点设备的实施可以参见方法的实施,为简洁描述,在这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
Claims (15)
1.一种数据处理方法,其特征在于,应用于深度学习系统的第一中间节点,所述深度学习系统包括中间节点、子节点集合以及根节点,所述子节点集合包括至少一个子节点,所述方法包括:
所述第一中间节点接收下一跳节点集合发送的目标应用的第一变量数据,所述目标应用与所述第一中间节点对应,所述第一中间节点为所述深度学习系统中与所述根节点相连的任意一个中间节点,所述下一跳节点集合为所述子节点集合或下一跳中间节点集合;
所述第一中间节点根据所述第一变量数据进行汇聚处理,得到第二变量数据;
所述第一中间节点将所述第二变量数据发送给所述根节点,所述第二变量数据用于所述根节点进行汇聚处理。
2.如权利要求1所述的方法,其特征在于,所述第一中间节点接收下一跳节点集合发送的目标应用的第一变量数据之后,所述方法还包括:
所述第一中间节点识别所述第一变量数据中的身份标识,所述身份标识包括端口号和/或网络地址;
所述第一中间节点根据所述身份标识判断所述第一变量数据是否为所述目标应用的变量数据;
若是,则所述第一中间节点根据所述目标应用的第一变量数据进行汇聚处理,得到第二变量数据。
3.如权利要求1或2所述的方法,其特征在于,所述第一中间节点进行汇聚处理的处理方式根据所述目标应用确定;
其中,所述第一中间节点进行汇聚处理的处理方式包括:累加处理、求最值处理、求平均值处理中的任意一种或多种。
4.如权利要求1所述的方法,其特征在于,所述第一中间节点将所述第二变量数据发送给所述根节点之后,还包括:
所述第一中间节点将所述第二变量数据进行清零处理。
5.如权利要求1所述的方法,其特征在于,所述第一中间节点与所述子节点集合中的目标节点部署于同一个设备;所述第一中间节点的网络带宽根据所述子节点集合中除所述目标节点以外的节点的总带宽确定,所述目标节点为所述子节点集合中的任意一个子节点。
6.如权利要求5所述的方法,其特征在于,所述第一中间节点与所述根节点部署于同一个设备;所述第一中间节点的网络带宽根据所述下一跳节点集合的总带宽确定。
7.一种中间节点设备,其特征在于,应用于深度学习系统,所述深度学习系统包括中间节点、子节点集合以及根节点,所述子节点集合包括至少一个子节点备,所述中间节点设备包括:
接收模块,用于接收下一跳节点集合发送的目标应用的第一变量数据,所述目标应用与第一中间节点对应,所述第一中间节点为所述深度学习系统中与所述根节点相连的任意一个中间节点,所述第一中间节点部署于所述中间节点设备,所述下一跳节点集合为所述子节点集合或下一跳中间节点集合;
汇聚模块,用于根据所述第一变量数据进行汇聚处理,得到第二变量数据;
发送模块,用于将所述第二变量数据发送给所述根节点,所述第二变量数据用于所述根节点进行汇聚处理。
8.如权利要求7所述的中间节点设备,其特征在于,所述中间节点设备还包括:
识别模块,用于识别所述第一变量数据中的身份标识,所述身份标识包括端口号和/或网络地址;
判断模块,用于根据所述身份标识判断所述第一变量数据是否为所述目标应用的变量数据;
若是,则所述汇聚模块用于根据所述目标应用的第一变量数据进行汇聚处理,得到第二变量数据。
9.如权利要求7或8所述的设备,其特征在于,所述汇聚模块进行汇聚处理的处理方式根据所述目标应用确定;
其中,所述第一中间节点进行汇聚处理的处理方式包括:累加处理、求最值处理、求平均值处理中的任意一种或多种。
10.如权利要求7所述的中间节点设备,其特征在于,所述中间节点设备还包括:
清零模块,用于将所述第二变量数据进行清零处理。
11.如权利要求7所述的中间节点设备,其特征在于,所述子节点集合中的目标节点部署于所述中间节点设备;所述中间节点设备的网络带宽根据所述子节点集合中除所述目标节点以外的节点的总带宽确定,所述目标节点为所述子节点集合中的任意一子个节点。
12.如权利要求11所述的中间节点设备,其特征在于,所述根节点部署于所述中间节点设备;所述中间节点设备的网络带宽根据所述下一跳节点集合的总带宽确定。
13.一种中间节点设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器中的程序,以执行如权利要求1-6任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序,所述程序被处理器执行时使所述计算机执行如权利要求1-6任一项所述的方法。
15.一种深度学习系统,其特征在于,包括:中间节点、子节点集合以及根节点,所述子节点集合包括至少一个子节点,所述中间节点包括第一中间节点,所述第一中间节点为所述深度学习系统中与所述根节点相连的任意一个中间节点;
其中,所述第一中间节点,用于执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810825264.9A CN110851265B (zh) | 2018-07-25 | 2018-07-25 | 一种数据处理方法、相关设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810825264.9A CN110851265B (zh) | 2018-07-25 | 2018-07-25 | 一种数据处理方法、相关设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110851265A true CN110851265A (zh) | 2020-02-28 |
CN110851265B CN110851265B (zh) | 2023-09-08 |
Family
ID=69594415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810825264.9A Active CN110851265B (zh) | 2018-07-25 | 2018-07-25 | 一种数据处理方法、相关设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851265B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104837155A (zh) * | 2015-04-02 | 2015-08-12 | 湘潭大学 | 类bp神经网络的分簇传感网络数据收集方法 |
CN106203633A (zh) * | 2016-06-29 | 2016-12-07 | 赵建杰 | 一种贝叶斯网络构建方法和系统 |
CN106815644A (zh) * | 2017-01-26 | 2017-06-09 | 北京航空航天大学 | 机器学习方法和从节点 |
CN108241534A (zh) * | 2016-12-27 | 2018-07-03 | 阿里巴巴集团控股有限公司 | 一种任务处理、分配、管理、计算的方法以及装置 |
-
2018
- 2018-07-25 CN CN201810825264.9A patent/CN110851265B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104837155A (zh) * | 2015-04-02 | 2015-08-12 | 湘潭大学 | 类bp神经网络的分簇传感网络数据收集方法 |
CN106203633A (zh) * | 2016-06-29 | 2016-12-07 | 赵建杰 | 一种贝叶斯网络构建方法和系统 |
CN108241534A (zh) * | 2016-12-27 | 2018-07-03 | 阿里巴巴集团控股有限公司 | 一种任务处理、分配、管理、计算的方法以及装置 |
CN106815644A (zh) * | 2017-01-26 | 2017-06-09 | 北京航空航天大学 | 机器学习方法和从节点 |
Also Published As
Publication number | Publication date |
---|---|
CN110851265B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sang et al. | Provably efficient algorithms for joint placement and allocation of virtual network functions | |
Ejaz et al. | Traffic load balancing using software defined networking (SDN) controller as virtualized network function | |
US9967188B2 (en) | Network traffic flow management using machine learning | |
CN102055667B (zh) | 用于实现网络规则的方法和设备 | |
CN106656801B (zh) | 业务流的转发路径的重定向方法、装置和业务流转发系统 | |
CN103746911B (zh) | 一种sdn网络结构及其通信方法 | |
CN111865736B (zh) | 一种设备控制方法及装置 | |
CN104503826B (zh) | 一种云计算数据中心的虚拟机映射方法及装置 | |
WO2016160533A1 (en) | Methods and systems for orchestrating physical and virtual switches to enforce security boundaries | |
CN103812778A (zh) | 流表项生成方法以及装置 | |
CN104618244A (zh) | 一种sdn网络与传统ip网络互通的方法及系统 | |
CN111260076B (zh) | 基于区块链的边缘节点训练方法、区块链及存储介质 | |
CN106789152A (zh) | 基于多队列网卡的处理器扩展方法及装置 | |
CN104168202A (zh) | 开放流报文转发方法及装置 | |
CN108111335A (zh) | 一种调度和链接虚拟网络功能的方法及系统 | |
CN108924203A (zh) | 数据副本自适应分布方法、分布式计算系统及相关设备 | |
CN111736871A (zh) | Fpga芯片的升级方法、装置及系统 | |
CN111371608A (zh) | 一种部署sfc业务链的方法、装置和介质 | |
CN109391545B (zh) | 域间链路的发现系统及发现方法 | |
US10498637B2 (en) | Switch processing method, controller, switch, and switch processing system | |
CN111628883B (zh) | 在具有入网点的数据中心中部署网络配置的方法 | |
Bai | Modeling analysis of Intelligent Manufacturing System based on SDN | |
CN110851265A (zh) | 一种数据处理方法、相关设备及系统 | |
WO2022166715A1 (zh) | 一种智能流水线处理方法、装置、存储介质及电子装置 | |
CN113630481A (zh) | Sdn中一种自动带内控制面构建方法及系统 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220214 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |