CN116980420B - 一种集群通信方法、系统、装置、设备及介质 - Google Patents

一种集群通信方法、系统、装置、设备及介质 Download PDF

Info

Publication number
CN116980420B
CN116980420B CN202311237685.7A CN202311237685A CN116980420B CN 116980420 B CN116980420 B CN 116980420B CN 202311237685 A CN202311237685 A CN 202311237685A CN 116980420 B CN116980420 B CN 116980420B
Authority
CN
China
Prior art keywords
array
server
cluster
sub
data
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
Application number
CN202311237685.7A
Other languages
English (en)
Other versions
CN116980420A (zh
Inventor
王伟锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN202311237685.7A priority Critical patent/CN116980420B/zh
Publication of CN116980420A publication Critical patent/CN116980420A/zh
Application granted granted Critical
Publication of CN116980420B publication Critical patent/CN116980420B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]

Abstract

本发明提供一种集群通信方法、系统、装置、设备及介质。所述方法通过在网络设备中安装用于加速集群中分布式机器学习或分布式计算的N个计算单元,将网络设备中的单个计算单元扩展为N个计算单元,通过N个计算单元间的相互配合来降低单个计算单元的负载压力,达到提高通信效率的效果。

Description

一种集群通信方法、系统、装置、设备及介质
技术领域
本发明涉及通信技术领域,尤其涉及一种集群通信方法、系统、装置、设备及介质。
背景技术
为了加快处理速度,可以使用多台服务器组成计算集群进行分布式机器学习。在分布式机器学习中,各个服务器之间需要进行集群通信,也就是一对多或者多对多的通信,例如由四个服务器组成计算集群进行分布式机器学习,每个服务器分别计算出一组数据,然后放在一起进行数据聚合(求和),最终让所有服务器都得到聚合后的数据。相关技术中利用在网计算(In Network Computing)技术将集群通信操作卸载到网络设备(例如交换机)上,以加速集群通信。然而,由于网络设备的算力有限,随着计算集群规模的增加将导致网络设备的负载压力变大,从而影响集群通信的效率。
发明内容
为克服上述技术中存在的问题,本发明提供了一种集群通信方法、系统、装置、设备及介质。
根据本发明实施例的第一方面,提供了一种集群通信方法,所述方法应用于网络设备,所述网络设备中安装有用于加速集群的分布式机器学习或分布式计算的N个计算单元,N大于1,所述集群包括M个服务器,所述M个服务器被分布式部署,且所述M个服务器均连接所述网络设备;所述方法包括:
接收所述集群中各服务器发送的待聚合的数组;
针对接收的每一数组,依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分,以得到每一计算单元对应的子数组;
针对每一子数组,将该子数组分配给该子数组对应的计算单元;同一计算单元被分配的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组;
获得各计算单元基于被分配的子数组进行数据聚合得到的聚合子结果;任一计算单元得到的聚合子结果对应该计算单元被分配的任一子数组中的数据在原数组中的位置;
依据获得的各聚合子结果对应的位置,按照顺序对获得的各聚合子结果进行合并得到聚合结果并发送至所述集群中的服务器。
可选的,所述N个计算单元的类型为业务板卡、CPU或FPGA中的至少一种。
可选的,该方法之前进一步包括:与所述集群中各服务器协商各服务器与本网络设备进行通信所采用的目标报文长度;
所述接收所述集群中各服务器发送的待聚合的数组包括:
接收所述集群中各服务器按照被协商的目标报文长度发送的报文,所述报文携带待聚合的数组。
可选的,所述与所述集群中各服务器协商各服务器与本网络设备进行通信所采用的目标报文长度包括:
向控制器发送本网络设备的网络设备标识以及本网络设备支持的第一报文长度,以使所述控制器确定出各服务器与所述网络设备进行通信所采用的目标报文长度;任一服务器与所述网络设备进行通信所采用的目标报文长度是基于所述第一报文长度和该服务器支持的第二报文长度确定;
接收所述控制器发送的集群信息,所述集群信息包括所述集群中各服务器的服务器标识,以及各服务器与所述网络设备进行通信所采用的目标报文长度。
可选的,依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分之前,所述方法还包括:
若该数组的长度大于或等于预设阈值,则继续执行依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分的步骤;该数组的长度是依赖于该数组中包含的数据的数量确定;
若该数组的长度小于预设阈值,则指定其中一个计算单元对所有数组进行聚合处理得到聚合结果,并将所述聚合结果发送至所述集群中各服务器。
根据本发明实施例的第二方面,提供了一种集群通信系统,所述系统包括网络设备以及集群中服务器;网络设备,所述网络设备中安装有用于加速集群的分布式机器学习或分布式计算的N个计算单元,N大于1,所述集群包括M个服务器,所述M个服务器被分布式部署,且所述M个服务器均连接所述网络设备;
所述M个服务器,用于向网络设备发送待聚合的数组;
所述网络设备,用于接收所述集群中各服务器发送的待聚合的数组;针对接收的每一数组,依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分,以得到每一计算单元对应的子数组;针对每一子数组,将该子数组分配给该子数组对应的计算单元;同一计算单元被分配的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组;获得各计算单元基于被分配的子数组进行数据聚合得到的聚合子结果;任一计算单元得到的聚合子结果对应该计算单元被分配的任一子数组中的数据在原数组中的位置;依据获得的各聚合子结果对应的位置,按照顺序对获得的各聚合子结果进行合并得到聚合结果并发送至所述集群中的服务器。
可选的,所述N个计算单元的类型为业务板卡、CPU或FPGA中的至少一种。
可选的,与所述集群中各服务器协商各服务器与本网络设备进行通信所采用的目标报文长度;
所述接收所述集群中各服务器发送的待聚合的数组包括:
接收所述集群中各服务器按照被协商的目标报文长度发送的报文,所述报文携带待聚合的数组。
可选的,所述与所述集群中各服务器协商各服务器与本网络设备进行通信所采用的目标报文长度包括:
向控制器发送本网络设备的IP地址以及本网络设备支持的第一报文长度,以使所述控制器确定出各服务器与所述网络设备进行通信所采用的目标报文长度;任一服务器与所述网络设备进行通信所采用的目标报文长度是基于所述第一报文长度和该服务器支持的第二报文长度确定;
接收所述控制器发送的集群信息,所述集群信息包括所述集群中各服务器的服务器标识,以及各服务器与所述网络设备进行通信所采用的目标报文长度。
可选的,依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分之前,还包括:
若该数组的长度大于或等于预设阈值,则继续执行依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分的步骤;该数组的长度是依赖于该数组中包含的数据的数量确定;
若该数组的长度小于预设阈值,则指定其中一个计算单元对所有数组进行聚合处理得到聚合结果,并将所述聚合结果发送至所述集群中各服务器。
根据本发明实施例的第三方面,提供了一种集群通信装置,所述装置应用于网络设备,所述网络设备中安装有用于加速集群的分布式机器学习或分布式计算的N个计算单元,N大于1,所述集群包括M个服务器,所述M个服务器被分布式部署,且所述M个服务器均连接所述网络设备;所述装置包括:
接收模块,用于接收所述集群中各服务器发送的待聚合的数组;
划分模块;用于针对接收的每一数组,依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分,以得到每一计算单元对应的子数组;
分配模块,用于针对每一子数组,将该子数组分配给该子数组对应的计算单元;同一计算单元被分配的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组;
合并模块,用于获得各计算单元基于被分配的子数组进行数据聚合得到的聚合子结果;任一计算单元得到的聚合子结果对应该计算单元被分配的任一子数组中的数据在原数组中的位置;依据获得的各聚合子结果对应的位置,对获得的各聚合子结果进行合并得到聚合结果并发送至所述集群中的服务器。
可选的,所述N个计算单元的类型为业务板卡、CPU或FPGA中的至少一种。
可选的,所述装置还包括协商模块,用于与所述集群中各服务器协商各服务器与本网络设备进行通信所采用的目标报文长度;
所述接收模块,具体用于在所述协商模块完成协商之后,接收所述集群中各服务器按照被协商的目标报文长度发送的报文,所述报文携带待聚合的数组。
可选的,所述协商模块,具体用于向控制器发送本网络设备的网络设备标识以及本网络设备支持的第一报文长度,以使所述控制器确定出各服务器与所述网络设备进行通信所采用的目标报文长度;任一服务器与所述网络设备进行通信所采用的目标报文长度是基于所述第一报文长度和该服务器支持的第二报文长度确定;接收所述控制器发送的集群信息,所述集群信息包括所述集群中各服务器的服务器标识,以及各服务器与所述网络设备进行通信所采用的目标报文长度。
可选的,所述划分模块在依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分之前,还用于:
若该数组的长度大于或等于预设阈值,则继续执行依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分的步骤;该数组的长度是依赖于该数组中包含的数据的数量确定;
若该数组的长度小于预设阈值,则指定其中一个计算单元对所有数组进行聚合处理得到聚合结果,并将所述聚合结果发送至所述集群中各服务器。
根据本发明实施例的第四方面,提供了一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行如上述任一所述的方法。
根据本发明实施例的第五方面,提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述任一所述方法的步骤。
利用本说明的一个或多个实施例,通过在网络设备中安装用于加速集群中分布式机器学习或分布式计算的N个计算单元,将网络设备中的单个计算单元扩展为N个计算单元,通过N个计算单元间的相互配合来降低单个计算单元的负载压力,达到提高通信效率的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本发明的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是本发明根据一示例性实施例示出的一种实现全规约的流程示意图。
图2是本发明根据一示例性实施例示出的一种集群通信方法的流程示意图。
图3是本发明根据一示例性实施例示出的另一种实现全规约的流程示意图。
图4是本发明根据一示例性实施例示出的一种集群通信装置的框图示意图。
图5是本发明根据一示例性实施例示出的一种设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本发明示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本发明所描述的更多或更少。此外,本发明中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本发明中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本发明可以应用于分布式机器学习或分布式计算的集群通信中,所述分布式计算可以为高性能计算(high performance computing,HPC)的分布式计算。下述实施例将以分布式机器学习中的集群通信为例对本发明进行介绍。
机器学习是人工智能的一个子集,该技术的主要任务是指导计算机按照算法模型从数据中学习,然后利用经验来改善模型的性能。即机器学习可以通过不断的训练,从大型数据集中发现模式和相关性,然后根据数据分析结果做出最佳决策和预测。目前,机器学习可以应用于自然语言处理,图像识别,自动驾驶等各种场景。
为了提高模型的准确性,通常采用较大的数据集进行训练,并通过多个服务器组成计算集群进行分布式机器学习以加快训练速度。在分布式机器学习中,各个服务器之间将进行集群通信,也就是一对多或者多对多的通信,常见的集群通信模式有广播Broadcast,散播Scatter,规约Reduce,全规约All-Reduce等。其中,全规约All-Reduce用于在计算集群中的各服务器之间进行数据的聚合和同步,将各服务器的并行计算结果汇集在一起,以便进行进一步的处理或输出。如图1所示,由四个服务器组成的计算集群进行分布式机器学习,每个服务器分别计算出一组数据,采用All-Reduce进行数据聚合,最终让所有服务器都得到聚合后的数据。该过程需要各服务器之间进行大量的消息交互,随着计算集群规模的不断增长,大量的消息交互将严重影响分布式机器学习的效率。
相关技术通过在网计算技术加速集群通信,即将集群通信操作卸载到网络设备(例如交换机)上,让网络设备参与计算,从而减少服务器之间的消息交互,达到加速分布式机器学习的目的。
但受网络设备硬件芯片能力的限制,网络设备每次能够处理的数据报文的长度有限,即最大传输单元(Maximum Transmission Unit,MTU)一般不超过1024字节,有些芯片甚至更短(小于256字节)。分布式机器学习场景下,每个服务器每次进行集群通信的数据可能超过几兆字节或几十兆字节,由于网络设备每次处理报文长度的有限,服务器在向网络设备发送数据时,要将数据拆分成多个指定长度的数据报文,拆分的数据报文越多,与网络设备进行通信的次数越多,所需的通信时间越长,这将影响集群通信的性能。
鉴于此,本发明提出了一种应用于网络设备的集群通信方法,在所述网络设备中安装用于加速集群的分布式机器学习或分布式计算的N个计算单元,N大于1,通过N个计算单元并行进行在网计算,提高在网计算对集群通信的加速效果,进而加速分布式机器学习和HPC分布式计算。
所述集群可以包括M个服务器,所述M个服务器被分布式部署,且所述M个服务器均连接所述网络设备,在本实施例中M个服务器可以和网络设备直连,也可以不直连,本实施例对此并不进行限定。
图2是本发明根据一示例性实施例示出的一种集群通信方法的流程示意图,如图2所示,本发明提供的一种集群通信方法可以包括以下步骤201至步骤205。
在步骤201中,接收所述集群中各服务器发送的待聚合的数组。
在步骤202中,针对接收的每一数组,依据本交换机中安装的N个计算单元,对接收的该数组中的数据进行划分,以得到每一计算单元对应的子数组。
也就是说,可以根据计算单元的数量确定划分子数组的数量,同一数组被划分为N个子数组后,每一子数组中包含的数据的数量可以相同也可以不同。但需采用相同的划分方式划分不同服务器对应的数组,以确保分配给同一计算单元的不同子数组中包含的数据的数量相同。
假设M为4,分别为服务器a、服务器b、服务器c和服务器d;N为2,分别为计算单元1和计算单元2。接收到服务器a发送的待聚合的数组a为(a1,a2,a3,a4,a5,a6,a7,a8),接收到服务器b发送的待聚合的数组b为(b1,b2,b3,b4,b5,b6,b7,b8),接收到服务器c发送的待聚合的数组c为(c1,c2,c3,c4,c5,c6,c7,c8),接收到服务器d发送的待聚合的数组d为(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)。假设采用第二种划分方式,则对数组b、数组c和数组d采用与数组a相同的划分方式。
这种情况下,针对接收到的数组a,计算单元1对应的子数组为(a1,a2,a3,a4),计算单元2对应的子数组为(a5,a6,a7,a8)。
针对接收到的数组b,计算单元1对应的子数组为(b1,b2,b3,b4),计算单元2对应的子数组为(b5,b6,b7,b8)。
针对接收到的数组c,计算单元1对应的子数组为(c1,c2,c3,c4),计算单元2对应的子数组为(c5,c6,c7,c8)。
针对接收到的数组d,计算单元1对应的子数组为(d1,d2,d3,d4),计算单元2对应的子数组为(d5,d6,d7,d8)。
在步骤203中,针对每一子数组,将该子数组分配给该子数组对应的计算单元。
在将接收到的每一数组划分为N个子数组的情况下,可以将N个子数组分别分配给N个计算单元。对于接收到的不同数组采用相同的划分方式划分为N个子数组后,采用相同的分配方式分配给N个计算单元,每个计算单元被分配的子数组的数量相同,同一计算单元被分配的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组。也就是说,将服务器发送的待集合的数组看作原数组,各服务器发送的原数组中包含的数据的数量相同,采用相同的划分方式及相同的分配方式,分配给同一计算单元的不同子数组具有相同的长度,且各子数组中的数据在原数组中的位置相同。
接续上例,将子数组(a1,a2,a3,a4)分配给计算单元1,将子数组(a5,a6,a7,a8)分配给计算单元2;将子数组(b1,b2,b3,b4)分配给计算单元1,将子数组(b5,b6,b7,b8)分配给计算单元2;将子数组(c1,c2,c3,c4)分配给计算单元1,将子数组(c5,c6,c7,c8)分配给计算单元2;将子数组(d1,d2,d3,d4)分配给计算单元1,将子数组(d5,d6,d7,d8)分配给计算单元2。
在步骤204中,获得各计算单元基于被分配的子数组进行数据聚合得到的聚合子结果。
任一计算单元得到的聚合子结果对应该计算单元被分配的任一子数组中的数据在原数组中的位置。也就是说,各计算单元对多个子数组中相同位置上的数据进行聚合,得到该数据所在位置上的聚合子结果。
在步骤205中,依据获得的各聚合子结果对应的位置,对获得的各聚合子结果进行合并得到聚合结果并发送至所述集群中的服务器。
计算单元得到的聚合子结果对应的位置即是分配给该计算单元的子数组在原数组中的位置。按照各计算单元的聚合子结果在原数组中的位置将各聚合子结果进行合并得到聚合结果。将聚合结果同步发送至集群中的M各服务器。
在本实施例中,所述网络设备中可以包括1个处理单元和N个计算单元,所述处理单元用于执行上述步骤201至步骤205,所述N个计算单元用于基于被分配的子数组进行聚合计算。
在本实施例中所述N个计算单元的类型可以为业务板卡、中央处理器(CentralProcessing Unit,CPU)或现场可编程门阵列(Field-Programmable Gate Array,FPGA)中的至少一种。也即是所述N个计算单元的类型可以是业务板卡、CPU或FPGA中的一种或多种组合,例如计算单元可以是业务板卡、CPU或FPGA,也可以是业务板卡和CPU的组合,也可以是业务板卡和FPGA的组合等等。本实施例中的业务板卡是指针对某一业务的处理设备。
通过在网络设备上安装多个业务板卡或者多个芯片的方式,提高网络设备的处理能力,进而提高网络设备收发报文的报文长度(例如报文长度为9000字节的报文),从而减少报文的传输次数,提高集群通信的效率。
在计算集群进行All-Reduce数据聚合的情况下,服务器将待聚合的数据打包成数据包发送给网络设备,网络设备内部将数据包拆分给多个计算单元并行进行数据聚合,之后再将各计算单元得到的聚合子结果进行合并后发送给计算集群的所有服务器。通过多个计算单元并行进行在网计算来提高集群通信的效率。
在一些实施例中,与所述集群中各服务器协商各服务器与本网络设备进行通信所采用的目标报文长度。在这种情况下,所述接收所述集群中各服务器发送的待聚合的数组,包括:接收所述集群中各服务器按照被协商的目标报文长度发送的报文,所述报文携带待聚合的数组。
在一些实施例中,可以基于控制器与所述集群中各服务器协商各服务器与本网络设备进行通信所采用的目标报文长度,也即是向控制器发送本网络设备的网络设备标识以及本网络设备支持的第一报文长度,以使所述控制器确定出各服务器与所述网络设备进行通信所采用的目标报文长度;任一服务器与所述网络设备进行通信所采用的目标报文长度是基于所述第一报文长度和该服务器支持的第二报文长度确定;
接收所述控制器发送的集群信息,所述集群信息包括所述集群中各服务器的服务器标识,以及各服务器与所述网络设备进行通信所采用的目标报文长度。
其中,所述网络设备标识包括网络设备的IP地址,所述服务器标识包括服务器的IP地址以及在集群中的节点ID。
控制器在接收到网络设备支持的第一报文长度,以及各服务器支持的第二报文长度的情况下,将其中最短的报文长度确定为目标报文长度。
本领域技术人员应当理解,除了通过控制器与所述集群中各服务器协商各服务器与本网络设备进行通信所采用的目标报文长度之外,还可以手动在服务器和网络设备上进行配置,或者服务器和网络设备通过协议自动协商,本实施例对此并不进行限定。
在本实施例中,在依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分之前,所述方法还包括:
若该数组的长度大于或等于预设阈值,则继续执行依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分的步骤;该数组的长度是依赖于该数组中包含的数据的数量确定;
若该数组的长度小于预设阈值,则指定其中一个计算单元对所有数组进行聚合处理得到聚合结果,并将所述聚合结果发送至所述集群中各服务器。
本领域技术人员应当理解,上述根据数组的长度采用不同的处理方式针对于集群中的一次聚合任务,例如集群中包括4个服务器,接收4个服务器分别发送的数组并完成聚合计算后将聚合结果发送给该集群中的4个服务器,则属于一次聚合任务。由于在同一次聚合计算中每个服务器发送的数组的长度相同,因此在每次聚合计算时,根据第一个接收到的数组的长度与预设阈值的关系,确定是否对接收的数组中的数据执行划分的步骤。若第一个接收到的数组的长度大于或等于预设阈值,说明各数组的长度均大于或等于预设阈值,则对接收的数组中的数据进行划分的步骤。也就是说,对参与本次聚合的各服务器发送的数组执行相同的处理过程,即对各服务器发送的数组依据本网络设备中安装的N个计算单元进行划分。若第一个接收到的数组的长度小于预设阈值,说明各数组的长度均小于预设阈值,则指定其中一个计算单元进行聚合处理,即将各服务器发送的数组均发送至该指定的计算单元,由该指定的计算单元对所有数组进行聚合处理得到聚合结果,并将所述聚合结果发送至所述集群中各服务器。在数组的长度小于预设阈值的情况下,指定其中一个计算单元对所有数组进行聚合处理,可以节省划分子数组向各计算单元分配子数组以及合并各计算单元的聚合子结果的时间,提高效率。
在一种实施方式中,由于参与同一次聚合的各服务器发送的数组长度相同,因此可以在确定接收到的第一个数组的长度大于或等于预设阈值后,默认对该数组及后续接收的数组(即对接收到的所有数组)执行划分的步骤,即并不对所有服务器发送的数组的长度进行判断操作。在另一种实施方式中,可以判断接收到的每一数组的长度。
为了便于理解下述实施例将以图3为例对本发明进行说明。
1)如图3所示,由服务器a,服务器b,服务器c和服务器d组成计算集群进行分布式机器学习。
2)网络设备中包括一个处理单元和两个计算单元,其中两个计算单元为业务板卡a和业务板卡b,本实施例中通过业务板卡a和业务板卡b并行进行在网计算。
3)在分布式机器学习的过程中,经过一轮训练后,每个服务器都产生一组数据:服务器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)。
4)计算集群中的各服务器之间采用All-Reduce的通信模式进行通信。
5)每个服务器将待进行聚合的数组分别发送给网络设备。
服务器a将数组a(a1,a2,a3,a4,a5,a6,a7,a8)打包成报文发送给网络设备,服务器b将数组b(b1,b2,b3,b4,b5,b6,b7,b8)打包成报文发送给网络设备,服务器c将数组c(c1,c2,c3,c4,c5,c6,c7,c8)打包成报文发送给网络设备,服务器d将数组d(d1,d2,d3,d4,d5,d6,d7,d8)打包成报文发送给网络设备。
6)网络设备中的处理单元将接收到的每个服务器发送的原数组,按相同规则划分为两个子数组,并分配给业务板卡a和业务板卡b并行进行数据聚合。
按相同规则对各服务器发送的原数组进行划分后,分配给业务板卡a的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同,同理,分配给业务板卡b的不同子数组包含的数据的数量也相同,且包含的数据在原数组中的位置也相同。
示例的,可以采用等分的原则对各服务器发送的原数组进行划分,例如,将接收到的服务器a发送的原数组a划分为子数组(a1,a2,a3,a4)和子数组(a5,a6,a7,a8);将接收到的服务器b发送的原数组b划分为子数组(b1,b2,b3,b4)和子数组(b5,b6,b7,b8);将接收到的服务器c发送的原数组c划分为子数组(c1,c2,c3,c4)和子数组(c5,c6,c7,c8);将接收到的服务器d发送的原数组d划分为子数组(d1,d2,d3,d4)和子数组(d5,d6,d7,d8)。
将子数组(a1,a2,a3,a4)、(b1,b2,b3,b4)、(c1,c2,c3,c4)和(d1,d2,d3,d4)分配给业务板卡a,将子数组(a5,a6,a7,a8)、(b5,b6,b7,b8)、(c5,c6,c7,c8)和(d5,d6,d7,d8)分配给业务板卡b。
使业务板卡a对(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对(a5,a6,a7,a8),(b5,b6,b7,b8),(c5,c6,c7,c8)和(d5,d6,d7,d8)进行聚合,得到聚合子结果(s5,s6,s7,s8)。
7)网络设备中的处理单元依据各聚合子结果对应的位置,将获得的各聚合子结果合并为(s1,s2,s3,s4,s5,s6,s7,s8)并发送给集群中的各服务器。
8)每个服务器都得到网络设备聚合后的数据。
9)计算集群中的各服务器之间完成采用All-Reduce方式进行的数据聚合。
通过该示例可以看出,基于本发明提出的多个业务板卡并行进行在网计算的方法,可以解决单个芯片处理能力的限制,使服务器和网络设备之间通过大报文进行集群通信,减少服务器和网络设备之间的通信次数,从而减少通信时间,加速分布式机器学习和HPC分布式计算。
在图3中,控制器负责服务器和网络设备的协商,控制器确定组成计算集群的服务器并将集群信息发送至网络设备,如服务器的IP地址,服务器的节点ID,每次发送和接收的报文长度等,控制器将网络设备的信息发送至服务器,例如网络设备的IP地址,每次发送和接收的报文长度等。
在分布式机器学习中有多个任务,每个任务可以分配给多个服务器处理,也即是处理同一任务的多个服务器属于同一计算集群,在该计算集群中每一服务器具有唯一的ID信息,网络设备可以通过服务器的ID信息确定是否接收到该集群中所有服务器发送的待聚合的数组。
以上是对集群通信方法的说明,接下来对与前述方法对应的集群通信系统和装置进行详细说明。
如图4所示,图4是本发明根据一示例性实施例示出的一种集群通信装置,所述装置应用于网络设备,所述网络设备中安装有用于加速集群的分布式机器学习或分布式计算的N个计算单元,N大于1,所述集群包括M个服务器,所述M个服务器被分布式部署,且所述M个服务器均连接所述网络设备;所述装置包括:
接收模块401,用于接收所述集群中各服务器发送的待聚合的数组;
划分模块402;用于针对接收的每一数组,依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分,以得到每一计算单元对应的子数组;
分配模块403,用于针对每一子数组,将该子数组分配给该子数组对应的计算单元;同一计算单元被分配的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组;
合并模块404,用于获得各计算单元基于被分配的子数组进行数据聚合得到的聚合子结果;任一计算单元得到的聚合子结果对应该计算单元被分配的任一子数组中的数据在原数组中的位置;依据获得的各聚合子结果对应的位置,对获得的各聚合子结果进行合并得到聚合结果并发送至所述集群中的服务器。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
相应的,本发明还提供一种设备,所述设备包括有处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行如上述任一所述的方法。
图5是一示例性实施例提供的一种设备的示意结构图。请参考图5,在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。本发明一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本发明一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本发明还提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权上述任一所述方法的步骤。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本发明特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未申请的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1.一种集群通信方法,其特征在于,所述方法应用于网络设备,所述网络设备中安装有用于加速集群的分布式机器学习或分布式计算的N个计算单元,N大于1,所述集群包括M个服务器,所述M个服务器被分布式部署,且所述M个服务器均连接所述网络设备;所述方法包括:
接收所述集群中各服务器发送的待聚合的数组,所述各服务器发送的待聚合的数组中包含的数据的数量相同;
针对接收的每一数组,依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分,以得到每一计算单元对应的子数组;
针对每一子数组,将该子数组分配给该子数组对应的计算单元;同一计算单元被分配的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组;
获得各计算单元基于被分配的子数组进行数据聚合得到的聚合子结果;任一计算单元得到的聚合子结果对应该计算单元被分配的任一子数组中的数据在原数组中的位置;
依据获得的各聚合子结果对应的位置,对获得的各聚合子结果进行合并得到聚合结果并发送至所述集群中的服务器。
2.根据权利要求1所述的方法,其特征在于,所述N个计算单元的类型为业务板卡、CPU或FPGA中的至少一种。
3.根据权利要求1所述的方法,其特征在于,该方法之前进一步包括:与所述集群中各服务器协商各服务器与本网络设备进行通信所采用的目标报文长度;
所述接收所述集群中各服务器发送的待聚合的数组包括:
接收所述集群中各服务器按照被协商的目标报文长度发送的报文,所述报文携带待聚合的数组。
4.根据权利要求3所述的方法,其特征在于,所述与所述集群中各服务器协商各服务器与本网络设备进行通信所采用的目标报文长度包括:
向控制器发送本网络设备的网络设备标识以及本网络设备支持的第一报文长度,以使所述控制器确定出各服务器与所述网络设备进行通信所采用的目标报文长度;任一服务器与所述网络设备进行通信所采用的目标报文长度是基于所述第一报文长度和该服务器支持的第二报文长度确定;
接收所述控制器发送的集群信息,所述集群信息包括所述集群中各服务器的服务器标识,以及各服务器与所述网络设备进行通信所采用的目标报文长度。
5.根据权利要求1所述的方法,其特征在于,依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分之前,所述方法还包括:
若该数组的长度大于或等于预设阈值,则继续执行依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分的步骤;该数组的长度是依赖于该数组中包含的数据的数量确定;
若该数组的长度小于预设阈值,则指定其中一个计算单元对所有数组进行聚合处理得到聚合结果,并将所述聚合结果发送至所述集群中各服务器。
6.一种集群通信装置,其特征在于,所述装置应用于网络设备,所述网络设备中安装有用于加速集群的分布式机器学习或分布式计算的N个计算单元,N大于1,所述集群包括M个服务器,所述M个服务器被分布式部署,且所述M个服务器均连接所述网络设备;所述装置包括:
接收模块,用于接收所述集群中各服务器发送的待聚合的数组,所述各服务器发送的待聚合的数组中包含的数据的数量相同;
划分模块;用于针对接收的每一数组,依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分,以得到每一计算单元对应的子数组;
分配模块,用于针对每一子数组,将该子数组分配给该子数组对应的计算单元;同一计算单元被分配的不同子数组包含的数据的数量相同,且包含的数据在原数组中的位置相同;任一子数组中的数据的原数组是指该子数组所属的来自服务器发送的待聚合的数组;
合并模块,用于获得各计算单元基于被分配的子数组进行数据聚合得到的聚合子结果;任一计算单元得到的聚合子结果对应该计算单元被分配的任一子数组中的数据在原数组中的位置;依据获得的各聚合子结果对应的位置,对获得的各聚合子结果进行合并得到聚合结果并发送至所述集群中的服务器。
7.根据权利要求6所述的装置,其特征在于,所述N个计算单元的类型为业务板卡、CPU或FPGA中的至少一种。
8.根据权利要求6所述的装置,其特征在于,所述划分模块在依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分之前,还用于:
若该数组的长度大于或等于预设阈值,则继续执行依据本网络设备中安装的N个计算单元,对接收的该数组中的数据进行划分的步骤;该数组的长度是依赖于该数组中包含的数据的数量确定;
若该数组的长度小于预设阈值,则指定其中一个计算单元对所有数组进行聚合处理得到聚合结果,并将所述聚合结果发送至所述集群中各服务器。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5任一所述方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5任一所述方法的步骤。
CN202311237685.7A 2023-09-22 2023-09-22 一种集群通信方法、系统、装置、设备及介质 Active CN116980420B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311237685.7A CN116980420B (zh) 2023-09-22 2023-09-22 一种集群通信方法、系统、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311237685.7A CN116980420B (zh) 2023-09-22 2023-09-22 一种集群通信方法、系统、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN116980420A CN116980420A (zh) 2023-10-31
CN116980420B true CN116980420B (zh) 2023-12-15

