CN114221736A - 数据处理的方法、装置、设备及介质 - Google Patents
数据处理的方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114221736A CN114221736A CN202010920720.5A CN202010920720A CN114221736A CN 114221736 A CN114221736 A CN 114221736A CN 202010920720 A CN202010920720 A CN 202010920720A CN 114221736 A CN114221736 A CN 114221736A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- top node
- nodes
- group
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 11
- 238000004891 communication Methods 0.000 claims abstract description 130
- 230000002776 aggregation Effects 0.000 claims abstract description 104
- 238000004220 aggregation Methods 0.000 claims abstract description 104
- 238000000034 method Methods 0.000 claims abstract description 66
- 230000004931 aggregating effect Effects 0.000 claims abstract description 32
- 241000238633 Odonata Species 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 15
- 239000004744 fabric Substances 0.000 claims description 7
- 230000008569 process Effects 0.000 description 24
- 238000012549 training Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 238000007667 floating Methods 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 5
- 230000005484 gravity Effects 0.000 description 5
- 230000005389 magnetism Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000004888 barrier function Effects 0.000 description 3
- 239000003208 petroleum Substances 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
- H04L1/0007—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17318—Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
- H04L1/0017—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy where the mode-switching is based on Quality of Service requirement
- H04L1/0018—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy where the mode-switching is based on Quality of Service requirement based on latency requirement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/41—Flow control; Congestion control by acting on aggregated flows or links
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/829—Topology based
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种数据处理的方法,应用于计算集群,计算集群包括多个全互连结构的组,每个组中包括交换节点和计算节点,该方法包括:第一组中用于与第二组中的第二顶节点通信的交换节点即第一顶节点接收子节点发送的第一数据,然后第一顶节点接收第二顶节点发送的第二数据,接着第一顶节点对第一数据和第二数据进行聚合,得到第三数据。由于多个组中的顶节点参与聚合通讯,对数据进行聚合,因而提高了聚合的效率,而且多个组中的顶节点被用于聚合数据,提高了节点的利用率,避免节点资源被闲置,提高了资源利用率。
Description
技术领域
本申请涉及计算技术领域,尤其涉及一种数据处理的方法、装置、设备以及计算机可读存储介质。
背景技术
随着高性能计算(high performance computing,HPC)以及(artificialintelligence,AI)技术的不断发展,许多新的应用应运而生。用户对各类应用场景的执行效率及性能也越来越追求极致。为此,越来越多的应用采用聚合通讯代替大量的点对点操作,以提升应用的运行性能。
聚合通讯,也称作集合通信,具体是指在一组进程之间完成特定的通信操作。该特定的通信操作可以包括广播(broadcast)、收集(gather)、归约(reduction)等操作。与点对点通讯相比,聚合通讯能够有效地提高消息传递的性能。
针对聚合通讯,业界还提出了一种可扩展分层聚合协议(scalable hierarchicalaggregation and reduction protocol,SHARP),以提升聚合通讯的性能。具体地,SHARP支持将聚合操作由计算节点卸载至交换网络如交换机上,无需在计算节点之间多次发送数据,如此减少了聚合操作整体在网络上的数据量,减少了聚合操作的时间。
然而,将聚合操作由计算节点卸载至交换网络时,通常是按树的方式在交换机上进行聚合,一方面聚合效率较低,另一方面未能充分利用带宽资源,资源利用率较低。
发明内容
本申请提供了一种数据处理的方法,该方法利用计算集群包括的多个全互连结构的组中的顶节点对数据进行聚合,而不局限于根节点,提高了聚合效率,并且该方法可以使得更多顶节点参与聚合,充分利用带宽资源,提高了资源利用率。本申请还提供了上述方法对应的装置、设备、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种数据处理的方法。该方法应用于计算集群。该计算集群包括多个全互连结构的组。每个组实际是一种实现组内通信的子网络。所谓全互连是指每个组与该计算集群的其他组中的每一个组之间至少有一个直连链路。如此可以进一步缩短组间的链路长度,从而实现提供低延迟通信。
每个组中包括交换节点和计算节点。计算节点是指具有计算能力的计算机设备,例如可以是终端或服务器。其中,终端包括但不限于台式机、笔记本电脑、平板电脑或者智能手机。交换节点是指网络中具有数据转发功能的设备,例如可以是交换机或路由器。
每个组中用于与其他组进行通信的交换节点称为顶节点。每个组中的计算节点称为叶子节点。在一些可能的实现方式中,组中还可以包括用于组内通信的交换节点,该交换节点可以连接叶子节点和顶节点,实现组内通信。因此,上述用于组内通信的交换节点可以称为中间节点。一个组的中间节点具体是该组中除顶节点以外的交换节点。
顶节点、中间节点和叶子节点是基于节点在组中的层级对节点进行划分的,在一些可能的实现方式中,还可以通过父节点、子节点描述节点的层级关系。在一个组中,除了顶节点以外的节点均具有父节点,除了叶子节点以外的节点均具有子节点。
为了便于描述,本申请以计算集群包括第一组和第二组进行示例说明。其中,第一组是多个全互连结构的组中的任意一个组,第二组是多个全互连结构的组中除第一组以外的组。
第一组包括第一顶节点,第二组包括第二顶节点。第一顶节点是第一顶节点所在第一组中用于与第二组的第二顶节点进行通信的交换节点。第二顶节点是第二组中用于与第一组进行通信的交换节点。第一顶节点接收子节点发送的第一数据,以及接收第二顶节点发送的第二数据,然后第一顶节点对第一数据和第二数据进行聚合。
在该方法中,多个顶节点均参与聚合通讯,并进行聚合卸载,而不局限于根节点,如此可以提高聚合效率。并且,多个顶节点参与聚合通讯,可以避免资源闲置,充分利用网络资源,提高了资源利用率。
在一些可能的实现方式中,第一顶节点可以接受多个子节点发送的多个第一数据,对应地,第一顶节点可以先对子节点发送的多个第一数据进行聚合,然后第一顶节点将对所述多个第一数据进行聚合所得的数据与所述第二数据进行聚合,得到第三数据。
其中,第一顶节点对多个第一数据进行聚合的结果可以提供给第二顶节点,以便第二顶节点直接根据该结果以及第二数据进行聚合,得到第三数据。由此实现多个组中的顶节点对数据进行聚合,提高聚合效率,以及提供资源利用率。
在一些可能的实现方式中,第一顶节点可以向所述第二顶节点发送对所述多个第一数据进行聚合所得的数据。如此,第二顶节点无需再对多个第一数据进行聚合。由此,可以减少聚合次数,提高聚合效率,避免资源浪费。
在一些可能的实现方式中,第一顶节点可以通过以下方式中的任意一种向所述第二顶节点发送数据:全互连(all to all)、环形(ring)和递推倍增(recursive doubling)。
其中,全互连方式是指每个顶节点向与该顶节点直连的所有顶节点发送数据,具体可以是发送对多个第一数据进行聚合所得的数据。环形方式是指每个顶节点依次向相邻的顶节点发送数据。其中,每个顶节点发送的数据包括每个顶节点自身聚合的数据,以及接收到的相邻的顶节点聚合的数据。每个顶节点知晓需要聚合的数据的数量,当顶节点接收到所有的待聚合的数据时,该顶节点可以停止发送数据。递推倍增方式是指每两个节点相互发送数据,然后每个节点聚合数据。接着,每两组节点交互聚合后的数据,每组节点包括上述两个节点。以此类推,直至每个节点聚合所有数据为止。
无论是采用全互连、环形还是递推倍增,每个组的顶节点均可以获得所有的待聚合的数据,每个组的顶节点均可以对数据进行聚合,提高了聚合效率,并且提高了顶节点的参与率,从而提高了资源利用率。
在一些可能的实现方式中,所述子节点包括所述第一组中与所述第一顶节点直接相连的交换节点。对应地,所述第一数据包括部分聚合数据,所述第三数据为完全聚合数据。其中,部分聚合数据是指对部分待聚合的数据进行聚合所得的数据,完全聚合数据是指对所有待聚合的数据进行聚合所得的数据。
在一些可能的实现方式中,所述子节点包括所述第一组中与所述第一顶节点直接相连的计算节点,所述第一数据包括非聚合数据,所述第三数据为完全聚合数据。其中,非聚合数据是指待聚合的数据中尚未进行聚合的数据。非聚合的数据为叶子节点提供的数据。
在一些可能的实现方式中,第一顶节点在接收子节点发送的第一数据之前,还可以先加入通信域。通信域定义了一个聚合拓扑,该聚合拓扑描述了提供待聚合的数据的叶子节点以及对数据进行聚合的中间节点、顶节点。该聚合拓扑可以与物理拓扑相同,也可以与物理拓扑不同,叶子节点的数据可以按照聚合拓扑进行聚合。当聚合拓扑与物理拓扑相同时,节点利用率可以达到最大值,由此可以提升后续聚合过程中数据聚合的效率以及资源利用率。
在一些可能的实现方式中,聚合拓扑可以包括根节点,该根节点为控制节点,不同组中的顶节点为该根节点下的二级节点。第一顶节点可以向控制节点发送加入域请求,用于请求加入通信域。控制节点收到所有的加入域请求后,可以生成加入域响应。然后第一顶节点接收所述控制节点发送的加入域响应,该加入域响应用于表征所述第一顶节点成功加入通信域。如此,第一顶节点可以在业务流程中对数据进行聚合,提高聚合效率以及资源利用率。
在一些可能的实现方式中,所述控制节点可以为独立于所述计算节点和所述交换节点的节点,也可以为交换节点中的一个节点。当控制节点为独立的节点时,有利于提高计算集群的稳定性,当控制节点为交换节点中的一个节点时,可以充分利用已有资源,避免资源浪费。
在一些可能的实现方式中,聚合拓扑也可以没有根节点。所述第一顶节点可以接收第三顶节点发送的加入域请求,当加入域请求中的域标识包括于所述第一顶节点的域标识列表时,所述第一顶节点将第一顶节点的节点标识添加至对应通信域的节点标识列表。如此,第一顶节点可以在业务流程中对数据进行聚合,提高聚合效率以及资源利用率。
在一些可能的实现方式中,所述第三顶节点为所述第二顶节点中右连或左连所述第一顶节点的节点,或者是所述第二顶节点中与所述第一顶节点直接相连的节点。
具体地,每个顶节点可以接收左连(或右连)的顶节点发送的加入域请求,若加入域请求中的域标识在该顶节点的域标识列表中,则将该顶节点的节点标识添加至对应通信域的节点标识列表,然后转发加入域请求至下一顶节点,否则,直接转发该加入域请求。当某个顶节点接收到自己发送的加入域请求时,丢弃该加入域请求,并停止转发。
当然,顶节点也可以接收加入域请求,若加入域请求中的域标识在该顶节点的域标识列表中,则将该顶节点的节点标识添加至通信域的节点标识列表,否则将加入域请求丢弃。当顶节点收到加入域请求对应的子节点个数总和等于整个通信域中叶子节点个数时,通信域创建完毕,各叶子节点和各顶节点均加入通信域。
在一些可能的实现方式,所述计算集群的拓扑为蜻蜓网络拓扑。计算集群中的计算节点在进行聚合通讯时,可以根据蜻蜓网络拓扑构建聚合拓扑,按照聚合拓扑进行聚合,而不局限于在根节点进行最终的聚合,如此可以提高聚合效率,以及节点资源的利用率。
第二方面,本申请提供了一种数据处理的装置,该装置包括用于执行第一方面或第一方面任意一种可能实现方式中的数据处理的方法的各个模块。
第三方面,本申请提供一种电子设备,该电子设备包括处理器和存储器。所述处理器和所述存储器进行相互的通信。其中,所述存储器,用于存储计算机指令;所述处理器,用于根据所述计算机指令执行如本申请第一方面或第一方面的任意一种实现方式中的数据处理的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意一种实现方式中的数据处理的方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意一种实现方式中的数据处理的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种蜻蜓网络的系统架构图;
图2为本申请实施例提供的一种蜻蜓网络的系统架构图;
图3为本申请实施例提供的一种蜻蜓网络的系统架构图;
图4为本申请实施例提供的一种数据处理的方法的流程图;
图5为本申请实施例提供的一种数据处理的方法的流程示意图;
图6为本申请实施例提供的一种递推倍增方式发送数据的示意图;
图7为本申请实施例提供的一种蜻蜓网络的系统架构图;
图8为本申请实施例提供的一种分布式模型训练的场景示意图;
图9为本申请实施例提供的一种数据处理的装置的结构示意图;
图10为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了便于理解,首先对本申请实施例中所涉及到的一些技术术语进行介绍。
高性能计算是指利用大量处理单元的聚合计算能力进行计算,从而用于解决复杂问题,如天气预测、石油勘探、核爆模拟等问题。其中,大量处理单元的聚合计算能力可以是单个机器中多个处理器的聚合计算能力,也可以是集群中的多个计算机的聚合计算能力。
集群中多个计算机的聚合计算基于聚合通讯实现。所谓聚合通讯,也称作集合通信。在包括多个计算机的计算系统中,涉及一组处理器之间的全局数据迁移和全局控制的操作被称为聚合通讯。聚合通讯在并行分布式计算领域中有着大量而且重要的应用,在很多情况下聚合通讯比点对点通讯更为重要。与点对点通讯相比,聚合通讯能够很大程度地提高消息传递程序的性能。
业界常用的聚合通讯中间件包括消息传递接口(message passing interface,MPI)。MPI定义了一种具有可移植性的编程接口以供用户调用从而实现对应的聚合通讯操作。聚合通讯操作具体包括广播(broadcast)、栅栏同步(barrier)、归约(reduce)、分散(scatter)和收集(gather)等中的任意一种或多种。
根据聚合通讯的数据流的流向,可以将聚合通讯操作分为有根的通讯操作(rooted communication)和无根的通讯操作(non-rooted communication)。有根的通讯操作是指源于特定节点(即根节点)或者将消息注入根节点的操作,具体包括broadcast、gather、scatter和reduce等操作。无根的通讯操作是指集合通讯操作中除有根的通讯操作之外的通讯操作,具体包括全局收集(all gather),全局分散(all scatter),全局归约(all reduce)和barrier等。
在进行聚合通讯时,不同计算机之间的同步和通信可以通过互连网络实现。其中,互连网络可以是蜻蜓(dragonfly)网络。蜻蜓网络包括多个组,每个组实际是一种实现组内通信的子网络。每个组之间通过链路连接,并且组间链路相对较窄,类似于蜻艇的宽大身体和窄小翅膀,因此称为蜻艇网络。由于蜻蜓网络包括的各个组之间采用窄链路,能够很大程度减少全局链路的数量,降低组网成本。
进一步地,蜻蜓网络的各个组之间可以采用全互连(all to all)方式进行连接。所谓全互连是指每个组与该蜻蜓网络的其他组中的每一个组之间至少有一个直连链路。如此可以进一步缩短链路长度,从而实现提供低延迟通信。
接下来,以组间采用全互连方式进行连接的蜻蜓网络(也称作dragonfly+网络)为例,对蜻蜓网络的架构进行详细说明。蜻蜓网络是一种网络拓扑结构。蜻蜓网络组规模较大,支持连接的组数也较多。但是,组间链路较窄,类似于蜻艇的宽大身体和窄小翅膀的结构,因此称为蜻艇网络。蜻蜓网络由于组间采用窄链路,能很大程度节省全局链路的数量,节约系统成本,而倍受青睐。蜻蜓网络为实现全局跳步为1的目标,组间采用全互连结构,并且为了降低网络直径。组内采用跳步数尽可能少的连接方式,通常为全互连或维扁平蝴蝶的结构。
参见图1所示的蜻蜓网络的架构示意图,该蜻蜓网络100包括多个全互连结构的组102,每个组102中包括交换节点和计算节点。计算节点是指具有计算能力的计算机设备,例如可以是终端或服务器。其中,终端包括但不限于台式机、笔记本电脑、平板电脑或者智能手机。交换节点是指网络中具有数据转发功能的设备,例如可以是交换机或路由器。全互连结构的组是指不同组之间存在连接关系,使得各个组中交换节点或计算节点可以通过互连的网络结构进行通信。
每个组102中用于与其他组进行通信的交换节点称为顶节点1022。每个组102中的计算节点称为叶子节点1026。在一些可能的实现方式中,组102中还可以包括用于组内通信的交换节点,该交换节点可以连接叶子节点和顶节点,实现组内通信。因此,上述用于组内通信的交换节点可以称为中间节点1024。一个组102的中间节点1024具体是该组102中除顶节点1022以外的交换节点。
上述顶节点1022、中间节点1024、叶子节点1026是基于节点在网络中的层级进行划分的。在一些可能的实现方式中,还可以通过父节点、子节点描述节点的层级关系。在一个组102中,除了顶节点1022以外的节点均具有父节点,除了叶子节点1026以外的节点均具有子节点。
一个顶节点1022的子节点为该顶节点1022所在组102中与该顶节点1022直接相连的节点。其中,一个组102中与顶节点1022直接相连的节点可以是中间节点1024,也可以是叶子节点1026。对应地,叶子节点1026的父节点可以是中间节点1024或者顶节点1022。
一个中间节点1024的子节点为该中间节点1024所在组102中与该中间节点1024直接相连,并且除顶节点1022以外的节点。其中,一个组102中与中间节点1024直接相连并且除顶节点1022以外的节点可以是另一中间节点1024,也可以是叶子节点1026。对应地,中间节点1024的父节点可以是另一中间节点1024或者是顶节点1022。
图1仅仅是以一个组102中包括一个顶节点1022,顶节点1022的子节点为多个中间节点1024,中间节点1024的子节点为多个叶子节点1026进行示例说明。在本申请实施例其他可能的实现方式中,组102中可以包括多个顶节点1022。
在一些可能的实现方式中,如图2所示,顶节点1022的子节点还可以包括叶子节点1026。在另一些可能的实现方式中,如图3所示,中间节点1024的子节点还可以包括其他中间节点1024,本申请实施例对此不作限定。
其中,交换节点(包括顶节点1022和中间节点1024)不仅可以用于数据转发,还可以用于数据处理。例如,交换节点还可以用于多个计算节点进行聚合通讯时,对计算节点的数据进行聚合。
在一些计算任务中,需要将各计算节点上待聚合的数据进行聚合,并将最终聚合结果分发给各计算节点。其中,待聚合的数据具体可以是计算任务对应数据类型的数据,计算任务对应数据类型包括但不限于:整型、浮点型、布尔型,即,待聚合的数据可以为整型数据、浮点型数据或布尔型数据。
例如,在天气预测任务中,待聚合的数据可以是温度、湿度、风向、风速等中的至少一种。其中,温度、湿度、风速的数据类型可以是整型或浮点型。风向可以通过与指定方向如(北向)的夹角进行表征,因此,风向的数据类型可以是浮点型。又例如,在石油勘测任务中,待聚合的数据可以是不同地理位置的重力、磁力、电阻率等中的至少一个。其中,重力、磁力的数据类型可以是整型,电阻率的数据类型可以是浮点型。考虑到精确度,重力、磁力的数据类型还可以是浮点型。
聚合是指将各计算节点上的多个待聚合的数据进行合并处理得到一个数据的过程。对多个待聚合数据进行合并处理的过程,具体可以是对多个待聚合数据进行数学公式运算,例如,对多个待聚合的数据进行相加,获得的和为聚合结果。又例如,对多个待聚合数据进行相加,最后进行求平均值,获得的平均值为聚合结果。
如图1至图3所示,叶子节点1026在进行聚合通讯时还可以将聚合操作卸载至交换节点如中间节点1024和顶节点1022上。例如,多个叶子节点1026进行全局归约操作,如全局归约求和时,可以将求和操作卸载至对应的中间节点1024以及顶节点1022。
然而,交换节点通常是按照树的方式进行聚合,具体是以其中一个顶节点1022作为根节点,将根节点作为聚合的最终节点进行逐层聚合。这种聚合方法效率低下,而且大量网络资源(如带宽资源)未被充分利用,降低了资源利用率,增加了聚合成本。
本申请实施例提供了一种数据处理的方法。该方法应用于计算集群。该计算集群的网络拓扑可以是蜻蜓网络拓扑结构,例如是如图1至图3所示的dragonfly+网络拓扑结构。该计算集群包括多个全互连结构的组,每个组中包括交换节点和计算节点。为了便于描述,本申请以计算集群包括第一组和第二组进行示例说明。其中,第一组是多个全互连结构的组中的任意一个组,第二组是多个全互连结构的组中除第一组以外的组。
第一组包括第一顶节点,第二组包括第二顶节点。第一顶节点是第一顶节点所在第一组中用于与第二组的第二顶节点进行通信的交换节点。第二顶节点是第二组中用于与第一组进行通信的交换节点。第一顶节点接收子节点发送的第一数据,以及接收第二顶节点发送的第二数据,然后第一顶节点对第一数据和第二数据进行聚合。
在该方法中,多个顶节点1022均参与聚合通讯,并进行聚合卸载,而不局限于根节点,如此可以提高聚合效率。并且,多个顶节点1022参与聚合通讯,可以避免资源闲置,充分利用网络资源,提高了资源利用率。
为了便于理解,下面结合图1至图3所示的蜻蜓网络中数据处理的方法对本申请的技术方案进行介绍。
参见图1至图3所示的蜻蜓网络的系统架构图,不同叶子节点1026进行聚合通讯时,与该叶子节点连接的中间节点1024、顶节点1022也可以进行聚合计算,从而完成聚合通讯。具体地,叶子节点1026、中间节点1024、顶节点1022可以先加入通信域。
不同计算任务可以对应不同的通信域。通信域定义了一个聚合拓扑,该聚合拓扑描述了提供待聚合的数据的叶子节点1026以及对数据进行聚合的中间节点1024、顶节点1022。该聚合拓扑可以与物理拓扑相同,也可以与物理拓扑不同,叶子节点1026的数据可以按照聚合拓扑进行聚合。当聚合拓扑与物理拓扑相同时,节点利用率可以达到最大值,由此可以提升后续聚合过程中数据聚合的效率以及资源利用率。
参与聚合通讯的各节点加入通信域后,每个组102中的叶子节点1026可以向其父节点发送待聚合的数据,父节点可以对叶子节点1026发送的数据进行初步聚合。其中,叶子节点1026的父节点可以是中间节点1024或者是顶节点1022。当叶子节点1026的父节点为中间节点1024时,该中间节点1024还可以向父节点发送初步聚合后的数据,以便父节点进行进一步聚合。中间节点1024的父节点可以是另一中间节点1024或者是顶节点1022。中间节点1024的父节点为另一中间节点1024时,该中间节点1024可以向另一中间节点1024发送进一步聚合后的数据,以便另一中间节点1024对进一步聚合后的数据再进行聚合。
对应地,每个组102中的顶节点1022可以接收子节点发送的第一数据。当子节点为叶子节点1026时,第一数据可以包括叶子节点1026的数据,该数据为非聚合数据。其中,非聚合数据是指多个待聚合的数据中尚未进行聚合的数据。当子节点为中间节点1024时,第一数据可以包括对部分叶子节点1026的数据进行聚合的数据,该数据为部分聚合数据。
每个组102中的顶节点1022还可以接收其他组中的顶节点1022发送的第二数据。该第二数据是其他组102中的顶节点1022根据该组102中的叶子节点1026的数据获得的数据。当该组102中包括多个叶子节点时,第二数据可以是对该组中的叶子节点1026的数据进行聚合所得的数据。也即第二数据可以是部分聚合数据。在一些实施例中,一个组102仅包括一个叶子节点1026时,第二数据也可以是该叶子节点1026的数据,也即第二数据也可以是非聚合数据。
每个组102中的顶节点1022可以对第一数据和第二数据进行聚合,得到第三数据。其中,第三数据是对该计算任务对应的所有待聚合的数据进行聚合所得的数据,该第三数据也称作完全聚合数据。
在一些可能的实现方式中,如图1至图3所示,顶节点1022包括多个子节点,顶节点1022可以接收多个子节点分别发送的第一数据。对应地,顶节点1022在对第一数据和第二数据进行聚合时,可以先对多个子节点发送的多个第一数据进行聚合,然后将对多个第一数据进行聚合所得的数据与第二数据进行聚合,得到第三数据。
其中,每个顶节点1022可以向其他组的顶节点1022发送对第一数据进行聚合所得的数据,以便每个顶节点1022可以实现对所有待聚合的数据进行聚合。由此实现每个顶节点1022均参与数据聚合,提高聚合效率,以及资源利用率。
根据顶节点1022的子节点不同,上述第一数据可以分为以下三种情况:
第一种情况,如图1所示,顶节点1022的子节点均为中间节点1024,对应地,第一数据可以均为部分聚合数据;
第二种情况,如图2所示,顶节点1022的子节点包括中间节点1024和叶子节点1026,对应地,第一数据可以包括部分聚合数据和非聚合数据;
第三种情况,顶节点1022的子节点均为叶子节点1026,对应地,第一数据均为非聚合数据。
接下来,结合附图,从第一顶节点的角度对本申请实施例提供的数据处理的方法的具体实现进行详细说明。参见图4所示的数据处理的方法的流程图,该方法包括:
S402:第一顶节点接收子节点发送的第一数据。
在一些计算任务中,需要将各计算节点上待聚合的数据进行聚合,并将最终聚合结果分发给各计算节点。其中,待聚合的数据具体可以是计算任务对应数据类型的数据,计算任务对应数据类型包括但不限于:整型、浮点型、布尔型,即,待聚合的数据可以为整型数据、浮点型数据或布尔型数据。
聚合是指将各计算节点上的多个待聚合的数据进行合并处理得到一个数据的过程。对多个待聚合数据进行合并处理的过程,具体可以是对多个待聚合数据进行数学公式运算,例如,对多个待聚合的数据进行相加,获得的和为聚合结果。又例如,对多个待聚合数据进行相加,最后进行求平均值,获得的平均值为聚合结果。
在本实施例中,对计算节点上待聚合的数据进行聚合的过程被卸载至交换节点。以第一组对数据处理的过程进行示例说明。具体地,第一组中的第一顶节点具有子节点的,第一顶节点可以接收该子节点发送的第一数据。根据计算任务不同,第一数据可以是不同数据。例如在天气预测任务中,第一数据可以是温度、湿度、风向和/或风速。又例如,在石油勘测任务中,第一数据可以是重力、磁力、电阻率等中的一种或多种。
其中,第一顶节点的子节点包括中间节点时,该中间节点可以对叶子节点(计算节点)上待聚合的数据进行聚合,得到第一数据,该第一数据为部分聚合数据。第一顶节点的子节点包括叶子节点时,该叶子节点上待聚合的数据即为第一数据,该第一数据属于非聚合数据。第一顶节点的子节点可以向第一顶节点发送第一数据,例如发送上述部分聚合数据和/或非聚合数据,以便第一顶节点对第一数据进行进一步聚合得到最终聚合结果。
S404:第一顶节点接收所述第二顶节点发送的第二数据。
第二数据是第二组中的第二顶节点根据该第二顶节点的子节点发送的数据获得的数据。根据计算任务不同,该第二数据可以是不同数据。例如,在天气预测任务中,第二数据可以是温度、湿度、风向和/或风速。又例如,在石油勘测任务中,第二数据可以是重力、磁力、电阻率等中的一种或多种。其中,第一数据和第二数据是同一计算任务的数据类型对应的数据,例如,第一数据和第二数据可以是温度,或者是湿度等等。
该第二数据可以是非聚合数据,或者是部分聚合数据。当第二顶节点仅连接一个叶子节点,例如直接连接一个叶子节点,或者通过中间节点连接一个叶子节点,该第二数据为非聚合数据,具体是该叶子节点上的数据。当第二顶节点(直接或间接地)连接多个叶子节点时,该第二数据为部分聚合数据,该部分聚合数据是对第二顶节点连接的叶子节点上的数据进行聚合得到。
与第一顶节点类似,第二顶节点的子节点可以包括中间节点和/或叶子节点。当第二顶节点的子节点包括中间节点时,第二顶节点可以对中间节点发送的部分聚合数据进行进一步聚合,得到第二数据。当第二顶节点的子节点包括叶子节点时,第二顶节点可以对叶子节点发送的非聚合数据进行聚合,得到第二数据。当第二顶节点的子节点包括中间节点和叶子节点时,第二顶节点可以对中间节点发送的部分聚合数据和叶子节点发送的非聚合数据进行进一步聚合,得到第二数据。
S406:第一顶节点对所述第一数据和所述第二数据进行聚合,得到第三数据。
当第一顶节点在聚合拓扑中仅包括一个子节点时,第一顶节点可以接收该子节点发送的一个第一数据。对应地,第一顶节点可以直接将第一数据和第二数据进行聚合,得到第三数据。
当第一顶节点在聚合拓扑中包括多个子节点时,第二顶节点可以接收多个子节点发送的多个第一数据。对应地,第一顶节点可以先对多个第一数据进行聚合,然后将对多个第一数据进行聚合所得的数据与第二数据进行聚合,从而得到第三数据。
进一步地,第一顶节点可以向第二顶节点发送数据,以便第二顶节点也对数据进行聚合。具体地,当第一顶节点仅接收一个第一数据时,第一顶节点可以直接发送该第一数据。当第一顶节点接收多个第一数据时,第一顶节点可以向第二顶节点发送对多个第一数据进行聚合所得的数据。如此,第二顶节点无需再对多个第一数据进行聚合。由此,可以减少聚合次数,提高聚合效率,避免资源浪费。
第一顶节点聚合得到第三数据(完全聚合数据)后,还可以向其子节点返回该第三数据,从而向对应的计算节点返回第三数据,以完成计算任务。
为了使得本申请的技术方案更加清楚,下面结合附图,从数据变化的角度对本申请实施例提供的数据处理方法的具体实现进行详细说明。
参见图5所示的数据处理的方法的流程示意图,圆圈代表计算节点,也即代表叶子节点1026,方块代表交换节点,具体包括顶节点1022和中间节点1024。其中,叶子节点提供待聚合的数据,交换节点如顶节点1022和中间节点1024对待聚合的数据进行聚合,然后转发最终聚合结果至叶子节点1026。
每个组的中间节点1024可以接收该组的叶子节点1026发送的、待聚合的数据,该中间节点1024可以对叶子节点1026发送的数据进行聚合,得到部分聚合数据。如图5中(A)所示,填充黑色的方块表明该节点上具有经过聚合的数据,例如上述部分聚合数据。中间节点1024向顶节点1022发送上述部分聚合数据。接着,如图5中(B)所示,每个顶节点1022对该顶节点1022的子节点(具体为中间节点1024)发送的部分聚合数据进行聚合,然后向其他顶节点202发送聚合结果,如此,每个顶节点1022可以将本节点的聚合结果和其他顶节点1022的聚合结果进行聚合,得到最终聚合结果。如图5中(C)所示,每个顶节点1022向该顶节点1022的子节点(具体为中间节点1024)发送最终聚合结果。该中间节点1024可以向该中间节点1024的子节点(具体为叶子节点1026)返回最终聚合结果。
如果按照树的方式进行聚合,则在多个顶节点1022中确定一个顶节点1022为根节点。在执行步骤(A)之后,每个顶节点1022将各自接收的部分聚合数据进行聚合,得到聚合结果。然后,多个顶节点1022中除根节点以外的其他顶节点1022向根节点发送上述聚合结果,根节点对该上述聚合结果进行聚合,得到最终聚合结果。根节点再将该最终聚合结果发送至多个顶节点1022中除根节点以外的其他顶节点1022。每个顶节点1022再执行步骤(C),将最终聚合结果发送至叶子节点1026。
由此可见,本申请实施例的聚合方法可以减少一轮聚合,由此可以提高聚合效率,而且多个顶节点1022均参与聚合,避免部分顶节点1022资源闲置,充分利用交换节点的资源,提高了资源利用率。
在图5所示实施例中,顶节点1022是通过全互连(all to all)方式向其他顶节点1022发送数据,如发送顶节点1022对接收的第一数据进行聚合所得的数据。其中,全交叉方式是指每个顶节点1022以点对点方式向其他顶节点1022发送数据。
在一些可能的实现方式中,顶节点1022还可以通过环形(ring)或者递推倍增(recursive doubling)方式向其他顶节点1022发送数据。下面对环形和递推倍增方式进行详细说明。
环形方式是指每个顶节点1022依次向相邻的顶节点发送数据。其中,每个顶节点1022发送的数据包括每个顶节点1022自身聚合的数据,以及接收到的相邻的顶节点1022聚合的数据。每个顶节点1022知晓需要聚合的数据的数量,当顶节点1022接收到所有的待聚合的数据时,该顶节点可以停止发送数据。
例如,多个顶节点1022分别为顶节点1至顶节点5,各个顶节点1022聚合的来自于子节点的数据为数据1至数据5,则顶节点1可以向顶节点2发送数据1,顶节点2可以向顶节点3发送数据1和数据2,顶节点3可以向顶节点4发送数据1、数据2和数据3,顶节点4可以向顶节点5发送数据1、数据2、数据3和数据4。
顶节点5可以聚合上述数据1、数据2、数据3、数据4以及数据5。接着,顶节点5向顶节点1发送数据2、数据3、数据4和数据5。如此,顶节点1可以聚合数据1至数据5。顶节点1向顶节点2发送数据3、数据4和数据5,如此,顶节点2可以聚合数据1至数据5。顶节点2向顶节点3发送数据4和数据5,如此顶节点3可以聚合数据1至数据5,顶节点3向顶节点4发送数据5,如此顶节点4可以聚合数据1至数据5。
递推倍增是指每两个节点相互发送数据,然后每个节点聚合数据。接着,每两组节点交互聚合后的数据,每组节点包括上述两个节点。以此类推,直至每个节点聚合所有数据为止。
为了便于理解,下面结合具体示例说明。参见图6,计算集群包括8个顶节点,具体为P0、P1、……P7,首先,P0、P1相互发送数据,P2、P3相互发送数据,P4、P5相互发送数据,P6、P7相互发送数据,然后,P0至P7分别聚合数据。接着,P0、P1这一组节点与P2、P3这一组节点交换聚合后的数据,并对交换的数据进行聚合。例如P0、P2相互交换聚合后的数据,并分别对交换的数据进行聚合,P1、P3相互交换聚合的数据,并分别对交换的数据进行聚合,类似地,P4、P5这一组节点与P6、P7这一组节点交换聚合后的数据,并分别对交换的数据进行聚合。接着,P0、P1、P2、P3这一组节点与P4、P5、P6、P7这一组节点交换聚合后的数据,并分别对交换的数据进行聚合。例如P0、P4交换聚合后的数据,P1、P5交换聚合后的数据,P2、P6交换聚合后的数据,P3、P7交换聚合后的数据,P0至P7分别对交换后的数据进行聚合。如此,每个顶节点均可以对所有数据进行聚合,得到最终聚合结果。
图4所示实施例主要是从业务流程对数据聚合过程进行介绍。在进行数据聚合之前,还可以执行控制流程,将参与聚合的节点加入通信域。故第一顶节点在接收子节点发送的第一数据之前,第一顶节点还需要加入通信域。
其中,第一顶节点加入通信域可以有多种实现方式。下面分别针对有根节点和无根节点的情况对第一顶节点加入通信域的实现方式进行详细说明。
参见图7,蜻蜓网络100中还包括控制节点104,该控制节点104为独立于计算节点(即叶子节点1026)和交换节点(包括顶节点1022和中间节点1024)。控制节点104包括子网管理器(subnet manager)和聚合通讯控制器(collective controller)。聚合通讯控制器可以协同子网管理器监控整个聚合通讯的生命周期,负责拓扑变化感知、异常监控及资源分配和回收。聚合通讯控制器可以是软件模块,也可以是具有上述功能的硬件模块。交换节点(具体可以是交换机)包括聚合通讯代理(collective agent),collective agent可以是软件模块,也可以是硬件模块,该代理用于实现业务流程和控制流程。计算节点包括参与聚合通讯的进程(具体可以是MPI process)和聚合通讯库(collective library)。聚合通讯库提供有运行时的控制面及数据面接口,用于实现与聚合通讯代理和聚合通讯控制器的交互。
控制节点104(具体是控制节点104中的聚合通讯控制器)可以读取配置文件,从而确定网络的物理拓扑,例如确定网络的物理拓扑为dragonfly+。然后控制节点104根据上述物理拓扑生成一个聚合树的拓扑结构,用于数据聚合。其中,控制节点104为树的根节点,不同组中互连的顶节点为同一棵聚合树的二级节点。控制节点104根据该聚合树的拓扑结构,通知实际的交换机进行链接的建立,并通知顶节点为dragonfly+拓扑。然后控制节点104通知上述顶节点建立全连接,具体是将顶节点间所有物理链路建立连接。
作为叶子节点1026的计算节点与控制节点104进行通信,得到其直连的交换机(具体是交换机中聚合通讯代理)的地址,然后计算节点向直连的交换机发送加入域请求。加入域请求用于请求加入通信域。加入域请求中包括唯一的域标识,进一步地,加入域请求中还可以包括域大小。域大小可以通过通信域中节点的数量表征。
中间节点1024接收到上述加入域请求,记录发送加入域请求的子节点的信息,如子节点的节点标识,如此,在业务流程中,中间节点1024可以对来自子节点(如叶子节点1026)的数据进行聚合。然后,中间节点1024继续向父节点发送加入域请求。
当顶节点1022接收到加入域请求,记录发送加入域请求的子节点的信息,然后向控制节点104发送加入域请求。控制节点104接收到所有加入域请求后,可以获得所有顶节点的信息,然后控制节点104可以发送加入域响应,加入域响应用于表征顶节点1022成功加入通信域。顶节点1022接收到加入域响应,可以标记通信域通过全互连方式进行通信。然后,顶节点1022可以向顶节点1022的子节点回复加入域响应。以此类推,子节点继续向子节点的子节点回复加入域响应,直至叶子节点1026收到加入域响应。
在一些可能的实现方式中,还可以将交换节点作为控制节点104。该控制节点104为虚拟的控制节点,即从交换节点中虚拟出具有相应功能的控制节点。具体实现时,可以将一个顶节点1022虚拟为控制节点104。
在一些可能的实现方式中,顶节点202无需借助根节点也可以实现加入通信域。下面以第一顶节点加入通信域的过程进行示例说明。
具体地,第一顶节点接收第三顶节点发送的加入域请求,当加入域请求中的域标识包括于第一顶节点的域标识列表时,第一顶节点将该第一顶节点的节点标识添加至对应通信域的节点标识列表。
其中,第三顶节点可以是第二顶节点中右连或左连第一顶节点的节点。以第三顶节点为左连第一顶节点的节点为例进行说明。每个顶节点1022接收左连的顶节点1022发送的加入域请求,若加入域请求中的域标识在该顶节点的域标识列表中,则将该顶节点1022的节点标识添加至对应通信域的节点标识列表,然后转发加入域请求至下一顶节点1022,否则,直接转发该加入域请求。当某个顶节点接收到自己发送的加入域请求时,丢弃该加入域请求,并停止转发。
在一些实施例中,第三顶节点也可以是第二顶节点中与所述第一顶节点直连的节点。顶节点1022接收加入域请求,若加入域请求中的域标识在该顶节点1022的域标识列表中,则将该顶节点1022的节点标识添加至通信域的节点标识列表,否则将加入域请求丢弃。当顶节点1022收到加入域请求对应的子节点个数总和等于整个通信域中叶子节点个数时,通信域创建完毕,各叶子节点1026和各顶节点1022均加入通信域。
接下来,将结合分布式模型训练场景对本申请实施例提供的数据处理的方法进行详细说明。
参见图8所示的分布式模型训练的场景示意图,如图8所示,在进行模型训练时,可以通过蜻蜓网络100进行分布式模型训练,一方面可以实现通过多个叶子节点1026进行并行训练,提高训练效率,另一方面,可以实现利用多个叶子节点1026各自的数据集进行训练,保护数据隐私。
具体地,蜻蜓网络100包括多个组102,每个组102包括计算节点和交换节点。其中,每个组102中的计算节点为该组中的叶子节点1026,每个组102中与其他组102的交换节点进行通信的交换节点为该组102的顶节点1022,每个组102中除顶节点1022以外的交换节点为该组102的中间节点1024。
每个叶子节点1026上包括一个相同的初始子模型,每个叶子节点1026分别采用不同的训练样本训练上述初始子模型,得到损失函数的梯度。各个叶子节点1026可以通过聚合通讯计算梯度的平均值,以更新初始子模型的权重,得到子模型。
其中,各个叶子节点1026通过聚合通讯中的全局归约(all reduce)接口函数计算梯度的平均值。具体地,各个叶子节点1026以及参与聚合通讯的顶节点1022、中间节点1024加入通信域后,各个叶子节点1026分别向其连接的中间节点1024发送该叶子节点1026训练初始子模型得到的损失函数的梯度,中间节点1024对接收到的梯度进行初步聚合,向父节点(顶节点1022或另一中间节点1024)发送聚合后的梯度。当顶节点1022接收到多个子节点发送的聚合后的梯度时,先对子节点发送的多个梯度进行聚合,然后每个顶节点1022将聚合后的梯度发送至其他顶节点1022,如此,每个顶节点1022可以根据自身聚合后的梯度以及接收的其他顶节点202聚合后的梯度确定梯度和,进而可以确定梯度的平均值。各个顶节点202向其子节点返回梯度的平均值,子节点为中间节点1024时,中间节点1024返回梯度的平均值。各个叶子节点1026根据梯度的平均值更新初始子模型,得到子模型,由此实现分布式模型训练。
上述实施例是以计算节点包括一个参与聚合通讯的进程进行示例说明的。在一些可能的实现方式中,至少一个计算节点可以包括多个参与聚合通讯的进程,基于此,计算节点还可以先在节点内对多个参与聚合通讯的进程的数据进行聚合,得到部分聚合数据。然后计算节点将该部分聚合数据发送至交换节点进行进一步聚合。
其中,计算节点在节点内对多个参与聚合通讯的进程的数据进行聚合,可以是通过计算节点自身的处理器如中央处理器(central processing unit,CPU)实现。在一些可能的实现方式中,计算节点的网卡也包括处理器,计算节点还可以对将多个聚合通讯的进程的数据进行聚合的过程卸载至网卡。
上文结合图1至图8对本申请实施例提供的数据处理的方法进行了详细介绍,下面将结合附图对本申请实施例提供的装置、设备进行介绍。
参见图9所示的数据处理的装置的结构示意图,该装置900应用于计算集群,所述计算集群包括多个全互连结构的组,每个组中包括交换节点和计算节点,所述装置900为第一组中用于与第二组的第二顶节点进行通信的交换节点,所述第二顶节点所述第二组中用于与所述第一组的所述装置进行通信的交换节点,所述装置900包括:
通信模块902,用于接收子节点发送的第一数据,所述子节点用于指示所述第一组中与所述装置直接相连的节点;
所述通信模块902,还用于接收所述第二顶节点发送的第二数据;
聚合模块904,用于对所述第一数据和所述第二数据进行聚合,得到第三数据。
应理解的是,本申请实施例的装置900可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图4所示的数据处理方法时,装置900及其各个模块也可以为软件模块。
在一些可能的实现方式中,所述聚合模块904,还用于:对所述子节点发送的多个第一数据进行聚合;将对所述多个第一数据进行聚合所得的数据与所述第二数据进行聚合,得到第三数据。
在一些可能的实现方式中,所述通信模块902还用于:向所述第二顶节点发送对所述多个第一数据进行聚合所得的数据。
在一些可能的实现方式中,所述通信模块902,还用于通过全互连(all to all)、环形(ring)和递推倍增(recursive doubling)中的任意一种向所述第二顶节点发送数据。
在一些可能的实现方式中,所述子节点包括所述第一组中与所述装置900直接相连的交换节点;
所述第一数据包括部分聚合数据,所述第三数据为完全聚合数据。
在一些可能的实现方式中,所述子节点包括所述第一组中与所述装置900直接相连的计算节点;
所述第一数据包括非聚合数据,所述第三数据为完全聚合数据。
在一些可能的实现方式中,所述装置900还包括:
控制模块,用于在接收子节点发送的第一数据之前,加入通信域。
在一些可能的实现方式中,所述控制模块具体用于:
向控制节点发送加入域请求;
接收所述控制节点发送的加入域响应,所述加入域响应用于表征所述装置成功加入通信域。
在一些可能的实现方式中,所述控制节点为以下任意一种:
独立于所述计算节点和所述交换节点的节点;或,
所述交换节点中的一个节点。
在一些可能的实现方式中,所述控制模块具体用于:
接收第三顶节点发送的加入域请求;
当加入域请求中的域标识包括于所述装置的域标识列表时,将所述装置的标识添加至对应通信域的节点标识列表。
在一些可能的实现方式中,所述第三顶节点为所述第二顶节点中右连或左连所述装置的节点,或者是所述第二顶节点中与所述装置直接相连的节点。
在一些可能的实现方式中,所述计算集群的拓扑为蜻蜓网络拓扑。
根据本申请实施例的数据处理的装置900可对应于执行本申请实施例中描述的方法,并且数据处理的装置900的各个模块/单元的上述和其它操作和/或功能分别为了实现图4所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种电子设备1000。该电子设备1000是具有数据转发功能的设备。具体地,该电子设备1000可以是交换机或者路由器等设备。该电子设备1000可以用于实现如图9所示实施例中数据处理的装置900的功能。
图10提供了一种电子设备1000的结构示意图,如图10所示,电子设备100包括总线1001、处理器1002、通信接口1003和存储器1004。处理器1002、存储器1004和通信接口1003之间通过总线1001通信。
总线1001可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器1002可以为中央处理器(central processing unit,CPU)。存储器1004可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器1004还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘驱动器(hard disk drive,HDD)或固态驱动器(solid state drive,SSD)。
通信接口1003用于与外部通信。例如,接收子节点发送的第一数据,接收第二顶节点发送的第二数据,向第二顶节点发送对多个第一数据进行聚合所得的数据等等。
存储器1004中存储有可执行代码,处理器1002执行该可执行代码以执行前述数据处理的方法。
具体地,在实现图9所示实施例的情况下,且图9实施例中所描述的数据处理的装置900的各模块为通过软件实现的情况下,执行图9中的聚合模块904功能所需的软件或程序代码存储在存储器1004中。
通信模块902功能通过通信接口1003实现。通信接口1003接收子节点发送的第一数据,以及接收第二顶节点发送的第二数据,将第一数据、第二数据通过总线1001传输至处理器1002,处理器1002执行存储器1004中存储的各模块对应的程序代码,如执行聚合模块904对应的程序代码,以执行对第一数据和第二数据进行聚合得到第三数据的步骤。
应理解,本申请实施例的电子设备1000可对应于本申请实施例中的图9所述的数据处理的装置900,电子设备1000用于实现上述图4所述方法中相应主体执行的方法的操作步骤,为了简洁,在此不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (26)
1.一种数据处理的方法,其特征在于,应用于计算集群,所述计算集群包括多个全互连结构的组,每个组中包括交换节点和计算节点,所述方法包括:
第一顶节点接收子节点发送的第一数据,所述第一顶节点为所述第一顶节点所在第一组中用于与第二组的第二顶节点进行通信的交换节点,所述子节点用于指示所述第一组中与所述第一顶节点直接相连的节点,所述第二顶节点为所述第二组中用于与所述第一组的所述第一顶节点进行通信的交换节点;
所述第一顶节点接收所述第二顶节点发送的第二数据;
所述第一顶节点对所述第一数据和所述第二数据进行聚合,得到第三数据。
2.根据权利要求1所述的方法,其特征在于,所述第一顶节点对所述第一数据和所述第二数据进行聚合,得到第三数据,包括:
所述第一顶节点对所述子节点发送的多个第一数据进行聚合;
所述第一顶节点将对所述多个第一数据进行聚合所得的数据与所述第二数据进行聚合,得到第三数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一顶节点向所述第二顶节点发送对所述多个第一数据进行聚合所得的数据。
4.根据权利要求3所述的方法,其特征在于,所述第一顶节点通过以下方式中的任意一种向所述第二顶节点发送数据:
全互连(all to all)、环形(ring)和递推倍增(recursive doubling)。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述子节点包括所述第一组中与所述第一顶节点直接相连的交换节点;
所述第一数据包括部分聚合数据,所述第三数据为完全聚合数据。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述子节点包括所述第一组中与所述第一顶节点直接相连的计算节点;
所述第一数据包括非聚合数据,所述第三数据为完全聚合数据。
7.根据权利要求1至6任一项所述的方法,其特征在于,在接收子节点发送的第一数据之前,所述方法还包括:
所述第一顶节点加入通信域。
8.根据权利要求7所述的方法,其特征在于,所述第一顶节点加入通信域,包括:
所述第一顶节点向控制节点发送加入域请求;
所述第一顶节点接收所述控制节点发送的加入域响应,所述加入域响应用于表征所述第一顶节点成功加入通信域。
9.根据权利要求8所述的方法,其特征在于,所述控制节点为以下任意一种:
独立于所述计算节点和所述交换节点的节点;或,
所述交换节点中的一个节点。
10.根据权利要求7所述的方法,其特征在于,所述第一顶节点加入通信域,包括:
所述第一顶节点接收第三顶节点发送的加入域请求;
当加入域请求中的域标识包括于所述第一顶节点的域标识列表时,所述第一顶节点将第一顶节点的节点标识添加至对应通信域的节点标识列表。
11.根据权利要求10所述的方法,其特征在于,所述第三顶节点为所述第二顶节点中右连或左连所述第一顶节点的节点,或者是所述第二顶节点中与所述第一顶节点直接相连的节点。
12.根据权利要求1至11任一项所述的方法,其特征在于,所述计算集群的拓扑为蜻蜓网络拓扑。
13.一种数据处理的装置,其特征在于,应用于计算集群,所述计算集群包括多个全互连结构的组,每个组中包括交换节点和计算节点,所述装置为第一组中用于与第二组的第二顶节点进行通信的交换节点,所述第二顶节点所述第二组中用于与所述第一组的所述装置进行通信的交换节点,所述装置包括:
通信模块,用于接收子节点发送的第一数据,所述子节点用于指示所述第一组中与所述装置直接相连的节点;
所述通信模块,还用于接收所述第二顶节点发送的第二数据;
聚合模块,用于对所述第一数据和所述第二数据进行聚合,得到第三数据。
14.根据权利要求13所述的装置,其特征在于,所述聚合模块具体用于:
对所述子节点发送的多个第一数据进行聚合;
将对所述多个第一数据进行聚合所得的数据与所述第二数据进行聚合,得到第三数据。
15.根据权利要求14所述的装置,其特征在于,所述通信模块还用于:
向所述第二顶节点发送对所述多个第一数据进行聚合所得的数据。
16.根据权利要求15所述的装置,其特征在于,所述通信模块具体用于:
通过全互连(all to all)、环形(ring)和递推倍增(recursive doubling)中的任意一种向所述第二顶节点发送数据。
17.根据权利要求13至16任一项所述的装置,其特征在于,所述子节点包括所述第一组中与所述装置直接相连的交换节点;
所述第一数据包括部分聚合数据,所述第三数据为完全聚合数据。
18.根据权利要求13至17任一项所述的装置,其特征在于,所述子节点包括所述第一组中与所述装置直接相连的计算节点;
所述第一数据包括非聚合数据,所述第三数据为完全聚合数据。
19.根据权利要求13至18任一项所述的装置,其特征在于,所述装置还包括:
控制模块,用于在接收子节点发送的第一数据之前,加入通信域。
20.根据权利要求19所述的装置,其特征在于,所述控制模块具体用于:
向控制节点发送加入域请求;
接收所述控制节点发送的加入域响应,所述加入域响应用于表征所述装置成功加入通信域。
21.根据权利要求20所述的装置,其特征在于,所述控制节点为以下任意一种:
独立于所述计算节点和所述交换节点的节点;或,
所述交换节点中的一个节点。
22.根据权利要求19所述的装置,其特征在于,所述控制模块具体用于:
接收第三顶节点发送的加入域请求;
当加入域请求中的域标识包括于所述装置的域标识列表时,将所述装置的标识添加至对应通信域的节点标识列表。
23.根据权利要求22所述的装置,其特征在于,所述第三顶节点为所述第二顶节点中右连或左连所述装置的节点,或者是所述第二顶节点中与所述装置直接相连的节点。
24.根据权利要求13至23任一项所述的装置,其特征在于,所述计算集群的拓扑为蜻蜓网络拓扑。
25.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述电子设备执行如权利要求1至12中任一项所述的方法。
26.一种计算机可读存储介质,其特征在于,包括指令,所述指令指示电子设备执行如权利要求1至12中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010920720.5A CN114221736A (zh) | 2020-09-04 | 2020-09-04 | 数据处理的方法、装置、设备及介质 |
EP21863396.4A EP4199395A4 (en) | 2020-09-04 | 2021-07-16 | DATA PROCESSING METHOD AND APPARATUS, DEVICE, AND MEDIUM |
PCT/CN2021/106804 WO2022048328A1 (zh) | 2020-09-04 | 2021-07-16 | 数据处理的方法、装置、设备及介质 |
US18/117,242 US20230208915A1 (en) | 2020-09-04 | 2023-03-03 | Data processing method, apparatus, device, and medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010920720.5A CN114221736A (zh) | 2020-09-04 | 2020-09-04 | 数据处理的方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114221736A true CN114221736A (zh) | 2022-03-22 |
Family
ID=80492120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010920720.5A Pending CN114221736A (zh) | 2020-09-04 | 2020-09-04 | 数据处理的方法、装置、设备及介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230208915A1 (zh) |
EP (1) | EP4199395A4 (zh) |
CN (1) | CN114221736A (zh) |
WO (1) | WO2022048328A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023179741A1 (zh) * | 2022-03-24 | 2023-09-28 | 华为技术有限公司 | 一种计算系统以及数据传输方法 |
WO2024001861A1 (zh) * | 2022-06-29 | 2024-01-04 | 华为技术有限公司 | 模型训练方法、装置、系统及相关设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958513B2 (en) * | 2005-11-17 | 2011-06-07 | International Business Machines Corporation | Method, system and program product for communicating among processes in a symmetric multi-processing cluster environment |
CN101035040A (zh) * | 2007-02-02 | 2007-09-12 | 南京邮电大学 | 基于多代理协商的无线传感器网络数据收集方法 |
US8406128B1 (en) * | 2010-06-29 | 2013-03-26 | Amazon Technologies, Inc. | Efficient highly connected data centers |
GB2511089A (en) * | 2013-02-22 | 2014-08-27 | Ibm | All-to-all message exchange in parallel computing systems |
EP3573313A1 (en) * | 2015-12-18 | 2019-11-27 | Huawei Technologies Co., Ltd. | Networking method for data center network and data center network |
-
2020
- 2020-09-04 CN CN202010920720.5A patent/CN114221736A/zh active Pending
-
2021
- 2021-07-16 WO PCT/CN2021/106804 patent/WO2022048328A1/zh unknown
- 2021-07-16 EP EP21863396.4A patent/EP4199395A4/en active Pending
-
2023
- 2023-03-03 US US18/117,242 patent/US20230208915A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023179741A1 (zh) * | 2022-03-24 | 2023-09-28 | 华为技术有限公司 | 一种计算系统以及数据传输方法 |
WO2024001861A1 (zh) * | 2022-06-29 | 2024-01-04 | 华为技术有限公司 | 模型训练方法、装置、系统及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2022048328A1 (zh) | 2022-03-10 |
EP4199395A1 (en) | 2023-06-21 |
EP4199395A4 (en) | 2024-02-21 |
US20230208915A1 (en) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jimenez et al. | On the controller placement for designing a distributed SDN control layer | |
Li et al. | Scalable and cost-effective interconnection of data-center servers using dual server ports | |
US8094585B2 (en) | Membership management of network nodes | |
US20230208915A1 (en) | Data processing method, apparatus, device, and medium | |
Wang et al. | BCDC: a high-performance, server-centric data center network | |
Lin et al. | Research on resource self-organizing model for cloud computing | |
Liu et al. | An optimized solution for mobile environment using mobile cloud computing | |
Al-Doghman et al. | A review of aggregation algorithms for the internet of things | |
CN112348199A (zh) | 一种基于联邦学习与多任务学习的模型训练方法 | |
Guo et al. | Particle swarm optimization based multi-domain virtual network embedding | |
KR20220074971A (ko) | 블록체인 기반 데이터 프로세싱 방법, 장치 및 디바이스, 그리고 판독가능 저장 매체 | |
Biswas et al. | A novel leader election algorithm based on resources for ring networks | |
Wu et al. | Topology-aware federated learning in edge computing: A comprehensive survey | |
CN113300851B (zh) | 基于dht的区块链消息广播方法、电子设备及存储介质 | |
CN105224550A (zh) | 分布式流计算系统和方法 | |
Jin et al. | A real-time multimedia streaming transmission control mechanism based on edge cloud computing and opportunistic approximation optimization | |
Chen et al. | Weighted overlay design for topic-based publish/subscribe systems on geo-distributed data centers | |
CN109981794B (zh) | 基于区块链节点网络的处理方法、装置及电子设备 | |
CN104601412A (zh) | 一种独立测试网络系统及其建立方法 | |
US11595471B1 (en) | Method and system for electing a master in a cloud based distributed system using a serverless framework | |
Ambalavanan et al. | DICer: Distributed coordination for in-network computations | |
Suto et al. | An overlay-based data mining architecture tolerant to physical network disruptions | |
Wang et al. | One-to-one disjoint path covers in DCell | |
US11108652B2 (en) | Server assisted network discovery (SAND) | |
Liu et al. | A hybrid virtual network mapping algorithm based on threshold load |
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 |