CN116996516B - 一种集群通信方法及装置、电子设备及可读存储介质 - Google Patents
一种集群通信方法及装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN116996516B CN116996516B CN202311235462.7A CN202311235462A CN116996516B CN 116996516 B CN116996516 B CN 116996516B CN 202311235462 A CN202311235462 A CN 202311235462A CN 116996516 B CN116996516 B CN 116996516B
- Authority
- CN
- China
- Prior art keywords
- array
- server
- data
- network device
- sub
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004220 aggregation Methods 0.000 claims description 48
- 230000002776 aggregation Effects 0.000 claims description 46
- 238000010801 machine learning Methods 0.000 claims description 23
- 229920000642 polymer Polymers 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 238000003491 array Methods 0.000 claims description 7
- 238000006116 polymerization reaction Methods 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000003672 processing method Methods 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 abstract description 12
- 238000004364 calculation method Methods 0.000 abstract description 10
- 238000012545 processing Methods 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供一种集群通信方法及装置、电子设备及可读存储介质。该方法应用于集群中的任一服务器,该方法不仅实现了将服务器的计算卸载到网络设备上,以提高集群运算速度的目的,而且利用多个网络设备并行运算,有效减少计算等待耗时,以及服务器和网络设备之间的数据传输次数,降低传输等待耗时,从而进一步有效提高集群通信的效率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种集群通信方法及装置、电子设备及可读存储介质。
背景技术
为了加快处理速度,可以使用多台服务器组成计算集群进行分布式机器学习和高性能(High Performance Computing,HPC)分布式计算。在分布式机器学习或分布式计算中,各个服务器之间需要进行集群通信,也就是一对多或者多对多的通信。例如,由四个服务器组成计算集群进行分布式机器学习,每个服务器分别计算出一组数据,然后四个服务器之间通信获得4组数据,将4组数据放在一起进行数据聚合(求和),最终让所有服务器都得到聚合后的数据。
在上述过程中,数据处理和计算过程都是由服务器完成,服务器需要通道多次大量的数据通信交互完成任务计算,然而随着集群规则的增长,大量的消息交互会严重影响分布式机器学习的效率。现有技术中提出在网计算(In-network Computing,INC)技术,在网计算技术将集群通信操作卸载到服务器共同连接的一个网络设备(比如交换设备)上,从而减少服务器之间的消息交互,以加速集群通信。然而,每个服务器每次需要进行集合通信的数据都很多,而网络设备的算力有限,网络设备一次处理的数据有限,这就需要服务器将数据划分,划分的数据串行发送至网络设备,而网络设备也是依次处理,这增加了通信时间和处理时间,从而影响集群通信的效率。
发明内容
有鉴于此,本申请提供一种集群通信方法及装置、电子设备及可读存储介质。
本申请实施例提供一种集群通信方法,该方法应用于集群中的任一服务器,集群包括M个服务器,M个服务器被分布式部署,且M个服务器与被指定的用于加速集群的分布式机器学习或分布式计算的N个网络设备相连接,N小于或者等于M;该方法包括:
针对本服务器待发送到N个网络设备的待聚合的数组,依据N个网络设备,对该数组中的数据进行划分,以得到每一网络设备对应的子数组;
针对每一子数组,将该子数组发送至该子数组对应的网络设备;同一网络设备接收到的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组;
获得各网络设备基于接收到的子数组进行数据聚合得到的聚合子结果;任一网络设备得到的聚合子结果对应该网络设备接收到的任一子数组中的数据在原数组中的位置;
依据获得的各聚合子结果对应的位置,按照顺序对获得的各聚合子结果进行合并得到聚合结果。
本申请实施例还提供一种集群通信装置,该装置应用于集群中的任一服务器,集群包括M个服务器,M个服务器被分布式部署,且M个服务器与被指定的用于加速集群的分布式机器学习或分布式计算的N个网络设备相连接,N小于或者等于M;该装置包括:
划分模块;用于针对本服务器待发送N个网络设备的待聚合的数组,依据N个网络设备,对该数组中的数据进行划分,以得到每一网络设备对应的子数组;
发送模块,用于针对每一子数组,将该子数组发送至该子数组对应的网络设备;同一网络设备接收到的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组;
获得模块,用于获得各网络设备基于接收到的子数组进行数据聚合得到的聚合子结果;任一网络设备得到的聚合子结果对应该网络设备接收到的任一子数组中的数据在原数组中的位置;
合并模块,用于依据获得的各聚合子结果对应的位置,按照顺序对获得的各聚合子结果进行合并得到聚合结果。
本申请实施例提供还一种集群通信系统,该系统包括:集群中的M个服务器以及N个网络设备,M个服务器被分布式部署,且M个服务器与被指定的用于加速集群的分布式机器学习或分布式计算的N个网络设备相连接,N小于或者等于M;
其中,任一服务器,用于针对本服务器待发送到N个网络设备的待聚合的数组,依据N个网络设备,对该数组中的数据进行划分,以得到每一网络设备对应的子数组;针对每一子数组,将该子数组发送至该子数组对应的网络设备;同一网络设备接收到的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组;获得各网络设备基于接收到的子数组进行数据聚合得到的聚合子结果;任一网络设备得到的聚合子结果对应该网络设备接收到的任一子数组中的数据在原数组中的位置;依据获得的各聚合子结果对应的位置,按照顺序对获得的各聚合子结果进行合并得到聚合结果。
N个网络设备用于接收集群中各服务器发送的子数组中的数据,并对接收到的子数组进行数据聚合得到的聚合子结果,将该聚合子结果返给各服务器。
本申请实施例还提供一种电子设备,包括:处理器和用于存储计算机程序指令的存储器,计算机程序指令在被处理器运行时使得处理器执行如上方法的步骤。
本申请实施例还提供一种机器可读存储介质,该存储介质存储有计算机程序指令,当该计算机程序指令被执行时,能够实现如上方法的步骤。
由以上技术方案可以看出,本申请实施例中,M个服务器分别连接N个网络设备,通过将每个服务器中待发送的(即待聚合的)数组按照同一划分方式划分为N个子数组,并按照相同的发送方式将N个子数组分别传输至N个网络设备,使每个网络设备中接收到的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同,以使每个网络设备对接收到的子数组进行数据聚合得到的聚合子结果并将该聚合子结果发送至各个服务器,以在各服务器合并得到聚合结果,这实现了将服务器的计算卸载到网络设备上,以提高集群运算速度的目的,并且由于多个网络设备并行运算,服务器和网络设备之间的数据传输次数大幅减少,能够有效减少计算等待耗时,有效降低传输等待耗时,从而有效提高集群通信的效率。
附图说明
图1a为相关技术中提供的All-Reduce的集群通信方法的示意图。
图1b为相关技术中提供的HD算法的示意图。
图1c为相关技术中提供的Ring算法的示意图。
图1d为相关技术中提供的在网计算的示意图。
图2为本申请一示例性实施例提供的集群通信方法的流程示意图。
图3为本申请一示例性实施例提供的All-Reduce的集群通信方法的流程示意图。
图4为本申请另一实施例提供的集群通信装置的结构示意图。
图5为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例标识在附图中。下面的描述涉及附图时,除非另有标识,不同附图中的相同数字标识相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地标识其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
为便于理解本方案,在描述本方案之前,先以分布式机器学习中的集群通信为例,对现有技术中存在的技术问题进行详细描述:
机器学习是人工智能的一个子集,该技术的主要任务是指导计算机按照算法模型从数据中学习,然后利用经验来改善模型的性能。即机器学习可以通过不断的训练,从大型数据集中发现模式和相关性,然后根据数据分析结果做出最佳决策和预测。目前,机器学习可以应用于自然语言处理,图像识别,自动驾驶等各种场景。
为了提高模型的准确性,通常采用较大的数据集进行训练,并通过多个服务器组成计算集群进行分布式机器学习以加快训练速度。在分布式机器学习中,各个服务器之间将进行集群通信,也就是一对多或者多对多的通信。
参见图1a所示,以集群通信的All-Reduce求和操作为例,计算集群由四个服务器组成,以进行分布式机器学习,这四个服务器分别计算出一组数据,然后通过不同方式的通信传输,将四组数据放在一起进行数据聚合(求和),最终让所有服务器都得到聚合后的数据。
All-Reduce有多种实现方式,如HD(Halving and doubling)算法和Ring算法。参见图1b所示,针对HD算法,服务器间两两通信,两个服务器通信是都可以获得对方所有的数据,以此类推,直到使得所有服务器都得到全部数据。针对Ring算法,参见图1c所示,每个服务器都有两个网卡,分为左手卡和右手卡,以环形相连,一个负责接收,一个负责发送,先循环完成求和,再循环做同步。
然而,不管上述哪种实现算法,都需要在服务器之间进行大量的消息交互,大量的交互会增加通信时间以及造成网络拥堵,随着计算集群规模的不断增长,大量的消息交互将严重影响分布式机器学习的效率。
相关技术中通过在网计算技术将集群通信操作卸载到服务器共同连接的一个网络设备(比如交换设备)上,通过网络设备参与计算来减少服务器之间的消息交互,从而缩短通信时延,以加速集群通信。举例来说,参见图1d所示,由四台服务器组成计算集群,每个服务器分别计算出a,b,c,d一组数据,每个服务器都把数据发给交换设备,由交换设备求和后再把结果发给各个服务器。这样,每个服务器和交换设备只发送和接收一次数据。
但受网络设备硬件芯片能力的限制,网络设备每次能够处理的数据报文的长度有限,即最大传输单元(Maximum Transmission Unit,MTU)一般不超过1024字节,有些芯片甚至更短(小于或者等于256字节)。分布式机器学习场景下,每个服务器每次进行集群通信的数据可能超过几兆字节或几十兆字节,每个服务器在向网络设备发送数据时,要将数据划分成多个指定长度的数据报文,划分的数据报文越多,所需的通信时间越长,而且,每个服务器上被划分的数据报文按照串行(所谓串行为发送完当前轮数据报文接着发送下一轮数据报文,以此类推)的方式依此发送至网络设备,网络设备聚合处理当前轮报文并返回聚合结果之后,再处理下一轮的数据报文,不仅处理时间过长,而且通信次数相比HD(Halvingand doubling)算法和Ring算法减少的有限,从而影响集群通信的效率。
有鉴于此,本申请提出了一种应用于集群中的任一服务器的集群通信方法,以解决上述问题。
下面为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
参见图2,图2为本申请一示例性实施例提供的集群通信方法的流程示意图。作为一个实施例,该方法应用于集群中的任一服务器,该集群中包括M个服务器 M个服务器被分布式部署,且M个服务器与被指定的用于加速集群的分布式机器学习或分布式计算的N个网络设备相连接,N小于或者等于M。网络设备可为交换设备,也可为其他能够进行在网计算的设备,本实施例对此并不进行限定。
如图2所示,该流程可包括以下步骤:
S201,针对本服务器待发送到N个网络设备的待聚合的数组,依据N个网络设备,对该数组中的数据进行划分,以得到每一网络设备对应的子数组。
作为一个实施例,在步骤S201中的依据N个网络设备,对该数组中的数据进行划分之前,本方法还包括:若该数组的长度大于预设阈值,则继续执行依据N个网络设备,对该数组中的数据进行划分的步骤;数组的长度是依赖于数组中包含的数据的数量确定;若该数组的长度小于或者等于预设阈值,则将该数组发送至N个网络设备中被指定的一个网络设备,以由该网络设备对接收到的所有数组进行聚合处理得到聚合结果并将聚合结果发送至集群中各服务器。
可选的,预设阈值为多个网络设备各自的MTU值中的最小值,本实施例中,对于本服务器而言,如果待传输的数组的长度小于或者等于多个网络设备各自的MTU值中的最小值,则没有必要进行划分,直接将传输的数组发送至任一被指定的网络设备中进行计算即可。
在步骤S201中,本服务器将待发送的数组划分为N个子数组,该N个子数组中包含的数据的数量可以相同也可以不同。但该集群中各个服务器的划分方式是相同的,以确保同一网络设备接收到的不同子数组包含的数据的数量相同。优选的,N个子数组中包含的数据的数量可以相同,N个网络设备的计算负载更加均衡,有利于最大化的利用网络设备的计算资源。
举例来说,M为4,分别为服务器a、服务器b、服务器c和服务器d,N为2,分别为网络设备1和网络设备2。服务器a待发送的数组为(a1,a2,a3,a4,a5,a6,a7,a8),服务器b待发送的数组为(b1,b2,b3,b4,b5,b6,b7,b8),服务器待发送的数组为(c1,c2,c3,c4,c5,c6,c7,c8),待发送的数组为(d1,d2,d3,d4,d5,d6,d7,d8)。
针对服务器a,可以将(a1,a2,a3,a4,a5,a6,a7,a8)划分为第一子数组(a1,a2)和第二子数组(a3,a4,a5,a6,a7,a8),还可以将(a1,a2,a3,a4,a5,a6,a7,a8)划分为第一子数组(a1,a2,a3,a4)和第二子数组(a5,a6,a7,a8)。
需要说明的是,若服务器a的待发送数组采用上述第二种划分方式,则服务器b、服务器c和服务器d的待发送数组也采用上述第二种划分方式。换言之,各服务器的具体划分方式保持一致。
S202,针对每一子数组,将该子数组发送至该子数组对应的网络设备;同一网络设备接收到的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组。
在步骤S202中,本服务器将N个子数组分别发送至N个网络设备,集群中其他服务器也采用相同的发送方式将各自的N个子数组分别发送至N个网络设备。换言之,集群中的每个服务器给同一网络设备发送的子数组包含的数据在该服务器待发送的数组中的位置相同。
承接上例,服务器a将第一子数组(a1,a2,a3,a4)发送至网络设备1,服务器a将第二子数组(a5,a6,a7,a8)发送至网络设备2。服务器b将第一子数组(b1,b2,b3,b4)发送至网络设备1,服务器b将第二子数组(b5,b6,b7,b8)发送至网络设备2。服务器c将第一子数组(c1,c2,c3,c4)发送至网络设备1,服务器c将第二子数组(c5,c6,c7,c8)发送至网络设备2。服务器d将第一子数组(d1,d2,d3,d4)发送至网络设备1,服务器d将第二子数组(d5,d6,d7,d8)发送至网络设备2。
S203,获得各网络设备基于接收到的子数组进行数据聚合得到的聚合子结果;任一网络设备得到的聚合子结果对应该网络设备接收到的任一子数组中的数据在原数组中的位置。
任一网络设备基于接收到的子数组进行数据聚合得到的聚合子结果,并将该聚合子结果发送至每个服务器,以实现每个服务器获得各网络设备计算获得的聚合子结果。任一网络设备得到的聚合子结果对应该网络设备接收的任一子数组中的数据在原数组中的位置。
S204,依据获得的各聚合子结果对应的位置,按照顺序对获得的各聚合子结果进行合并得到聚合结果。
本服务器在接收到N个网络设备各自发送的N个聚合子结果之后,将N个聚合子结果按照对应的位置进行合并,得到最终的聚合结果。
至此,完成图2所示流程。
通过图2所示流程,本申请实施例中,M个服务器分别连接N个网络设备,通过将每个服务器中待发送的数组按照同一划分方式划分为N个子数组,并按照相同的发送方式将N个子数组分别传输至N个网络设备,使每个网络设备中接收到的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同,以使每个网络设备对接收到的子数组进行数据聚合得到的聚合子结果并将该聚合子结果发送至各个服务器,以在服务器合并得到聚合结果,这实现了将服务器的计算卸载到网络设备上,以提高集群运算速度的目的,并且由于多个网络设备并行运算,服务器和网络设备之间的数据传输次数大幅减少,能够有效减少计算等待耗时,有效降低传输等待耗时,从而有效提高集群通信的效率。
作为一个实施例,在依据N个网络设备,对该数组中的数据进行划分之前,该方法还包括:与各网络设备协商各网络设备与本服务器进行通信所采用的目标报文长度。此时,针对每一子数组,服务器将该子数组发送至该子数组对应的网络设备,可以被执行为,服务器按照被协商的目标报文长度向该网络设备发送报文,报文中携带该网络设备对应的子数组。
上述与各网络设备协商各网络设备与本服务器进行通信所采用的目标报文长度的具体实施方式有很多,比如,作为一个实施例,向控制器发送本服务器的服务器标识、以及本服务器支持的第一报文长度,以使所述控制器确定出本服务器与各网络设备进行通信所采用的目标报文长度;本服务器与任一网络设备进行通信所采用的目标报文长度是基于所述第一报文长度和该网络设备支持的第二报文长度确定。接收控制器下发的被指定的N个网络设备各自的设备标识、以及各网络设备与本服务器进行通信所采用的目标报文长度。
其中,交换设备标识包括交换设备的IP地址,服务器标识包括服务器的IP地址以及在集群中的节点ID。
控制器在接收到本服务器支持的第一报文长度,以及任一网络设备支持的第二报文长度的情况下,将其中最短的报文长度确定本服务器和该网络设备进行通信时的目标报文长度。
应当理解,除了上述通过控制器协商目标报文长度的方式,还可以手动在服务器和网络设备上进行配置,或者服务器和网络设备通过协议自动协商,本实施例对此并不进行限定。
为了更详细理解本方法,下述实施例将以图3为例对本方法进行更详细阐述。本实施例中,以All-Reduce集群通信模式为例。需要说明的是,为了便于理解,本实施例中,以网络设备以交换设备为例,进行介绍本方法。
参见图3,计算集群由被分布式部署的服务器a,服务器b,服务器c和服务器d组成,以进行分布式机器学习,还有交换设备a和交换设备b被指定的用于加速集群的分布式机器学习。
1、在分布式机器学习的过程中,经过一轮训练后,每个服务器都产生一组数据:服务器a产生一组数据(a1,a2,a3,a4,a5,a6,a7,a8),服务器b产生一组数据(b1,b2,b3,b4,b5,b6,b7,b8),服务器c产生一组数据(c1,c2,c3,c4,c5,c6,c7,c8),服务器d产生一组数据(d1,d2,d3,d4,d5,d6,d7,d8)。
2、每个服务器按照相同划分规则将待聚合的数据划分成两个子数组,服务器a把数据划分为第一子数组(a1,a2,a3,a4)和第二子数组(a5,a6,a7,a8),服务器b把数据划分为第一子数组(b1,b2,b3,b4)和第二子数组(b5,b6,b7,b8),服务器c把数据划分为第一子数组(c1,c2,c3,c4)和第二子数组(c5,c6,c7,c8),服务器d把数据划分为第一子数组(d1,d2,d3,d4)和第二子数组(d5,d6,d7,d8),然后分别发送给交换设备a和交换设备b。
3、交换设备a在接收到每个服务器发送的第一子数组之后,对4个第一子数组(a1,a2,a3,a4),(b1,b2,b3,b4),(c1,c2,c3,c4),(d1,d2,d3,d4)进行聚合运算,(a1+b1+c1+d1=s1,a2+b2+c2+d2=s2,a3+b3+c3+d3=s3,a4+b4+c4+d4=s4),得到聚合子结果(s1,s2,s3,s4)。依此类推,交换设备b得到聚合子结果(s5,s6,s7,s8)。
4、交换设备a将聚合子结果(s1,s2,s3,s4)分别发送给服务器a,服务器b,服务器c和服务器d,交换设备b将聚合子结果(s5,s6,s7,s8)分别发送给服务器a,服务器b,服务器c和服务器d。
5、每个服务器将聚合子结果(s1,s2,s3,s4)和(s5,s6,s7,s8)合并,得到聚合结果(s1,s2,s3,s4,s5,s6,s7,s8)。
本实施例中,多个交换设备并行运算,有效减少计算等待耗时,而且各服务器和交换设备之间的数据传输次数大幅减少,降低传输等待耗时,从而有效提高集群通信的效率。
图4为本申请一实施例提供的一种集群通信装置,该装置400应用于集群中的任一服务器,集群包括M个服务器,M个服务器被分布式部署,且M个服务器与被指定的用于加速集群的分布式机器学习或分布式计算的N个网络设备相连接,N小于或者等于M;该装置400包括:划分模块401、发送模块402、获得模块403和合并模块404。
划分模块401;用于针对本服务器待发送到N个网络设备的待聚合的数组,依据N个网络设备,对该数组中的数据进行划分,以得到每一网络设备对应的子数组;
发送模块402,用于针对每一子数组,将该子数组发送至该子数组对应的网络设备;同一网络设备接收到的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组;
获得模块403,用于获得各网络设备基于接收到的子数组进行数据聚合得到的聚合子结果;任一网络设备得到的聚合子结果对应该网络设备接收到的任一子数组中的数据在原数组中的位置;
合并模块404,用于依据获得的各聚合子结果对应的位置,按照顺序对获得的各聚合子结果进行合并得到聚合结果。
作为一个实施例,该装置还包括:
协商模块,用于与各网络设备协商各网络设备与本服务器进行通信所采用的目标报文长度;
其中,发送模块,具体用于按照被协商的目标报文长度向该网络设备发送报文,报文中携带该网络设备对应的子数组。
作为一个实施例,协商模块,具体用于向控制器发送本服务器的服务器标识、以及本服务器支持的第一报文长度,以使控制器确定出本服务器与各网络设备进行通信所采用的目标报文长度;本服务器与任一网络设备进行通信所采用的目标报文长度是基于第一报文长度和该网络设备支持的第二报文长度确定;
接收控制器下发的被指定的N个网络设备各自的设备标识、以及各网络设备与本服务器进行通信所采用的目标报文长度。
作为一个实施例,划分模块在依据N个网络设备,对该数组中的数据进行划分之前,还用于:若该数组的长度大于预设阈值,则继续执行依据N个网络设备,对该数组中的数据进行划分的步骤;数组的长度是依赖于数组中包含的数据的数量确定;
若该数组的长度小于或者等于预设阈值,则将该数组发送至N个网络设备中被指定的一个网络设备,以由该网络设备对接收到的所有数组进行聚合处理得到聚合结果并将聚合结果发送至集群中各服务器。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。
请参见图5,图5为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备可以包括处理器501、通信接口502、存储器503和通信总线504。处理器501、通信接口502以及存储器503通过通信总线504完成相互间的通信。其中,存储器503上存放有计算机程序;处理器501可以通过执行存储器503上所存放的程序,执行上述实施例描述的方法的步骤。该电子设备根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种集群通信方法,其特征在于,所述方法应用于所述集群中的任一服务器,所述集群包括M个服务器,所述M个服务器被分布式部署,且所述M个服务器与被指定的用于加速集群的分布式机器学习或分布式计算的N个网络设备相连接,N小于或者等于M;所述方法包括:
针对本服务器待发送到所述N个网络设备的待聚合的数组,依据所述N个网络设备,对该数组中的数据进行划分,以得到每一网络设备对应的子数组;
针对每一子数组,将该子数组发送至该子数组对应的网络设备;同一网络设备接收到的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组;
获得各网络设备基于接收到的子数组进行数据聚合得到的聚合子结果;任一网络设备得到的聚合子结果对应该网络设备接收到的任一子数组中的数据在原数组中的位置;
依据获得的各聚合子结果对应的位置,按照顺序对获得的各聚合子结果进行合并得到聚合结果。
2.根据权利要求1所述的方法,其特征在于,该方法之前进一步包括:与各网络设备协商各网络设备与本服务器进行通信所采用的目标报文长度;
其中,所述将该子数组发送至该子数组对应的网络设备,包括:
按照被协商的目标报文长度向该网络设备发送报文,所述报文中携带该网络设备对应的子数组。
3.根据权利要求2所述的方法,其特征在于,所述与各网络设备协商各网络设备与本服务器进行通信所采用的目标报文长度,包括:
向控制器发送本服务器的服务器标识、以及本服务器支持的第一报文长度,以使所述控制器确定出本服务器与各网络设备进行通信所采用的目标报文长度;本服务器与任一网络设备进行通信所采用的目标报文长度是基于所述第一报文长度和该网络设备支持的第二报文长度确定;
接收控制器下发的被指定的N个网络设备各自的设备标识、以及各网络设备与本服务器进行通信所采用的目标报文长度。
4.根据权利要求1所述的方法,其特征在于,在所述依据N个网络设备,对该数组中的数据进行划分之前,所述方法还包括:
若该数组的长度大于预设阈值,则继续执行依据N个网络设备,对该数组中的数据进行划分的步骤;所述数组的长度是依赖于所述数组中包含的数据的数量确定;
若该数组的长度小于或者等于预设阈值,则将该数组发送至所述N个网络设备中被指定的一个网络设备,以由该网络设备对接收到的所有数组进行聚合处理得到聚合结果并将所述聚合结果发送至所述集群中各服务器。
5.一种集群通信装置,其特征在于,所述装置应用于所述集群中的任一服务器,所述集群包括M个服务器,所述M个服务器被分布式部署,且所述M个服务器与被指定的用于加速集群的分布式机器学习或分布式计算的N个网络设备相连接,N小于或者等于M;所述装置包括:
划分模块;用于针对本服务器待发送到所述N个网络设备的待聚合的数组,依据所述N个网络设备,对该数组中的数据进行划分,以得到每一网络设备对应的子数组;
发送模块,用于针对每一子数组,将该子数组发送至该子数组对应的网络设备;同一网络设备接收到的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组;
获得模块,用于获得各网络设备基于接收到的子数组进行数据聚合得到的聚合子结果;任一网络设备得到的聚合子结果对应该网络设备接收到的任一子数组中的数据在原数组中的位置;
合并模块,用于依据获得的各聚合子结果对应的位置,按照顺序对获得的各聚合子结果进行合并得到聚合结果。
6.根据权利要求5所述的装置,其特征在于,该装置还包括:
协商模块,用于与各网络设备协商各网络设备与本服务器进行通信所采用的目标报文长度;
其中,发送模块,具体用于按照被协商的目标报文长度向该网络设备发送报文,所述报文中携带该网络设备对应的子数组。
7.根据权利要求6所述的装置,其特征在于,
所述协商模块,具体用于:
向控制器发送本服务器的服务器标识、以及本服务器支持的第一报文长度,以使所述控制器确定出本服务器与各网络设备进行通信所采用的目标报文长度;本服务器与任一网络设备进行通信所采用的目标报文长度是基于所述第一报文长度和该网络设备支持的第二报文长度确定;
接收控制器下发的被指定的N个网络设备各自的设备标识、以及各网络设备与本服务器进行通信所采用的目标报文长度。
8.根据权利要求5所述的装置,其特征在于,所述划分模块在所述依据N个网络设备,对该数组中的数据进行划分之前,还用于:
若该数组的长度大于预设阈值,则继续执行依据N个网络设备,对该数组中的数据进行划分的步骤;所述数组的长度是依赖于所述数组中包含的数据的数量确定;
若该数组的长度小于或者等于预设阈值,则将该数组发送至所述N个网络设备中被指定的一个网络设备,以由该网络设备对接收到的所有数组进行聚合处理得到聚合结果并将所述聚合结果发送至所述集群中各服务器。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行如权利要求1至4任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行如权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311235462.7A CN116996516B (zh) | 2023-09-22 | 2023-09-22 | 一种集群通信方法及装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311235462.7A CN116996516B (zh) | 2023-09-22 | 2023-09-22 | 一种集群通信方法及装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116996516A CN116996516A (zh) | 2023-11-03 |
CN116996516B true CN116996516B (zh) | 2023-12-05 |
Family
ID=88521608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311235462.7A Active CN116996516B (zh) | 2023-09-22 | 2023-09-22 | 一种集群通信方法及装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116996516B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7089259B1 (en) * | 2001-08-03 | 2006-08-08 | Mcafee, Inc. | System and method for providing a framework for network appliance management in a distributed computing environment |
CN105007317A (zh) * | 2015-07-10 | 2015-10-28 | 深圳市创梦天地科技有限公司 | 一种分布式节点的数据处理方法及网关设备 |
CN109062512A (zh) * | 2018-07-26 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种分布式存储集群、数据读写方法、系统及相关装置 |
CN113709261A (zh) * | 2021-10-29 | 2021-11-26 | 深圳市沃易科技有限公司 | 一种融合多渠道数据链式处理的系统 |
CN114756383A (zh) * | 2022-06-15 | 2022-07-15 | 苏州浪潮智能科技有限公司 | 一种分布式计算方法、系统、设备及存储介质 |
CN116437419A (zh) * | 2021-12-30 | 2023-07-14 | 中国电信股份有限公司 | 虚拟局域网vlan接口聚合方法、报文收发方法及相关设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10027740B2 (en) * | 2014-10-31 | 2018-07-17 | Pearson Education, Inc. | System and method for increasing data transmission rates through a content distribution network with customized aggregations |
US10250488B2 (en) * | 2016-03-01 | 2019-04-02 | International Business Machines Corporation | Link aggregation management with respect to a shared pool of configurable computing resources |
-
2023
- 2023-09-22 CN CN202311235462.7A patent/CN116996516B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7089259B1 (en) * | 2001-08-03 | 2006-08-08 | Mcafee, Inc. | System and method for providing a framework for network appliance management in a distributed computing environment |
CN105007317A (zh) * | 2015-07-10 | 2015-10-28 | 深圳市创梦天地科技有限公司 | 一种分布式节点的数据处理方法及网关设备 |
CN109062512A (zh) * | 2018-07-26 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种分布式存储集群、数据读写方法、系统及相关装置 |
CN113709261A (zh) * | 2021-10-29 | 2021-11-26 | 深圳市沃易科技有限公司 | 一种融合多渠道数据链式处理的系统 |
CN116437419A (zh) * | 2021-12-30 | 2023-07-14 | 中国电信股份有限公司 | 虚拟局域网vlan接口聚合方法、报文收发方法及相关设备 |
CN114756383A (zh) * | 2022-06-15 | 2022-07-15 | 苏州浪潮智能科技有限公司 | 一种分布式计算方法、系统、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于云计算的网络测量方法研究;杨燕;;计算机与数字工程(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116996516A (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190065954A1 (en) | Memory bandwidth management for deep learning applications | |
CN110233798B (zh) | 数据处理方法、装置及系统 | |
CN113435544B (zh) | 一种联邦学习系统,方法与装置 | |
CN109981751B (zh) | 一种文件传输方法及系统、计算机设备及存储介质 | |
CN112449009B (zh) | 一种基于svd的联邦学习推荐系统通信压缩方法及装置 | |
CN114281521B (zh) | 优化深度学习异构资源通信效率方法、系统、设备及介质 | |
CN113014689B (zh) | 一种网络地址转换的方法和装置 | |
CN113849293A (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
CN115718868A (zh) | 模型训练方法、装置及系统 | |
CN116996516B (zh) | 一种集群通信方法及装置、电子设备及可读存储介质 | |
CN112989894A (zh) | 目标检测方法、任务处理方法、装置、设备及存储介质 | |
CN116582173B (zh) | 基于卫星的分布式网络处理数据的方法、装置及存储介质 | |
CN112364365A (zh) | 工业数据加密方法、边缘服务器及计算机可读存储介质 | |
CN114565105B (zh) | 处理数据的方法和深度学习模型的训练方法、装置 | |
CN114579311B (zh) | 执行分布式计算任务的方法、装置、设备以及存储介质 | |
CN116980420B (zh) | 一种集群通信方法、系统、装置、设备及介质 | |
KR20230026104A (ko) | 학습 처리 시스템, 로컬 파라미터 개수 결정 장치 및 방법 | |
US8401060B2 (en) | System of sharing data using transmission order | |
CN113064951A (zh) | 基于区块链的数据同步方法和装置 | |
TWI819480B (zh) | 加速系統及其動態配置方法 | |
CN114095289B (zh) | 数据多播电路、方法、电子设备及计算机可读存储介质 | |
CN117494816B (zh) | 基于计算单元部署的模型推理方法、装置、设备及介质 | |
CN105830368B (zh) | 光互联系统、节点、光网络控制器和传输数据的方法 | |
CN116415378A (zh) | 一种联合学习训练结果聚合系统和方法 | |
CN113396425B (zh) | 加速方法、装置和片上系统 |
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 |