Family

ID=88480011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311237685.7A Active CN116980420B (zh) 2023-09-22 2023-09-22 一种集群通信方法、系统、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN116980420B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107766148A (zh) * 2017-08-31 2018-03-06 北京百度网讯科技有限公司 一种异构集群及任务处理方法和装置
CN112286682A (zh) * 2020-10-27 2021-01-29 上海淇馥信息技术有限公司 基于分布式集群的机器学习任务处理方法、装置及设备
CN113645282A (zh) * 2021-07-29 2021-11-12 上海熠知电子科技有限公司 一种基于服务器集群的深度学习方法
WO2022116849A1 (zh) * 2020-12-01 2022-06-09 武汉绿色网络信息服务有限责任公司 服务分配方法、装置、电子设备及存储介质
CN115038125A (zh) * 2022-06-21 2022-09-09 美的集团股份有限公司 数据传输方法、装置、电子设备及存储介质
CN115250276A (zh) * 2021-04-27 2022-10-28 北京同邦卓益科技有限公司 分布式系统及数据处理的方法和装置
CN116760860A (zh) * 2023-06-14 2023-09-15 平安科技(深圳)有限公司 基于云计算的集群日志收集方法及相关设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229518B (zh) * 2016-03-26 2020-06-30 阿里巴巴集团控股有限公司 一种分布式集群训练方法和装置
CN108021982B (zh) * 2016-10-28 2021-12-28 北京市商汤科技开发有限公司 数据传输方法和系统、电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107766148A (zh) * 2017-08-31 2018-03-06 北京百度网讯科技有限公司 一种异构集群及任务处理方法和装置
CN112286682A (zh) * 2020-10-27 2021-01-29 上海淇馥信息技术有限公司 基于分布式集群的机器学习任务处理方法、装置及设备
WO2022116849A1 (zh) * 2020-12-01 2022-06-09 武汉绿色网络信息服务有限责任公司 服务分配方法、装置、电子设备及存储介质
CN115250276A (zh) * 2021-04-27 2022-10-28 北京同邦卓益科技有限公司 分布式系统及数据处理的方法和装置
CN113645282A (zh) * 2021-07-29 2021-11-12 上海熠知电子科技有限公司 一种基于服务器集群的深度学习方法
CN115038125A (zh) * 2022-06-21 2022-09-09 美的集团股份有限公司 数据传输方法、装置、电子设备及存储介质
CN116760860A (zh) * 2023-06-14 2023-09-15 平安科技(深圳)有限公司 基于云计算的集群日志收集方法及相关设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
M. Ersue, Ed. ; Nokia Networks ; D. Romascanu ; Avaya ; J. Schoenwaelder ; Jacobs University Bremen ; U. Herberg ; .Management of Networks with Constrained Devices: Problem Statement and Requirements.IETF .2015,全文. *
亢良伊 ; 王建飞 ; 刘杰 ; 叶丹.可扩展机器学习的并行与分布式优化算法综述.软件学报.2017,全文. *

