CN117354370A - 面向分布式应用程序的通用网内同步聚合方法、系统及设备 - Google Patents
面向分布式应用程序的通用网内同步聚合方法、系统及设备 Download PDFInfo
- Publication number
- CN117354370A CN117354370A CN202311326990.3A CN202311326990A CN117354370A CN 117354370 A CN117354370 A CN 117354370A CN 202311326990 A CN202311326990 A CN 202311326990A CN 117354370 A CN117354370 A CN 117354370A
- Authority
- CN
- China
- Prior art keywords
- aggregation
- sequence
- data packet
- aggregator
- target task
- 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
- 238000004220 aggregation Methods 0.000 title claims abstract description 183
- 230000002776 aggregation Effects 0.000 title claims abstract description 183
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000002955 isolation Methods 0.000 claims abstract description 57
- 230000006870 function Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 12
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 230000004931 aggregating effect Effects 0.000 claims description 4
- 238000006116 polymerization reaction Methods 0.000 claims 1
- 239000003795 chemical substances by application Substances 0.000 description 19
- 238000010586 diagram Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 12
- 238000012544 monitoring process Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000008439 repair process Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 230000006872 improvement Effects 0.000 description 8
- 238000012549 training Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 241000837181 Andina Species 0.000 description 2
- 230000008713 feedback mechanism Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- 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/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- 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/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- 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/43—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- 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/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种面向分布式应用程序的通用网内同步聚合方法、系统及设备。所述方法包括:获取应用程序的聚合任务请求。根据聚合任务请求与预设的调度策略确定目标任务的聚合器资源与执行顺序,通过控制器为每一个聚合器资源分配隔离区域,并设置隔离区域对应的偏移量规则,将隔离区域与偏移量规则写入控制器的聚合表中,得到聚合规则。交换机根据执行顺序与聚合规则接收发送方发送的数据包序列,并将其定位至聚合表中,得到匹配的聚合器。通过聚合器将数据包序列进行合并,得到结果数据包,将结果数据包发送至接收方。采用本方法能够实现数据平面资源和路径的自动分配和运行时调度,并有效降低交换机的资源开销。
Description
技术领域
本申请涉及通用网内聚合技术领域,特别是涉及一种面向分布式应用程序的通用网内同步聚合方法、系统及设备。
背景技术
在可编程网络设备的推动下,提出了一种新的通信和计算范式,称为网内聚合(INA),并将INA应用于多种分布式系统,包括分布式训练(DT)、高性能计算(HPC)、分布式块存储和网络监控。INA将数据流的聚合工作卸载到交换机上,以减少业务量和整体作业完成时间。现有的原型已经显示了INA的性能提升,例如在DT作业中提升66%,在存储中提升2.7-6.8倍。
虽然INA已经在单个应用程序中证明了它的成功,但应用程序和INA功能的紧密耦合会导致诸如冗余开发、无法在运行时更新、潜在安全风险和资源利用效率低下等问题。这些问题阻碍了在开发、部署和操作中广泛采用INA,无法实现多个分布式应用程序并行复用。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低分布式应用程序并行复用时,降低交换机资源开销的面向分布式应用程序的通用网内同步聚合方法、系统及设备。
一种面向分布式应用程序的通用网内同步聚合方法,应用于分布式应用程序共享集群通用网络架构中,所述方法包括:
获取应用程序的聚合任务请求。
根据聚合任务请求与预设的调度策略确定目标任务的聚合器资源与目标任务的执行顺序,通过控制器为每一个聚合器资源分配隔离区域,并设置隔离区域对应的偏移量规则,将隔离区域与隔离区域对应的偏移量规则写入控制器的聚合表中,得到聚合规则。
交换机根据执行顺序与聚合规则接收目标任务的发送方发送的数据包序列,并将数据包序列定位至聚合表,得到数据包序列匹配的聚合器。
通过聚合器将数据包序列进行合并,得到结果数据包,将结果数据包发送至目标任务的接收方,接收方根据结果数据包回复ACK报文序列,并通过交换机组播同步回传至发送方。
在其中一个实施例中,还包括:分布式应用程序共享集群通用网络架构中,根据路由协议生成目标任务的发送方到接收方的通信路径,应用程序对应的服务器、控制器以及交换机根据通信路径形成聚合层次结构。多个应用程序发送聚合任务请求至本地代理,多个本地代理将聚合任务请求并行发送至控制器。
在其中一个实施例中,还包括:根据聚合任务请求与控制器预设的调度策略确定目标任务的聚合器资源与目标任务的执行顺序,控制器根据执行顺序为目标任务设置执行任务交换机。在执行任务交换机上,控制器为每一个聚合器资源分配隔离区域,并设置隔离区域的偏移量规则,将隔离区域与所述隔离区域对应的偏移量规则写入控制器的聚合表中,得到目标任务的聚合规则。
在其中一个实施例中,还包括:目标任务的发送方将目标任务数据块分成数据包序列,并在维护的窗口中发送数据包序列至交换机。
在其中一个实施例中,还包括:交换机根据执行顺序收目标任务的发送方发送的数据包序列,并根据数据包序列的序号与偏移量规则在聚合表上进行寻址定位:
Aggregator.index←packet.seq_num+Offset
其中,Aggregator.index为隔离区域的索引,packet.seq_num为数据包序列的序号,Offset为偏移量规则。获取数据包序列的序号对应的隔离区域内的聚合器。
在其中一个实施例中,还包括:通过聚合器合并相同报文序列号的数据包序列,得到结果数据包,将结果数据包发送至目标任务的接收方,接收方根据结果数据包回复报文ACK报文序列,ACK报文序列到达交换机时,根据目标任务的数量与聚合层次结构组成的交换机组清除每一个目标任务对应的聚合器,并回传ACK报文序列至目标任务对应的发送方。
在其中一个实施例中,聚合任务请求包括:目标任务ID、目标任务的发送方ID、目标任务的接收方ID、聚合函数以及聚合类型。聚合类型包括:Reduce与Allreduce。
在其中一个实施例中,还包括:若聚合类型为Reduce,则接收方将ACK报文序列重组为反馈消息,反馈消息作为聚合结果由控制器传输至发送方的本地代理。若聚合类型为Allreduce,则发送方将ACK报文序列的有效负载重组为反馈消息,反馈消息作为聚合结果由控制器传输至发送方的本地代理。本地代理通过IPC将聚合结果返回至启动目标任务的应用程序。
一种面向分布式应用程序的通用网内同步聚合系统,所述系统包括:
聚合任务请求获取模块,用于获取应用程序的聚合任务请求。
聚合规则获取模块,用于根据聚合任务请求与预设的调度策略确定目标任务的聚合器资源与目标任务的执行顺序,通过控制器为每一个聚合器资源分配隔离区域,并设置隔离区域对应的偏移量规则,将隔离区域与隔离区域对应的偏移量规则写入控制器的聚合表中,得到聚合规则。
聚合器匹配模块,用于交换机根据执行顺序与聚合规则接收目标任务的发送方发送的数据包序列,并将数据包序列定位至聚合表,得到数据包序列匹配的聚合器。
聚合模块,用于通过聚合器将数据包序列进行合并,得到结果数据包,将结果数据包发送至目标任务的接收方,接收方根据结果数据包回复ACK报文序列,并通过交换机组播同步回传至发送方。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取应用程序的聚合任务请求。
根据聚合任务请求与预设的调度策略确定目标任务的聚合器资源与目标任务的执行顺序,通过控制器为每一个聚合器资源分配隔离区域,并设置隔离区域对应的偏移量规则,将隔离区域与隔离区域对应的偏移量规则写入控制器的聚合表中,得到聚合规则。
交换机根据执行顺序与聚合规则接收目标任务的发送方发送的数据包序列,并将数据包序列定位至聚合表,得到数据包序列匹配的聚合器。
通过聚合器将数据包序列进行合并,得到结果数据包,将结果数据包发送至目标任务的接收方,接收方根据结果数据包回复ACK报文序列,并通过交换机组播同步回传至发送方。
上述面向分布式应用程序的通用网内同步聚合方法、装置、计算机设备和存储介质,首先获取应用程序的聚合任务请求,这表示它可以根据应用程序的需求进行动态调整和响应,以实现高效的数据聚合。使用预设的调度策略来确定目标任务的聚合器资源和执行顺序,这意味着它可以根据不同的策略来优化数据聚合,以满足不同应用场景的需求,通过控制器为每个聚合器资源分配隔离区域,并设置相应的偏移量规则,使得资源可以有效利用,以及对数据包的精确控制。交换机根据执行顺序和聚合规则来处理发送方发送的数据包序列,确保了数据包的正确路由和聚合,从而降低了资源开销。聚合器将数据包序列号进行合并,得到结果数据包,然后将其发送给目标任务的接收方。进一步高效地处理和合并数据,减少了通信开销。接收方根据结果数据包回复ACK报文序列,并通过交换机将它们组播回传给发送方,实现通信的可靠性和回馈机制。因此,通过动态的任务调度、数据包处理和合并,以及有效的资源管理和控制,解决了通信性能和资源开销的技术问题。由此提供了一种灵活的方法来满足不同应用程序的要求,同时减少了开发工作的复杂性,支持广泛的并发应用程序。
附图说明
图1为一个实施例中面向分布式应用程序的通用网内同步聚合方法的应用场景图;
图2为一个实施例中面向分布式应用程序的通用网内同步聚合方法的流程示意图;
图3为一个实施例中GISA接口代码;
图4为一个实施例中多层级通用网内同步聚合示意图;
图5为一个实施例中GISA报文结构图;
图6为一个实施例中交换机聚合器布局图;
图7为一个实施例中使用7个源节点和1个目标节点时的聚合性能图;
图8为一个实施例中不同丢包率设置下的吞吐量图;
图9为一个实施例中不同源节点和并发任务数量设置下的性能图,其中,图9(a)为不同源节点数量下的吞吐量性能,图9(b)为处理多个并发任务的性能;
图10为一个实施例中单任务开销图,其中图10(a)为聚合任务所需的交换机状态开销,图10(b)为整个网络的流量开销;
图11为一个实施例中不同分布式训练模型中的吞吐量图,其中,图11(a)为VGG16模型下的吞吐量,图11(b)为AlexNet模型下的吞吐量,图11(c)为ResNet50模型下的吞吐量;
图12为一个实施例中在纠删码存储系统中的性能图,其中,图12(a)为修复时间,图12(b)为网络流量开销;
图13为一个实施例中在网络测量应用中的性能图,其中,图13(a)为从不同数量的监控节点的CMS的完成时间,图13(b)为CMS大小对传输完成时间的影响;
图14为一个实施例中面向分布式应用程序的通用网内同步聚合系统的结构框图;
图15为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的面向分布式应用程序的通用网内同步聚合方法,可以应用于如图1所示的分布式应用程序共享集群通用网络架构(即Generic In-network SynchronousAggregation,GISA)中。该GISA网络架构包括:应用平面、控制平面与数据平面,其中,应用平面由多个服务器组成,图1中示例以3个服务器(服务器1、服务器2、服务器3)做简要实例说明,每一个服务器所在域内加载多个应用程序,不同服务器中的应用程序之间的数据信息交互方式为分布式。控制平面由控制器组成,可以部署在当前网络中任意一台服务器上,控制器负责决定任务执行顺序,为任务分配聚合器资源,并安装路由规则。数据平面在每一个服务器的本地域内部署一个GISA代理服务器,使其与应用程序通过进程间通信(IPC)交换消息。
在一个实施例中,如图2所示,提供了一种面向分布式应用程序的通用网内同步聚合方法,以该方法应用于图1中的分布式应用程序共享集群通用网络架构为例进行说明,包括以下步骤:
步骤202,获取应用程序的聚合任务请求。
聚合请求指定以下信息:任务ID、发送方ID、接收方ID和其他配置(例如,聚合类型:Reduce或AllReduce)。
具体的,通用网内聚合操作启动时,GISA启动集群中的控制器,并将代理作为每个服务器上的守护进程启动。每个代理都与控制器建立一个通信通道,并为每个代理分配一个与其主机MAC地址相关联的ID,用于路由。当应用程序需要执行聚合器操作时,每个端点向其本地代理提交请求。
进一步地,应用程序将聚合类型的(Reduce或AllReduce)操作卸载到GISA,每个操作都有多个发送方和一个接收方。在网络中,路由协议将生成从一个发送方到接收方的路径,所有路径在拓扑结构中形成树状结构,即聚合层次结构。
进一步地,代理将请求传递给控制器,控制器可以接收多个聚合任务请求。
步骤204,根据聚合任务请求与预设的调度策略确定目标任务的聚合器资源与目标任务的执行顺序,通过控制器为每一个聚合器资源分配隔离区域,并设置隔离区域对应的偏移量规则,将隔离区域与隔离区域对应的偏移量规则写入控制器的聚合表中,得到聚合规则。
具体的,控制器根据调度策略(例如,先到先服务)选择“所有端点都准备就绪”的目标任务,调度策略需要决定任务的执行顺序和分配给每个目标任务的聚合器资源。
进一步地,首先控制配置任务层次结构上的执行任务交换机,在每个执行任务交换机上,控制器在Aggregator Table(聚合表)中保留一个隔离的区域,并安装带有该区域偏移量的规则,将任务的流量定向到该区域。然后,控制器通知所有端点开始聚合操作,例如,发送方向网络传输数据包,接收方获得结果。
进一步地,GISA选择任意服务器作为中央控制器,当有多个目标任务时,它们可以在资源分配上进行协调,且当它的所有端点都准备就绪时,目标任务的发送方才能开始向聚合器传输数据包;否则,由于缺少一些发送方,聚合将永远不会完成。
步骤206,交换机根据执行顺序与聚合规则接收目标任务的发送方发送的数据包序列,并将数据包序列定位至聚合表,得到数据包序列匹配的聚合器。
具体的,在每个目标任务中,每个发送方将其数据块分成一个数据包序列,并且所有发送方都使用相同的序列号进行初始化。发送方维护一个窗口,并始终在该窗口中发送数据包。
进一步地,交换机根据执行顺序(例如,先到先服务)对数据包序列进行聚合,当数据包到达交换机时,它被定位到目标任务对应的隔离区域中的聚合器。寻址方法是将数据包序列号加到偏移量上,即:
Aggregator.index←packet.seq_num+Offset
其中,Aggregator.index为隔离区域的索引,packet.seq_num为数据包序列的序号,Offset为偏移量规则。
进一步地,序列号在与隔离区域大小相同的范围内是圆形的,因此数据包不会进行越界访问。聚合器初始化为EMPTY,并累积每个数据包,它还维护一个PortBitmap来记录其子节点的参与情况。在累积每个数据包后,如果位图不满,则由于聚合未完成而丢弃该数据包;如果位图已满,则将聚合器值复制回数据包,数据包将结果沿其路由传递给下游设备。
进一步地,GISA在主机上设计重传机制,在交换机上设计重复数据删除机制,当发送方在它的滑动窗口中发送数据包,它还维护数据包的发送时间戳,如果数据包的ACK未在超时阈值内到达,则数据包将被重传。重传重复三次,对于不同步窗口的特殊情况,发送方发送带有特殊标志的数据包以绕过交换机聚合并直接从接收方获取结果。
进一步地,每个数据包的第一次出现将被记录在位图中(其位设置为1),并且可以识别其后来的出现,这些包将不再被计算。交换机只对汇聚报文进行重复数据删除,不对转发报文进行重复数据删除。也就是说,在上述步骤之后,如果位图不满,数据包将被丢弃;否则,报文将携带聚合器的内容到下游设备。
步骤208,通过聚合器将数据包序列进行合并,得到结果数据包,将结果数据包发送至目标任务的接收方,接收方根据结果数据包回复ACK报文序列,并通过交换机组播同步回传至发送方。
具体的,交换机合并了具有相同序列号的所有发送方数据包得到结果数据包,目标任务的接收方接收到聚合的结果数据包,并将具有相同报文序列号的ACK报文回复给发送方。如果聚合类型操作为Reduce,则ACK没有负载;否则聚合类型操作为AllReduce,则ACK报文将附带结果。当ACK报文与数据包到达交换机时,它会清除其聚合器,交换机沿着聚合层次结构将ACK报文组播发送给发送方。每个发送方收到ACK报文后,将滑动窗口向前移动,并在窗口中继续发送新的报文。
上述面向分布式应用程序的通用网内同步聚合方法中,首先获取应用程序的聚合任务请求,这表示它可以根据应用程序的需求进行动态调整和响应,以实现高效的数据聚合。使用预设的调度策略来确定目标任务的聚合器资源和执行顺序,这意味着它可以根据不同的策略来优化数据聚合,以满足不同应用场景的需求,通过控制器为每个聚合器资源分配隔离区域,并设置相应的偏移量规则,使得资源可以有效利用,以及对数据包的精确控制。交换机根据执行顺序和聚合规则来处理发送方发送的数据包序列,确保了数据包的正确路由和聚合,从而降低了资源开销。聚合器将数据包序列号进行合并,得到结果数据包,然后将其发送给目标任务的接收方。进一步高效地处理和合并数据,减少了通信开销。接收方根据结果数据包回复ACK报文序列,并通过交换机将它们组播回传给发送方,实现通信的可靠性和回馈机制。因此,通过动态的任务调度、数据包处理和合并,以及有效的资源管理和控制,解决了通信性能和资源开销的技术问题。由此提供了一种灵活的方法来满足不同应用程序的要求,同时减少了开发工作的复杂性,支持广泛的并发应用程序。
在其中一个实施例中,分布式应用程序共享集群通用网络架构中,根据路由协议生成目标任务的发送方到接收方的通信路径,应用程序对应的服务器、控制器以及交换机根据通信路径形成聚合层次结构。多个应用程序发送聚合任务请求至本地代理,多个本地代理将聚合任务请求并行发送至控制器。
值得说明的是,没有使用标量值作为序列元素,而是将每个数据流描述为“多集序列”,“多集”数据表示可以丰富通用网内同步聚合的聚合语义。如果用户要求计算多个向量的“平均值”,将每个向量元素值转换为一个多集(value,1),交换机通过将两个维度分别相加来聚合多集,接收器通过将第一个值除以第二个值来计算平均值。
使用符号Di来表示来自发送节点i的数据流。Di进一步表示为:
Di=<Vi,1,Vi,2,Vi,3,…,Vi,k>
其中,k为序列长度,Vi,j,1≤j≤k为一个多集。来自n个发送节点的序列的聚合结果D*也是一个多集序列,可以表示为
其中,1≤j≤k,符号表示标准的多集相加。
进一步地,如图3所示的应用程序的接口。应用程序初始化一个任务并调用init(),它通知控制器分配交换机资源并为自己分配一个任务ID。在运行时,应用程序调用request()将数据提交给GISA代理,其中的数据包含multiset及其格式。request()还指定了对multiset的操作、端点的角色(发送方/接收方)和聚合模式(Reduce或AllReduce)。如果模式为Reduce,发送端返回成功/失败,接收端返回结果;如果模式为AllReduce,则发送端返回结果,接收端返回成功/失败。
在其中一个实施例中,根据聚合任务请求与控制器预设的调度策略确定目标任务的聚合器资源与目标任务的执行顺序,控制器根据执行顺序为目标任务设置执行任务交换机。在执行任务交换机上,控制器为每一个聚合器资源分配隔离区域,并设置隔离区域的偏移量规则,将隔离区域与所述隔离区域对应的偏移量规则写入控制器的聚合表中,得到目标任务的聚合规则。
在其中一个实施例中,目标任务的发送方将目标任务数据块分成数据包序列,并在维护的窗口中发送数据包序列至交换机。
在其中一个实施例中,交换机根据执行顺序收目标任务的发送方发送的数据包序列,并根据数据包序列的序号与偏移量规则在聚合表上进行寻址定位:
Aggregator.index←packet.seq_num+Offset
其中,Aggregator.index为隔离区域的索引,packet.seq_num为数据包序列的序号,Offset为偏移量规则。获取数据包序列的序号对应的隔离区域内的聚合器。
在其中一个实施例中,通过聚合器合并相同报文序列号的数据包序列,得到结果数据包,将结果数据包发送至目标任务的接收方,接收方根据结果数据包回复报文ACK报文序列,ACK报文序列到达交换机时,根据目标任务的数量与聚合层次结构组成的交换机组清除每一个目标任务对应的聚合器,并回传ACK报文序列至目标任务对应的发送方。
在其中一个实施例中,聚合任务请求包括:目标任务ID、目标任务的发送方ID、目标任务的接收方ID、聚合函数以及聚合类型。聚合类型包括:Reduce与Allreduce。
值得说明的是,执行任务交换机根据接收到的聚合函数与聚合类型执行聚合操作,若聚合函数为可自分解聚合函数,则交换机执行网内聚合;若聚合函数满足可以可分解聚合函数,则通过拆解出一个可自分解聚合函数,交换机再执行网内聚合。具体情况如下:
1)、聚合函数f是一个可自分解聚合函数,如果f满足对于某些合并算子◇和所有非空多集X和Y,其中符号/>表示标准多集和。
操作和◇都满足交换律和结合律,计算多个多集/>可以被递归地分解,任意分解顺序都会产生相同的最终结果。
以分布式训练为例,这种情况下的多集退化为标量值,梯度聚合涉及SUM函数对来自不同工作节点地梯度数据进行聚合,函数SUM是可自分解的聚合函数,即:
可自分解函数还包括MIN、MAX、XOR、COUNT等,可用于各种系统。可自分解函数可以单独在交换机上执行,而无需终端主机的帮助。
2)、如果聚合函数f为可分解函数g和可自分解的聚合函数h,那么f为可分解的聚合函数,其中
GISA在交换机上执行h,在接收方上执行g。其中AVERAGE向量可以形式化如下
h(X)=(x,1)
g(a,b)=a/b
其中,算子+是两个不同维度上pairs的标准点和,即(x1,y1)+(x2,y2)=(x1+x2,y1+y2)。
可分解聚合函数(但不是可自分解聚合函数)的另一个实施例是RANGE函数,它用于给出统计集中最大值和最小值之间的差值,可以分解为类似于上面的形式,一样可以作为本方法的聚合函数。
由此可见,在路径上的交换机上按照聚合函数就可以执行聚合操作,当多个链路的数据到达同一个交换机时,交换机就聚合它们,然后发送聚合后的结果到下一节点。以此类推,能够有效避免incast传输问题和出端口的拥塞。
在其中一个实施例中,若聚合类型为Reduce,则接收方将ACK报文序列重组为反馈消息,反馈消息作为聚合结果由控制器传输至发送方的本地代理。若聚合类型为Allreduce,则发送方将ACK报文序列的有效负载重组为反馈消息,反馈消息作为聚合结果由控制器传输至发送方的本地代理。本地代理通过IPC将聚合结果返回至启动目标任务的应用程序。
值得说明的是,本方法的调度策略采用简单的先到先得(FCFS)方式来处理并发任务。当控制器决定是否执行任务时,它将检查任务聚合层次结构中的所有交换机。如果任何交换机没有足够且N个连续的聚合器,则该任务将被挂起并等待可用资源。如果所有交换机都有N个连续的聚合器,并且控制器决定执行它,则为该任务分配这些聚合器(区域表示为Offset)。控制器在交换机上安装交换机规则,指定任务的流量定向到该区域。
进一步地,在运行时,数据包根据任务ID匹配到一个区域,并按(region_Offset+seq_num)映射到该区域内的一个聚合器,如果是数据包,则进行聚合处理;否则,如果是ACK报文,则清除聚合器。任务完成后,任务代理通知控制器。控制器通过从涉及的交换机中删除相应的规则来回收分配的聚合器。然后可以通过发布新规则将这些空闲的聚合器重新分配给其他任务。
此过程不需要重新编译数据平面,因为交换机内存聚合器表没有更改。只有当管理员打算扩展或缩小交换机上的聚合器资源时,例如增加聚合器的数量以支持更多任务或更高的聚合吞吐量,或者添加新的聚合功能,交换机才需要重新编译。
另外,聚合器区域大小N也会影响主机上的两个配置。序号范围应为[0,N-1];如果消息的分组序列长于N,则分组将循环使用序列号范围。发送方的滑动窗口应该限制在不超过N。这两种配置确保在一个序列中没有两个不同的数据包被传递并映射到相同的聚合器并错误地聚合。
由此可见,与现有的INA解决方案相比,本方法在三个方面更具通用性。首先,它与应用程序解耦,并支持多个应用程序进行多路复用。其次,接口(图3)是通用的,以支持更多的数据格式和操作。第三,它的部署不需要对网络拓扑进行假设,汇聚功能可以在拓扑中的任何交换机上进行。
在其中一个实施例中,如图4所示一个多层级同步聚合的例子,其中服务器H1、H2、H4和H5作为源节点,服务器H6作为目的节点。实线箭头表示数据包的方向,虚线箭头表示各种丢包场景。如果来自H2的数据包丢失(图中的场景1),H2将重新传输该数据包以补充丢失的数据。重传重复三次,这意味着不同步窗口的特殊情况,比如,H2处的丢失会导致H1未收到ACK,重传其数据包,发送方发送带有特殊标志的数据包以绕过交换机聚合并直接从接收方获取结果。另外,如果从S1到S5的聚合数据包丢失,H1、H2和H4都没有收到ACK并重传数据包,这些数据包将触发S1将之前的聚合结果再次发送给S5。
由于存在部分ACK数据包丢失的复杂情况,本方法还提供了对窗口不同步的改进,如果发送方仍未收到ACK,则重试三次,发送一个特殊的数据包(带有特殊的FRD标志);特殊数据包是单播的:它绕过所有交换机的聚合逻辑,到达接收方,并触发接收方回复一个单播ACK(在AllReduce的情况下,ACK承载结果)。单播ACK将有损发送方的窗口与其他窗口同步,以此解决有损发送器被卡住的问题。
进一步地,由于数据包序列号在一定范围内是循环的,因此旧数据包(来自有损发送方)和新数据包(来自无损发送方)可能被映射到同一个聚合器并被错误聚合。本方法将窗口大小限制在小于聚合区域的一半,这样旧的和新的数据包就不会重叠,将窗口大小减半可能导致吞吐量减半,会造成资源浪费严重。
进一步地,为交换机聚合器增加了一个1比特的指示器,用于区分新旧报文。数据包序列被分成几批,每批包含与聚合器区间N相同数量的数据包,有奇数批次,也有偶数批次。数据包还在报头中携带其奇偶校验(表示为VER,0表示偶数,1表示奇数)。每个聚合器还添加一个VER字段,以检查聚合器的值是否与数据包在同一批处理中。有了VER字段,交换机聚合逻辑变为如下:当数据包到达时,如果聚合器为空(由PortBitmap标识),则聚合器接受数据包;如果聚合器匹配数据包的VER字段,则聚合器处理数据包;否则,聚合器和数据包的VER字段不匹配,数据包将被丢弃。当一个ACK数据包到达时,如果它的VER与聚合器的匹配,则清除聚合器;否则,不清除聚合器。由此解决了聚合器可能会聚合错误的数据包的问题。
进一步地,本方法在数据包中添加了一个RST标志,重传的数据包设置了这个位,如果一个RST包到达一个空的聚合器,它将被直接丢弃;否则,遵循正常报文的处理逻辑。由此解决了重传的数据包可能导致交换机内存泄漏的问题。
值得说明的是,对数据包采用源路由,不需要用新的规则来干扰已有的路由问题。在初始化过程中,交换机计算聚合层次结构中从一个发送方到接收方的每条路径,并将其中一条路径转换为该路径上的交换机输出端口。控制器将路径通知每个发送方代理(以交换机输出端口列表的格式)。
在运行时,每个数据包在其报头中编码路径的输出端口列表。在交换机的每一跳中,交换机根据列表头发送数据包,并弹出列表头。注意,当多个数据包聚合为一个时,它们的输出端口列表不会被错误地合并,因为它们在当前交换后的跳表是相同的。
针对ACK报文的路由学习。在聚合器中重用PortBitmap进行ACK路由,将PortBitmap配置为与交换机端口数量相同的位数,并进一步将PortBitmap中的每个位与一个交换机端口关联。因此,位图中的比特1不仅可以指示数据包到达子节点,还可以指示数据包来自哪个交换机物理端口。
在运行时,当数据包在PortBitmap中设置其位时,它的传入交换机端口也被学习。当它的ACK数据包到达时,它的聚合器的PortBitmap被获取;交换机找到所有的输出端口,并将ACK数据包复制到它们。然后,交换机将聚合器PortBitmap的所有位初始化为0,并等待下一批数据包或其他任务来重用它。
由此可见,“位图满”并不意味着它都是1,而是意味着位图中1的数量等于包头中的CN值。
在其中一个实施例中,如图4、图5所示,设计使用FPGA器件来代表网络交换机,它实现了数据包转发逻辑和GISA的INA逻辑。在实现中,代理建立在DPDK之上,有1200行c++代码,控制器有800行c++代码,交换机有1300行Verilog代码。其中,图4显示了数据包的格式。GISA通过替换TCP/IP报头和使GISA报头压缩来最小化包报头开销。GISA报头包含TaskID、SN(序列号)、ACK、VER、ECN、RST、FRD等字段,这些字段在前面的章节中已经说明过。ERR用于记录聚合操作过程中发生的错误,例如加法溢出。FIN用于表示传输序列中的最后一个数据包。PLD指定ACK包是否应该携带结果(对于AllReduce)。OP和CN的HOP和元组用于源路由,其中HOP表示剩余跳数,OP表示输出交换机端口,CN表示当前交换机的扇入度,即子节点数。Packet Payload可以根据应用对多集进行格式编码,GISA安装切换规则来指定其解析方法和对其进行的聚合操作。图5展示了聚合器的数据结构,其中包含设计中指定的PortBitmap、VER、ECN、ERR和Payload。
在其中一个实施例中,基于FPGA的测试平台上实现GISA,以评估其在各种分布式应用程序中的性能和优势。测试平台包括5个Intel Arria 10FPGA器件和9个工作站。将5个FPGA设备连接到二层网络中:每个设备有4个10GbE端口,一个设备作为骨干交换机,四个设备作为叶交换机,骨干交换机与每个叶交换机通过一条物理链路连接。所有FPGA器件均安装在Intel Xeon Platinum8124M CPU、128GB RAM、500GB SSD的工作站上,作为GISA控制器。然后,我们通过物理链路将剩下的8个工作站中的每一个连接到叶式交换机,其中每个叶式交换机连接两个工作站。这些工作站运行GISA代理,配备英特尔酷睿i9-13900K CPU,64GB RAM,500GB SSD,NVIDIA GeForce RTX 2080Ti GPU和英特尔82599 10GbE网卡,所有工作站都运行Ubuntu 20.04.6和内核5.15.0-76。
1)、吞吐量和延迟:如图7所示,在每个FPGA设备上为GISA预编译512个聚合器,每个聚合器的最大数据包有效载荷容量为1024字节。图6描述了增加聚合器的数量可以获得更高的GISA吞吐量。这是因为更多的聚合器允许源节点向网络注入更多的数据包,从而减少网络空闲时间。然而,当吞吐量接近硬件的性能限制时,分配更多的聚合器只会带来边际效用。例如,对于1024字节的负载,吞吐量停止其线性增长,当超过192个聚合器加入时,其峰值为10.02Gbps。原因是限制吞吐量的瓶颈从传输中的数据包转换为硬件处理能力。因此,向网络中注入更多的数据包并不能进一步提高吞吐量,反而会导致更多的丢包。
2)、可靠性:丢包率对吞吐量的影响如图8所示,其中有7个源节点和1个目的节点。报文在每个节点的输入口按指定的概率随机丢弃。由于丢包迫使GISA减小其发送窗口的大小,丢包率的增加将略微降低其吞吐量。GISA的吞吐量从9.8Gbps逐渐下降到7.0Gbps左右,随着丢包率从0%增加到1%,而单播丢包率始终在1.8Gbps以下。此外,GISA可以通过触发超时重传逻辑来防止聚合任务中断。因此,即使在不可靠的网络环境中,它也能保持比单播方法明显的优势。
3)、多源和多任务:GISA的一个主要优势是它能够以线速率传输数据,而不考虑源节点的数量。图9(a)给出了不同源节点数量下的吞吐量性能。具体来说,GISA使用INA传输数据,确保在传输路径上的所有链路上传输相同数量的数据。因此,GISA的吞吐量不会受到交通交叉口的影响,同时仍然保持其最大线路速率。相比之下,单播的吞吐量随着源节点数量的增加而迅速下降。这证实了与传统传输方法相比,GISA可以提供实质性的好处,特别是在处理大规模通信组时。
图9(b)展示了GISA处理多个并发任务的性能,其中任务数量从1到4不等,并且在这些任务之间均匀分配聚合器。每次传输涉及从7个源节点到一个目标节点的100MB数据。与单播通信方式相比,GISA大大缩短了任务完成时间。值得注意的是,GISA还支持基于智能调度策略的聚合器分配,这对于具有各种QoS需求(如截止日期)的应用程序至关重要。我们未来的工作包括探索GISA的调度策略。
4)、开销:此外,模拟了1024台主机的胖树拓扑,这有助于评估大规模网络中GISA的路由开销。图10(a)说明了聚合任务所需的交换机状态开销。GISA-naive方法依靠转发规则确定数据包路由,随着源节点数量的增加,交换机状态显著增加。为了构建传输路径,它发布了大量路由规则来指定每个数据包的下一跳。相比之下,GISA优化方法可以利用聚合器中的PortBitmap字段来指导ACK数据包的输出端口,并利用源路由进行数据包转发。因此,它可以显著降低交换机状态消耗。具体来说,当源节点有640个时,GISA优化后的交换机上的表项数比GISA未优化时减少了6.4倍。
GISA的另一个显著优势在于其减少流量的能力。通过改变源节点的数量来评估整个网络的流量开销,其中每个源节点传输100MB的数据。结果如图10(b)所示。与单播相比,GISA利用交换机聚合传输路径上的相关流量,5个源节点时流量减少高达69.3%,640个源节点时流量减少高达3.78倍。这突出了GISA显著减轻网络流量的潜力,这可以使涉及大量通信节点的应用程序受益。
5)、分布式训练:选择了三个典型的训练模型来评估GISA在DT应用中的性能,验证了其通用性。结果如图11所示,在VGG16和AlexNet模型中(图11(a)和图11(b)),单播通信模式随着工作节点数量的增加而表现出显著的性能下降。通过在叶子交换机上聚合梯度数据,ATP可以获得比单播更高的吞吐量,但它不利用主干交换机进一步聚合梯度数据。由于脊柱交换机处的阻塞,这导致ATP的训练吞吐量下降。相比之下,GISA可以利用传输路径上的每个层交换机有效地聚合数据。因此,随着工作节点数量的增加,GISA的培训吞吐量几乎不受影响。具体来说,在AlexNet模型中(图11(b)),与ATP相比,GISA的吞吐量提高了27.3%,当涉及7名工作节点时,比单播提高了83.6%。
在ResNet50(图11(c))中,这些方法之间的性能差距不太明显,因为该模型是计算密集型的。因此,很难像GISA那样通过网络通信的优化来获得显著的训练性能提升。
6)、分布式存储:要修复纠删编码存储系统中的一个故障块,传统的方法是在网络上检索多个相关块,在一个修复节点上恢复故障块。然而,这种方法往往会导致修复节点的入链路拥塞,从而导致降级读取的高延迟。修复时间随着RS(k,m)的编码参数k的增加而增加。为了解决这个问题,最先进的维修流水线(RP)方法对离散块进行了转换,将操作分层为子块上并发的子操作,从而有效地避免了因铸态传输造成的拥塞。GISA可以达到与RP相当甚至更高的性能,如图12(a)所示,主要是由于交换机可以以线路速率处理数据包,因此吞吐量高于在主机上执行的聚合。
尽管RP可以缓解拥塞并减少修复时间,但它的一个显著缺点是仍然受到高流量的影响。我们在具有1024台主机的模拟胖树网络中进一步评估了这一开销,并使用更多块(如RS(9,3)和RS(12,4))评估了编码参数。结果如图12(b)所示,随着编码参数k值的增大,修复一个失效块所需的块数也会增加,从而导致流量的大幅增加。然而,GISA可以通过聚合网络中的编码块来有效地缓解这个问题,当k=12时,RP修复一个故障块需要8.01GB的网络流量,而GISA只需要4.39GB,交通量减少高达45.19%。
7)、网络监控:基于草图的网络监控是近年来的一个突出研究领域,其结构也适合同步聚合。通过使用MAX操作,我们可以聚合从各个监控节点获得的CMS,并随后将聚合的数据传输到收集器。然而,在集群规模相当大的场景中,流量的大幅激增会导致收集这些结果所需的传输时间更长,如图13(a)所示的单播方法。高流量还会严重影响其他网络运营和业务。
GISA可以有效地减少流量,同时降低CMS的采集延迟。图13(a)示出了从不同数量的监控节点收集CMS的完成时间。值得注意的是,随着监视节点数量的增加,单播通信模式的传输完成时间显著增加。相比之下,GISA几乎不受影响,其完成时间保持相对稳定。这表明GISA可以很好地服务于大规模分布式集群中的监控任务。
图13(b)进一步展示了在有7个监测节点时,CMS大小对传输完成时间的影响。当CMS的大小从2MB增加到16MB时,GISA的完成时间只是略有增加,而GISA和Unicast的完成时间差距增加了近9.07倍。这两个图验证了GISA在处理更多节点和更大CMS规模的监控任务方面的优势更加深刻。
综上所述,即使在大型网络中,GISA的吞吐量也能保持其最大的线路速率(约10Gbps),与Unicast相比,业务量可以显著降低约3.78倍。此外,GISA适用于各种应用场景,与最先进的方法相比,可以在可接受的系统开销下实现性能加速。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图14所示,提供了一种面向分布式应用程序的通用网内同步聚合系统,包括:聚合任务请求获取模块1402、聚合规则获取模块1404、聚合器匹配模块1406和聚合模块1408,其中:
聚合任务请求获取模块1402,用于获取应用程序的聚合任务请求。
聚合规则获取模块1404,用于根据聚合任务请求与预设的调度策略确定目标任务的聚合器资源与目标任务的执行顺序,通过控制器为每一个聚合器资源分配隔离区域,并设置隔离区域对应的偏移量规则,将隔离区域与隔离区域对应的偏移量规则写入控制器的聚合表中,得到聚合规则。
聚合器匹配模块1406,用于交换机根据执行顺序与聚合规则接收目标任务的发送方发送的数据包序列,并将数据包序列定位至聚合表,得到数据包序列匹配的聚合器。
聚合模块1408,用于通过聚合器将数据包序列进行合并,得到结果数据包,将结果数据包发送至目标任务的接收方,接收方根据结果数据包回复ACK报文序列,并通过交换机组播同步回传至发送方。
关于面向分布式应用程序的通用网内同步聚合系统的具体限定可以参见上文中对于面向分布式应用程序的通用网内同步聚合方法的限定,在此不再赘述。上述面向分布式应用程序的通用网内同步聚合系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图15所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种面向分布式应用程序的通用网内同步聚合方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图14-图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取应用程序的聚合任务请求。
根据聚合任务请求与预设的调度策略确定目标任务的聚合器资源与目标任务的执行顺序,通过控制器为每一个聚合器资源分配隔离区域,并设置隔离区域对应的偏移量规则,将隔离区域与隔离区域对应的偏移量规则写入控制器的聚合表中,得到聚合规则。
交换机根据执行顺序与聚合规则接收目标任务的发送方发送的数据包序列,并将数据包序列定位至聚合表,得到数据包序列匹配的聚合器。
通过聚合器将数据包序列进行合并,得到结果数据包,将结果数据包发送至目标任务的接收方,接收方根据结果数据包回复ACK报文序列,并通过交换机组播同步回传至发送方。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种面向分布式应用程序的通用网内同步聚合方法,其特征在于,应用于分布式应用程序共享集群通用网络架构中;所述方法包括:
获取应用程序的聚合任务请求;
根据所述聚合任务请求与预设的调度策略确定目标任务的聚合器资源与所述目标任务的执行顺序,通过控制器为每一个聚合器资源分配隔离区域,并设置所述隔离区域对应的偏移量规则,将所述隔离区域与所述隔离区域对应的所述偏移量规则写入所述控制器的聚合表中,得到聚合规则;
交换机根据所述执行顺序与所述聚合规则接收所述目标任务的发送方发送的数据包序列,并将所述数据包序列定位至所述聚合表,得到所述数据包序列匹配的聚合器;
通过所述聚合器将所述数据包序列进行合并,得到结果数据包,将所述结果数据包发送至所述目标任务的接收方,所述接收方根据所述结果数据包回复ACK报文序列,并通过交换机组播同步回传至所述发送方。
2.根据权利要求1所述的方法,其特征在于,在获取应用程序的聚合任务请求的步骤之前,还包括:
分布式应用程序共享集群通用网络架构中,根据路由协议生成目标任务的发送方到接收方的通信路径,所述应用程序对应的服务器、所述控制器以及所述交换机根据所述通信路径形成聚合层次结构;
多个应用程序发送聚合任务请求至本地代理,多个所述本地代理将所述聚合任务请求并行发送至所述控制器。
3.根据权利要求2所述的方法,其特征在于,根据所述聚合任务请求与预设的调度策略确定目标任务的聚合器资源与所述目标任务的执行顺序,通过控制器为每一个聚合器资源分配隔离区域,并设置所述隔离区域对应的偏移量规则,将所述隔离区域与所述隔离区域对应的所述偏移量规则写入所述控制器的聚合表中,得到聚合规则,包括:
根据所述聚合任务请求与控制器预设的调度策略确定目标任务的聚合器资源与所述目标任务的执行顺序,所述控制器根据所述执行顺序为所述目标任务设置执行任务交换机;在所述执行任务交换机上,所述控制器为每一个聚合器资源分配隔离区域,并设置所述隔离区域的偏移量规则,将所述隔离区域与所述隔离区域对应的所述偏移量规则写入所述控制器的聚合表中,得到所述目标任务的聚合规则。
4.根据权利要求3所述的方法,其特征在于,在交换机根据所述执行顺序与所述聚合规则接收所述目标任务的发送方发送的数据包序列,并将所述数据包序列定位至所述聚合表,得到所述数据包序列匹配的聚合器的步骤之前,还包括:
所述目标任务的发送方将目标任务数据块分成数据包序列,并在维护的窗口中发送所述数据包序列至交换机。
5.根据权利要求4所述的方法,其特征在于,交换机根据所述执行顺序与所述聚合规则接收所述目标任务的发送方发送的数据包序列,并将所述数据包序列定位至所述聚合表,得到所述数据包序列匹配的聚合器,包括:
所述交换机根据所述执行顺序收所述目标任务的发送方发送的所述数据包序列,并根据所述数据包序列的序号与所述偏移量规则在所述聚合表上进行寻址定位:
Aggregator.index←packet.seq_num+Offset
其中,Aggregator.index为所述隔离区域的索引,packet.seq_num为所述数据包序列的序号,offset为所述偏移量规则;
获取所述数据包序列的序号对应的所述隔离区域内的聚合器。
6.根据权利要求5所述的方法,其特征在于,通过所述聚合器将所述数据包序列进行合并,得到结果数据包,将所述结果数据包发送至所述目标任务的接收方,所述接收方根据所述结果数据包回复ACK报文序列,并通过交换机组播同步回传至所述发送方,包括:
通过所述聚合器合并相同报文序列号的所述数据包序列,得到结果数据包,将所述结果数据包发送至所述目标任务的接收方,所述接收方根据所述结果数据包回复报文ACK报文序列,所述ACK报文序列到达所述交换机时,根据所述目标任务的数量与所述聚合层次结构组成的交换机组清除每一个所述目标任务对应的所述聚合器,并回传所述ACK报文序列至所述目标任务对应的发送方。
7.根据权利要求1至6任意一项所述的方法,其特征在于,所述聚合任务请求包括:目标任务ID、所述目标任务的发送方ID、所述目标任务的接收方ID聚合函数以及聚合类型;
所述聚合类型包括:Reduce与Allreduce。
8.根据权利要求7所述的方法,其特征在于,在所述接收方根据所述结果数据包回复ACK报文序列,并通过交换机组播同步回传至所述发送方的步骤之后,还包括:
若所述聚合类型为Reduce,则所述接收方将所述ACK报文序列重组为反馈消息,所述反馈消息作为聚合结果由控制器传输至所述发送方的本地代理;若所述聚合类型为Allreduce,则所述发送方将ACK报文序列的有效负载重组为反馈消息,所述反馈消息作为聚合结果由控制器传输至所述发送方的本地代理;
所述本地代理通过IPC将所述聚合结果返回至启动所述目标任务的应用程序。
9.一种面向分布式应用程序的通用网内同步聚合系统,其特征在于,所述系统包括:
聚合任务请求获取模块,用于获取应用程序的聚合任务请求;
聚合规则获取模块,用于根据所述聚合任务请求与预设的调度策略确定目标任务的聚合器资源与所述目标任务的执行顺序,通过控制器为每一个聚合器资源分配隔离区域,并设置所述隔离区域对应的偏移量规则,将所述隔离区域与所述隔离区域对应的所述偏移量规则写入所述控制器的聚合表中,得到聚合规则;
聚合器匹配模块,用于交换机根据所述执行顺序与所述聚合规则接收所述目标任务的发送方发送的数据包序列,并将所述数据包序列定位至所述聚合表,得到所述数据包序列匹配的聚合器;
聚合模块,用于通过所述聚合器将所述数据包序列进行合并,得到结果数据包,将所述结果数据包发送至所述目标任务的接收方,所述接收方根据所述结果数据包回复ACK报文序列,并通过交换机组播同步回传至所述发送方。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311326990.3A CN117354370A (zh) | 2023-10-13 | 2023-10-13 | 面向分布式应用程序的通用网内同步聚合方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311326990.3A CN117354370A (zh) | 2023-10-13 | 2023-10-13 | 面向分布式应用程序的通用网内同步聚合方法、系统及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117354370A true CN117354370A (zh) | 2024-01-05 |
Family
ID=89355424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311326990.3A Pending CN117354370A (zh) | 2023-10-13 | 2023-10-13 | 面向分布式应用程序的通用网内同步聚合方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117354370A (zh) |
-
2023
- 2023-10-13 CN CN202311326990.3A patent/CN117354370A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11863458B1 (en) | Reflected packets | |
US20240171507A1 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic) | |
US20180081853A1 (en) | Secure handle for intra-and inter-processor communications | |
US11750699B2 (en) | Small message aggregation | |
CN103618673A (zh) | 一种保障服务质量的片上网络路由方法 | |
CN110502364B (zh) | 一种OpenStack平台下大数据沙箱集群的跨云备份恢复方法 | |
CN1881945A (zh) | 改进型分布式核心操作系统 | |
CN106487896A (zh) | 用于处理远程直接内存访问请求的方法和装置 | |
JP2019106697A (ja) | 相互接続ネットワークでのメッセージ再送遅延を動的に管理するための方法及びデバイス | |
CN113111043B (zh) | 一种中台源数据文件的处理方法、装置、系统及存储介质 | |
CN114237985B (zh) | 修复纠删码存储系统中失效存储块的方法及相关设备 | |
CN104598430B (zh) | 一种cpu互联扩展系统的网络接口互联设计与控制系统 | |
CN117812027B (zh) | Rdma加速组播方法、装置、设备及存储介质 | |
CN117354370A (zh) | 面向分布式应用程序的通用网内同步聚合方法、系统及设备 | |
CN106372013A (zh) | 远程内存访问方法、装置和系统 | |
WO2019015487A1 (zh) | 一种数据重传处理方法、rlc实体和mac实体 | |
WO2024120344A1 (zh) | 一种有线串行总线数据传输方法、系统及相关装置 | |
CN118555252B (zh) | 一种路由方法、系统和电子设备及存储介质 | |
WO2015051736A1 (zh) | 一种网络节点的报文传输的容错方法及网络节点 | |
Coll et al. | Collective communication patterns on the quadrics network | |
Kumar et al. | Adaptive fault tolerant routing in interconnection networks: a review | |
CN113742054A (zh) | 一种网络计算方法及装置 | |
CN112905348A (zh) | 一种智能云计算管理系统 | |
CN116828050A (zh) | 一种集合通信方法、网卡、网络设备和存储介质 | |
CN116264723A (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 |