Also Published As

Publication number Publication date
CN116980420A (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
US20230376347A1 (en) Task allocation method, apparatus, storage medium, and electronic device
CN106549878B (zh) 一种业务分流方法和装置
CN113098773B (zh) 数据处理方法、装置及系统
CN105264509A (zh) 融合网络中的自适应中断联合
JP2018515844A (ja) データ処理方法及びシステム
CN111431730B (zh) 一种业务处理方法、系统、计算机设备及可读介质
CN114281521A (zh) 优化深度学习异构资源通信效率方法、系统、设备及介质
CN113328953B (zh) 网络拥塞调整的方法、装置和存储介质
CN110875938A (zh) 一种区块链中信息的发送方法及装置
CN116980420B (zh) 一种集群通信方法、系统、装置、设备及介质
CN114116207A (zh) 流量控制方法、装置、设备及系统
CN110750363B (zh) 计算机存储管理方法和装置、电子设备和存储介质
CN116962176A (zh) 一种分布式集群的数据处理方法、装置、系统及存储介质
US11615287B2 (en) Processing computational models in parallel
CN113852554A (zh) 一种数据传输方法、装置及设备
CN116996516B (zh) 一种集群通信方法及装置、电子设备及可读存储介质
CN114003378B (zh) 容器集群负载均衡方法、装置、设备及存储介质
US20230075551A1 (en) Data transmission using data prioritization
CN114095356B (zh) 一种结点任务策略的实时配置方法及装置
CN111314189B (zh) 一种业务消息的发送方法及装置
CN116681973B (zh) 一种图像处理方法、装置、系统、设备及计算机存储介质
CN116436978B (zh) 面向云计算的内存分配方法、内存获取方法、装置和设备
CN113703826A (zh) 响应数据处理请求的方法、装置、设备以及存储介质
CN116244082A (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