Notification message processing method, notification message sending method and notification message processing device

By processing notification messages to determine communication relationships within the communication domain, the problem of data flow conflicts in multi-path routing is resolved, global load balancing is achieved, and the efficiency of training large AI models is improved.

CN121644443APending Publication Date: 2026-03-10HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-10
Publication Date
2026-03-10

AI Technical Summary

Technical Problem

In AI large-scale model training scenarios, multi-path routing can lead to uplink or downlink conflicts in data flow, resulting in uneven network load and reduced training efficiency.

Method used

By receiving and processing notification messages, the communication relationships between members within the communication domain are determined. Based on these relationships, multi-path routing is performed to avoid data flow conflicts in the link and improve load balancing.

Benefits of technology

It achieves load balancing of global data flow, avoids uplink or downlink conflicts in the data flow link, and improves the efficiency of training large AI models.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121644443A_ABST
    Figure CN121644443A_ABST
Patent Text Reader

Abstract

The invention provides a notification message processing method, a notification message sending method and devices, and relates to the technical field of communication. In the notification message processing method and the notification message sending method, a first communication device obtains a first set communication operator, a first set communication algorithm and a first communication domain member identifier in set communication, and sends a first notification message comprising the first set communication operator, the first set communication algorithm and the first communication domain member identifier, and the second communication device determines a first communication relationship between communication domain members in the first communication domain according to the first notification message, determines M forwarding paths according to the first communication relationship, and sends corresponding forwarding paths to communication devices included in N forwarding paths in the M forwarding paths. Thus, on the basis of completely determining the communication relationship of the first communication domain, multipath routing is performed on the global data flow, uplink or downlink conflicts of the data flow of the communication domain in the link are avoided, and the load balance of global communication is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a method, method and apparatus for processing and sending notification messages. Background Technology

[0002] In artificial intelligence (AI) training scenarios, training large AI models requires massive computing power, which cannot be provided by a single server. It necessitates a large number of servers acting as nodes, forming a cluster via a network. The network structure of each node is typically a two- or three-layer network architecture. Because multiple paths exist within the network, data flows from each node need to undergo multi-path routing to achieve network traffic balance and improve bandwidth utilization. However, current multi-path routing methods still suffer from uplink or downlink conflicts, leading to uneven network load across parameters in large AI model training scenarios and reducing the efficiency of large AI model training. Summary of the Invention

[0003] This application provides a method for processing, sending, and apparatus for notification messages, in order to resolve the problem of uplink or downlink conflicts in data streams in multipath routing.

[0004] In a first aspect, a method for processing notification messages is provided. The method includes: receiving a first notification message sent by a first communication device, the notification message including a first set communication operator, a first set communication algorithm, and a first communication domain member identifier in set communication; determining a first communication relationship between communication domain members within the first communication domain based on the first set communication operator, the first set communication algorithm, and the first communication domain member identifier; determining M forwarding paths based on the first communication relationship, the forwarding paths indicating the paths through which the communication devices forward data streams; and sending corresponding forwarding paths to communication devices included in N forwarding paths out of the M forwarding paths, where M and N are positive integers greater than 1.

[0005] The execution entity of the notification message processing method can be a controller, management server, or other device, equipment, or node with communication control functions, or a second communication device with control or management functions. The first communication device can be a router, switch, gateway, or other device with switching functions, such as a switching chip or network card. The first notification message is forwarded by the first communication device. The first communication device can be a computing node, server, computer, or other device, or a computing chip, processor (such as a neural network processing unit (NPU), central processing unit (CPU), graphics processing unit (GPU), etc.), AI accelerator card, etc. The first notification message is determined and sent by the first communication device.

[0006] Based on the above-described notification message processing method, the first notification message carries a first set communication operator, a first set communication algorithm, and a first communication domain member identifier in the set communication. Based on these elements, the first communication relationship between each communication domain member can be determined, thereby enabling multi-path routing of the data streams of each communication domain member according to this relationship. Thus, by fully determining the communication relationships between each communication domain member, multi-path routing of the global data stream is performed, avoiding uplink or downlink conflicts in the communication domain data streams and improving the load balancing of global communication.

[0007] In conjunction with the notification message processing method provided in the first aspect, as one possible implementation, the first notification message further includes at least one of a communication domain notification identifier and a communication domain identifier. The communication domain notification identifier is used to indicate that the message type is a notification message, and the communication domain identifier is used to indicate the communication domain to which the communication device belongs. Thus, the device receiving the first notification message can identify the type of the first notification message and the corresponding communication domain.

[0008] In conjunction with the notification message processing method provided in the first aspect, as one possible implementation, the first set communication operator is the set communication operator corresponding to the first communication domain, and the first set communication algorithm is the set communication algorithm corresponding to the first communication domain.

[0009] In conjunction with the notification message processing method provided in the first aspect, as one possible implementation, the first notification message also includes a communication domain creation identifier.

[0010] In conjunction with the notification message processing method provided in the first aspect, as a possible implementation, the notification message processing method can also cancel the issued forwarding paths. For example, receiving a second notification message sent by a first communication device, the second notification message includes a first set communication operator, a first set communication algorithm, a first communication domain member identifier, and a communication domain cancellation identifier; determining a first communication relationship between communication domain members within the first communication domain based on the first set communication operator, the first set communication algorithm, and the first communication domain member identifier; determining the M forwarding paths based on the first communication relationship; and canceling the M forwarding paths based on the communication domain cancellation identifier. Thus, in the event of a change such as cancellation of the first communication domain, the issued forwarding paths can be canceled based on the second notification message, preventing subsequent data streams from continuing to forward according to the forwarding paths before the cancellation of the first communication domain, thus avoiding uplink or downlink conflicts.

[0011] In conjunction with the notification message processing method provided in the first aspect, as a possible implementation, the first notification message is in the hierarchical content delivery network (HCDN) header of a Remote Direct Memory Access over Converged Ethernet Version 2 (RoCE v2) message.

[0012] Based on the notification message processing method provided in the first aspect, as one possible implementation, the first communication relationship includes the correspondence between senders and receivers among the members of each communication domain within the first communication domain. Thus, the first communication relationship can characterize the correspondence between senders and receivers among the members of each communication domain in the entire aggregated communication process of the first communication domain.

[0013] Based on the notification message processing method provided in the first aspect, as a possible implementation, this method, in addition to performing traffic optimization for a single communication domain to achieve forwarding path planning, can also perform traffic optimization across multiple communication domains. For example, upon receiving a third notification message, based on the second set communication operator, the second set communication algorithm, and the second communication domain member identifier carried in the third notification message, the second communication relationship between each communication domain member within the second communication domain is determined, and M forwarding paths are determined based on the first and second communication relationships. In this way, by integrating the communication relationships of multiple communication domains, multi-path routing is performed on the global data flow of the task to which the data flow belongs (such as AI training, computation, etc.), avoiding uplink or downlink conflicts in the link between communication domains, and improving the load balancing of global communication.

[0014] In conjunction with the notification message processing method provided in the first aspect, as one possible implementation, each communication domain member in the first communication domain is a communication device that performs AI training tasks.

[0015] Secondly, a method for sending an announcement message is provided, the method comprising: obtaining a first set communication operator, a first set communication algorithm, and a first communication domain member identifier in set communication; generating a first announcement message based on the first set communication operator, the first set communication algorithm, and the first communication domain member identifier; and sending the first announcement message.

[0016] The entity executing the method for sending the notification message can be a computing node, server, computer, or other equipment; it can also be a computing chip, processor (such as a neural network processing unit (NPU), central processing unit (CPU), graphics processing unit (GPU), AI accelerator card, or other device; it can also be referred to as a first communication device with computing or communication functions. The recipient of the first notification message can be a controller, management server, or other device, equipment, or node with communication control functions.

[0017] In conjunction with the notification message sending method provided in the second aspect, as a possible implementation, the first set communication operator, the first set communication algorithm, and the first communication domain member identifier in set communication are extracted from the communication library. Thus, extracting set communication information from the communication library reduces the dependence on task (such as AI training tasks) frameworks and cluster schedulers.

[0018] In conjunction with the notification message sending method provided in the second aspect, as one possible implementation, the first notification message further includes at least one of a communication domain notification identifier and a communication domain identifier. The communication domain notification identifier is used to indicate that the message type of the notification message is a notification message, and the communication domain identifier is used to indicate the communication domain to which the communication device belongs.

[0019] In conjunction with the notification message sending method provided in the second aspect, as one possible implementation, the first set communication operator is the set communication operator corresponding to the first communication domain, and the first set communication algorithm is the set communication algorithm corresponding to the first communication domain.

[0020] In conjunction with the notification message sending method provided in the second aspect, as one possible implementation, the first notification message also includes a communication domain creation identifier.

[0021] In conjunction with the notification message sending method provided in the second aspect, as a possible implementation, the notification message sending method further includes: receiving a communication domain destruction instruction; the task end instruction includes a first communication domain identifier of the first communication domain; deleting the information corresponding to the first communication domain in the communication database according to the first communication domain identifier; sending a second notification message; the second notification message includes a first set communication operator, a first set communication algorithm, a first communication domain member identifier, and a communication domain revocation identifier.

[0022] In conjunction with the notification message sending method provided in the second aspect, as one possible implementation, the first notification message is in the HCDN header of the RoCE v2 message.

[0023] As one possible implementation, the beneficial effects of any possible implementation of the notification message sending method provided in the second aspect above can be referred to the description in the notification message processing method provided in the first aspect, and will not be repeated here.

[0024] Thirdly, a communication device is provided, the communication device including a processor and a memory, the processor being configured to execute instructions stored in the memory to cause the communication device to perform the method for sending or processing a notification message as described in any possible implementation of the first or second aspect.

[0025] Fourthly, a computer program (product) is provided, the computer program (product) comprising: computer program code, which, when executed by a computer or communication device, causes the computer or communication device to perform the notification message sending method or notification message processing method described in any possible implementation of the first or second aspect.

[0026] Fifthly, a chip is provided, including a processor for retrieving and executing instructions stored in a memory, causing a communication device on which the chip is installed to perform the method for sending or processing a notification message as described in any possible implementation of the first or second aspect.

[0027] In a sixth aspect, another chip is provided, comprising: an input interface, an output interface, a processor, and a memory, wherein the input interface, the output interface, the processor, and the memory are connected via an internal connection path, and the processor is used to execute code in the memory, wherein when the code is executed, the processor is used to execute the notification message sending method or notification message processing method described in any possible implementation of the first or second aspect above.

[0028] In a seventh aspect, a network system is provided, comprising a plurality of network devices and a plurality of servers, wherein the plurality of network devices are divided into at least one level, the network devices at different levels are interconnected, and each of the plurality of servers is interconnected with at least one network device among the plurality of servers.

[0029] In one possible implementation, the plurality of network devices include a first communication device and a control device, wherein the first communication device is configured to perform the method for sending notification messages as described in any possible implementation of the first aspect above, and the control device is configured to perform the method for processing notification messages as described in any possible implementation of the second aspect above.

[0030] Eighthly, an apparatus for processing notification messages is provided, comprising a transceiver module and a processing module. The transceiver module is configured to receive a first notification message sent by a first communication device; the first notification message includes a first set communication operator, a first set communication algorithm, and a first communication domain member identifier in set communication. The processing module is configured to determine a first communication relationship between communication domain members within the first communication domain based on the first set communication operator, the first set communication algorithm, and the first communication domain member identifier; and to determine M forwarding paths based on the first communication relationship; the forwarding paths are used to indicate the paths through which the communication devices forward data streams. The transceiver module is configured to send corresponding forwarding paths to communication devices included in N of the M forwarding paths, where M and N are integers greater than 1.

[0031] As one possible implementation, the above-mentioned notification message processing apparatus may further include other modules that perform the operational steps of the notification message processing method described in the first aspect.

[0032] A ninth aspect provides an apparatus for sending an announcement message, comprising a transceiver module and a processing module. The processing module is configured to acquire a set communication operator, a set communication algorithm, and a communication domain member identifier for a first communication domain in set communication; and to generate a first announcement message based on the set communication operator, the set communication algorithm, and the communication domain member identifier. The processing module is configured to send the first announcement message.

[0033] As one possible implementation, the above-mentioned notification message sending device may further include other modules that perform the operational steps of the notification message sending method described in the second aspect.

[0034] In a tenth aspect, a computer-readable storage medium is provided, the storage medium storing at least one instruction, the instruction being loaded and executed by a processor to implement the method for sending or processing a notification message as described in any possible implementation of the first or second aspect above. Attached Figure Description

[0035] Figure 1 A schematic diagram of the structure of a network system provided in this application;

[0036] Figure 2 A flowchart illustrating a method for sending and processing notification messages provided in this application. Figure 1 ;

[0037] Figure 3 A flowchart illustrating a method for sending and processing notification messages provided in this application. Figure 2 ;

[0038] Figure 4 A flowchart illustrating the steps for acquiring communication domain-related data provided in this application;

[0039] Figure 5 A schematic diagram of the structure of a RoCE v2 message provided in this application;

[0040] Figure 6 A flowchart illustrating a method for sending and processing notification messages provided in this application. Figure 3 ;

[0041] Figure 7 A flowchart illustrating a method for sending and processing notification messages provided in this application. Figure 4 ;

[0042] Figure 8 A flowchart illustrating a method for sending and processing notification messages provided in this application. Figure 5 ;

[0043] Figure 9 A flowchart illustrating the steps for determining communication relationships and traffic optimization provided in this application;

[0044] Figure 10 A schematic diagram of the structure of a notification message sending device provided in this application;

[0045] Figure 11 A schematic diagram of the structure of a notification message processing device provided in this application;

[0046] Figure 12 This is a schematic diagram of the structure of a communication device provided in this application. Detailed Implementation

[0047] This application provides a method for sending and processing notification messages, which can be executed by a first communication device and a second communication device. In the process of this method, the first communication device acquires a first set communication operator, a first set communication algorithm, and a first communication domain member identifier in set communication, generates a first notification message based on the first set communication operator, the first set communication algorithm, and the first communication domain member identifier, and then sends the first notification message. The second communication device receives the first notification message, determines a first communication relationship between each communication domain member based on the first set communication operator, the first set communication algorithm, and the first communication domain member identifier, and determines M forwarding paths based on the first communication relationship. It then sends the corresponding forwarding path to the communication device included in N of the M forwarding paths. Here, the forwarding path indicates the path for the communication device to forward the data stream, and M and N are integers greater than 1.

[0048] Based on the aforementioned method for sending and processing announcement messages, the first announcement message carries a first set communication operator, a first set communication algorithm, and a first communication domain member identifier in the set communication. Based on these components, the first communication relationship between members within the first communication domain can be determined, thereby enabling multi-path routing of the data streams of each member according to this relationship. Thus, by fully determining the communication relationships, multi-path routing of the global data streams avoids uplink or downlink conflicts in the communication domain links, improving the load balancing of global communication.

[0049] The technical solutions involved in this application may be applied not only to current communication technologies or communication devices, but also to future communication technologies or communication devices, or to communication systems and network systems that include communication devices. The terminology used in the embodiments section of this application is only for explaining specific embodiments of this application and is not intended to limit this application. A brief introduction to some concepts that may be involved in this application is given below.

[0050] Collective communications are global communication operations involving all processes in a process group. The most basic operations include sending, receiving, copying, intra-group process barrier synchronization, and inter-node process synchronization. These basic operations are combined to form a set of communication templates, also called communication primitives, such as: one-to-many broadcast, many-to-one gather, many-to-many all-gather, one-to-many scatter, many-to-one reduce, many-to-many all-reduce, combined reduce-scatter, and many-to-all.

[0051] Multipath routing, also known as multipath selection, refers to forwarding data with the same source and destination addresses through multiple forwarding paths. For example, equal-cost multi-path routing (ECMP) is a routing strategy that calculates the primary route weight when multiple optimal paths are parallel, resulting in packets being transmitted to a single destination at the next-hop node.

[0052] Distributed training is a method for training models that distributes data / models across multiple computing nodes, typically including multiple NPUs, CPUs, GPUs, tensor processing units (TPUs), AI accelerator cards, etc. Through parallel computing and data management, distributed training can significantly accelerate the training process and handle larger scales and datasets than a single node can manage.

[0053] To make the objectives, technical solutions, and advantages of this application clearer, the application will now be described in further detail with reference to the accompanying drawings.

[0054] In the following description, the terms "first," "second," etc., are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Therefore, a feature defined with "first," "second," etc., may explicitly or implicitly include one or more of that feature. In the description of this application, unless otherwise stated, "a plurality of" means two or more.

[0055] Furthermore, in this application, directional terms such as "upper" and "lower" are defined relative to the orientation of the components shown in the accompanying drawings. It should be understood that these directional terms are relative concepts, used for relative description and clarification, and can change accordingly depending on the orientation of the components in the accompanying drawings.

[0056] In distributed training scenarios for large models, data flows from different computing nodes require multi-path routing. This can be achieved using dynamic or static routing to balance the load of communication between nodes. Dynamic routing methods, such as ECMP, select the uplink path based on the hash calculation results of the five-tuples of different data flows. However, this can lead to traffic conflicts if different data flows have the same hash calculation result. Static routing methods specify the outlink port of the data flow based on its ingress port, but this may also result in traffic conflicts on the downlink paths of data flows within the communication domain. Therefore, even in scenarios involving distributed training of large models and other complex communication scenarios, the problem of load imbalance still exists.

[0057] To address the aforementioned issues, the application scenarios of the embodiments of this application will be described below with reference to the accompanying drawings.

[0058] Figure 1 This application provides a schematic diagram of the structure of a network system. This network system can belong to a data center network topology, an interconnection between multiple data centers, or a wide area network (WAN). The service scenarios of the network system can be high-performance service scenarios such as distributed machine learning training, distributed storage, high-performance computing, and containerization. The communication protocol of the network system can be a remote direct memory access (RDMA) protocol, a transmission control protocol (TCP), or RDMA protocols such as Infiniband and RoCEv2.

[0059] For example, network system 100 includes controller 110, multiple servers, and multiple network devices.

[0060] Controller 110 is responsible for the centralized control and management of the entire network, enabling centralized configuration, monitoring, and management of network devices. Controller 110 communicates with one or more of the network devices. Controller 110 can also communicate with one or more of the servers. Figure 1 The connection relationship of controller 110 is indicated by dashed lines.

[0061] Multiple servers are used to support high-performance services with different communication requirements, such as AI training, AI inference, and storage. Figure 1 As shown, network system 100 includes multiple server groups ( Figure 1 Only server groups 101, 102, 103, and 104 are shown, but the number is not limited to four. Each server group includes one or more servers. Figure 1 Only three servers are shown, but it is not limited to three servers. For example, server group 101 includes servers 1-3, server group 102 includes servers 4-6, server group 103 includes servers 7-9, and server group 104 includes servers 10-12. The servers in each server group are connected to network devices via network interface cards (NICs). The NICs are used to send and receive data and have the capability to receive packets out of order.

[0062] Multiple network devices can be routers, switches, gateways, and other devices with data exchange and transmission functions, possessing capabilities such as link quality identification, generating / sending / processing announcement messages, modifying packet fields, and adjusting the path of each packet. For example... Figure 1 As shown, network system 100 includes multiple network devices ( Figure 1Only network devices 105, 106, 107, and 108 are shown in the diagram, but the number is not limited to four. These network devices can be located at different layers within network system 100. For example, if network system 100 is a spine-leaf network architecture, network devices 105 and 106 can be leaf switches at the access layer, while network devices 107 and 108 can be spine switches at the aggregation layer.

[0063] For example, in network system 100, each server in server group 101 and server group 102 communicates with network device 105 via a network interface card (NIC), and each server in server group 103 and server group 104 communicates with network device 106 via a NIC. Network device 105 communicates with network devices 107 and 108, respectively, and network device 106 communicates with network devices 107 and 108, respectively. Because the connection relationships of controller 110 are relatively complex... Figure 1 Not shown in the image, but Figure 1 The central controller 110 can be considered to be connected to server group 101, server group 102, server group 103, and server group 104 respectively, and the network device 105 can be communicated with network device 107 and network device 108 respectively.

[0064] In the embodiments of this application, both the network devices and servers in the network system 100 described above can be referred to as communication devices. A communication device can also be a processor in a server (such as a neural network processing unit (NPU), central processing unit (CPU), graphics processing unit (GPU), etc.), a network interface card (NIC) in a server, a switching chip in a network device, or a CPU in a network device, etc., and this application does not limit it to these specific applications.

[0065] It should be understood that Figure 1 This is a simplified diagram for ease of understanding only. The network system 100 may also include other network devices, servers, and / or other devices, and the connection relationships between nodes may also vary. Figure 1 It was not drawn in the middle.

[0066] It should be understood that Figure 1Only a network architecture with Layer 2 network devices is shown. In possible embodiments of this application, the layer and number of network devices are not limited. For example, embodiments of this application can also be applied to a network architecture with Layer 3 network devices. In this case, the network system 100 may further include network device 109. Figure 1 (Not shown in the image), network devices 107 and 108 are communicatively connected to network device 109, at which time network device 109 is the core switch of the core layer.

[0067] Next, the method for sending and processing notification messages provided in the embodiments of this application will be described in detail with reference to the accompanying drawings. Here, taking the method for sending and processing notification messages in cooperation between a first communication device and a second communication device as an example, the specific steps of the method for sending and processing notification messages will be explained.

[0068] In this embodiment, the first communication device can be any server in server groups 101, 102, 103, and 104 of the network system 100, or any network device in network devices 105, 106, 107, and 108 that is communicatively connected to the controller 110. The second communication device can be the controller 110 in the network system 100. Alternatively, the first communication device can refer to a component of one of the servers in server group 101 of the network system 100, such as a computing chip, a network interface card (NIC), or software deployed in the server. The second communication device can also be a portion of the software or hardware components of the controller 110 in the network system 100.

[0069] Figure 1 A flowchart illustrating a method for sending and processing notification messages provided in this application. Figure 2 Please refer to this. Figure 1 The method may include the following steps S201-S207.

[0070] S201, The first communication device acquires the first set communication operator, the first set communication algorithm, and the first communication domain member identifier in set communication.

[0071] As one possible implementation, the first communication device is server 1 in server group 101 in network system 100. After the first communication domain is initialized, the server extracts the first set communication operator, the first set communication algorithm and the first communication domain member identifier from the communication library. The first set communication operator is the set communication operator corresponding to the first communication domain, and the first set communication algorithm is the set communication algorithm corresponding to the first communication domain.

[0072] Optionally, the first set communication operator, the first set communication algorithm, and the first communication domain member identifier are extracted from the communication database by the server belonging to the first communication domain.

[0073] The communication library runs on the server in server group 101. The communication library is a set of functions, classes, or modules used to implement various communication protocols and functions in a computer program. For example, in this embodiment, the communication library refers to a collection communication library, which is a library used for communication between computing nodes (such as server groups) or computing chips (such as GPUs, NPUs, etc.), including communication primitives for communication methods such as sync and point-to-point communication.

[0074] For example, the following will combine Figure 2 The scenario of server 1 in server group 101 of network system 100 as the first communication device will be described in detail. The specific method by which server 1 obtains the first set communication operator, the first set communication algorithm and the first communication domain member identifier in set communication will not be repeated here.

[0075] Optionally, the first communication device may also refer to a component of a server in the server group 101 of the network system 100. For example, the computing chip of server 1 in server group 101 acquires the first set communication operator, the first set communication algorithm and the first communication domain member identifier in set communication.

[0076] As another possible implementation, the first communication device is network device 105 in network system 100. Network device 105 receives a first set communication operator, a first set communication algorithm, and a first communication domain member identifier sent by the server in set communication. Correspondingly, the server sends the first set communication operator, the first set communication algorithm, and the first communication domain member identifier to network device 105 in the form of an announcement message.

[0077] Among them, set communication operators are a group of communication operations used in distributed computing. They allow for efficient data exchange and synchronization between multiple computing nodes to support data-parallel and model-parallel computing tasks. These operators include, but are not limited to, all reduce, broadcast, all gather, reduce scatter, and all-to-all.

[0078] Collective communication algorithms are an important concept in parallel computing. They involve communication between a group of processes and aim to solve the problem of efficient data transmission and synchronization in distributed scenarios. These algorithms include, but are not limited to, the ring algorithm, halving-doubling (HD) algorithm, recursive halving-doubling (Recursive-HD) algorithm, nonuniform hierarchical ring (NHR) algorithm, nonuniform bruck (NB) algorithm, pipeline parallel algorithms, and pairwise algorithms.

[0079] The communication domain member identifier is used to indicate the members of the communication domain, which can be a group or queue of multiple computing chips. The identifier in the communication domain member identifier can be any string that can uniquely identify the server or computing chip. For example, the identifier in the communication domain member identifier is the Internet Protocol (IP) address of the server or computing chip in the network system 100.

[0080] For example, the following will combine Figure 7 The scenario where the first communication device is network device 105 in network system 100 will be described in detail. The specific methods by which network device 105 obtains the set communication operator, set communication algorithm and communication domain member identifier of the first communication domain in set communication will not be repeated here.

[0081] Optionally, the first communication device may also refer to a component of the network device 105 in the network system 100. For example, the switching chip of the network device 105 obtains the first set communication operator, the first set communication algorithm and the first communication domain member identifier in set communication from the received announcement message.

[0082] S202, the first communication device generates a first announcement message based on the first set communication operator, the first set communication algorithm and the first communication domain member identifier.

[0083] As one possible implementation, the first communication device is any server in the server group 101 of the network system 100. The server encapsulates the first set communication operator, the first set communication algorithm and the first communication domain member identifier into a message of a specified format to obtain the first announcement message.

[0084] Optionally, the first communication device may also refer to a component of a server in the server group 101 of the network system 100. For example, the computing chip of a server in the server group 101 encapsulates the first set communication operator, the first set communication algorithm and the first communication domain member identifier into a message of a specified format to obtain the first announcement message.

[0085] As another possible implementation, the first communication device is network device 105 in network system 100. Network device 105 receives a first set communication operator, a first set communication algorithm, and a first communication domain member identifier sent by the server, and encapsulates the first set communication operator, the first set communication algorithm, and the first communication domain member identifier into a message of a specified format to obtain a first announcement message. Alternatively, network device 105 receives an announcement message sent by the server that has been encapsulated with the first set communication operator, the first set communication algorithm, and the first communication domain member identifier, and sets the destination address of the announcement message with the second communication device as the destination device before forwarding the announcement message to the second communication device to obtain the first announcement message.

[0086] For example, network device 105 receives a message carrying a communication domain announcement identifier sent by a server, extracts a first set communication operator, a first set communication algorithm, and a first communication domain member identifier from the message based on the communication domain announcement identifier, and encapsulates the first set communication operator, the first set communication algorithm, and the first communication domain member identifier into a message of a specified format to obtain a first announcement message. The communication domain announcement identifier is used to indicate that the message type is an announcement message.

[0087] The specified message format can be a RoCE v2 message, in which the HCDN header carries the first set communication operator, the first set communication algorithm, and the first communication domain member identifier. For the specific message format, please refer to [reference needed]. Figure 8 The details and related descriptions will not be repeated here.

[0088] Optionally, the first communication device may also refer to a component of the network device 105 in the network system 100. For example, the switching chip of the network device 105 receives the first set communication operator, the first set communication algorithm and the first communication domain member identifier sent by the server, and encapsulates the first set communication operator, the first set communication algorithm and the first communication domain member identifier into a message of a specified format to obtain the first announcement message.

[0089] It is understood that in this embodiment, the first notification message may carry only one of the set communication operator and the set communication algorithm. For example, if the correspondence between the set communication operator and the set communication algorithm is one-to-one, the first notification message may include either the set communication operator or the set communication algorithm. Then, after receiving the first notification message, the second communication device can determine the corresponding set communication algorithm through the set communication operator it carries, or vice versa. If the correspondence between the set communication operator and the set communication algorithm is such that one set communication operator corresponds to multiple set communication algorithms, the first notification message may include the set communication algorithm. Then, after receiving the first notification message, the second communication device can determine the corresponding set communication operator through the set communication algorithm it carries. If the correspondence between the set communication operator and the set communication algorithm is such that one set communication algorithm corresponds to multiple set communication operators, the first notification message may include the set communication operator. Then, after receiving the first notification message, the second communication device can determine the corresponding set communication algorithm through the set communication operator it carries. If the correspondence between set communication operators and set communication algorithms is such that one set communication algorithm corresponds to multiple set communication operators, and one set communication operator corresponds to multiple set communication algorithms, the first notification message may include set communication operators and set communication algorithms.

[0090] S203, The first communication device sends a first notification message.

[0091] In one possible implementation, the server in server group 101 sends a first announcement message to the next-hop communication device. Wherein, if the first communication device is a server in server group 101, the next-hop communication device of the first announcement message is network device 105; if the first communication device is network device 105, the next-hop communication device of the first announcement message is controller 110.

[0092] S204, The second communication device receives the first notification message.

[0093] The second communication device receives the first announcement message from the network device or the device that initiates the first announcement message. For example, if the second communication device is controller 110, the network device can be network device 105, and the device that initiates the first announcement message can be a server in server group 101.

[0094] Optionally, the second communication device may refer to a component of the controller 110, such as the switching chip of the controller 110 receiving the first notification message.

[0095] S205. The second communication device determines the first communication relationship between each communication domain member in the first communication domain based on the first set communication operator, the first set communication algorithm and the first communication domain member identifier.

[0096] The second communication device parses the first set communication operator, the first set communication algorithm, and the first communication domain member identifier from the first announcement message, and performs communication domain calculation based on the first set communication operator, the first set communication algorithm, and the first communication domain member identifier to determine the first communication relationship between each communication domain member within the first communication domain.

[0097] Optionally, the second communication device may refer to a component of the controller 110. For example, the processor of the controller 110 determines the first communication relationship between each communication domain member in the first communication domain based on the first set communication operator, the first set communication algorithm and the first communication domain member identifier.

[0098] For example, if the first set communication operator is all reduce and the first set communication algorithm is the ring algorithm, the first communication domain includes computing power chips 0-7 (corresponding to IP addresses ip1-ip8) that are mutually connected, that is, the members of the first communication domain are identified as ip1-ip8, and the first communication device is computing power chip 0. The second communication device outputs the first communication relationship according to the all reduce and ring algorithms as follows: ip1->ip2, ip2->ip3, ip3->ip4, ip4->ip5, ip5->ip6, ip6->ip7, ip7->ip8, ip8->ip1. It should be understood that the interaction of the above multiple computing power chips can also be carried out through multiple stages (2*(number of communication domain members-1)). In this case, if the first set communication operator is all reduce and the first set communication algorithm is the ring algorithm, the communication relationship corresponding to the multiple stages is the same.

[0099] For example, if the first set communication operator is All gather and the first set communication algorithm is the ring algorithm, the first communication domain includes computing power chips 0-7 (corresponding to IP addresses ip1-ip8) that are mutually connected, that is, the members of the first communication domain are identified as ip1-ip8, and the first communication device is computing power chip 0. The second communication device outputs the first communication relationship according to All gather and the ring algorithm as: ip1->ip2, ip2->ip3, ip3->ip4, ip4->ip5, ip5->ip6, ip6->ip7, ip7->ip8, ip8->ip1. It should be understood that the interaction of the above multiple computing power chips can also be carried out through multiple stages (number of communication domain members - 1). In this case, if the first set communication operator is All gather and the first set communication algorithm is the ring algorithm, the communication relationship corresponding to multiple stages is the same.

[0100] For example, if the first set communication operator is all reduce and the first set communication algorithm is the HD algorithm, the second communication device outputs the first communication relationship within six stages according to the all reduce and HD algorithms, where the number of stages is equal to 2*log2 (the number of members in the communication domain). First stage: ip1—>ip2, ip2—>ip1, ip3—>ip4, ip4—>ip3, ip5—>ip6, ip6—>ip5, ip7—>ip8, ip8—>ip7. Second stage: ip1—>ip3, ip3—>ip1, ip2—>ip4, ip4—>ip2, ip5—>ip7, ip7—>ip5, ip6—>ip8, ip8—>ip6. Third stage: ip1—>ip5, ip5—>ip1, ip2—>ip6, ip6—>ip2, ip3—>ip7, ip7—>ip3, ip4—>ip8, ip8—>ip4.

[0101] Phase 4: IP1 → IP5, IP5 → IP1, IP2 → IP6, IP6 → IP2, IP3 → IP7, IP7 → IP3, IP4 → IP8, IP8 → IP4.

[0102] Phase 5: ip1 → ip3, ip3 → ip1, ip2 → ip4, ip4 → ip2, ip5 → ip7, ip7 → ip5, ip6 → ip8, ip8 → ip6.

[0103] Phase 6: ip1 → ip2, ip2 → ip1, ip3 → ip4, ip4 → ip3, ip5 → ip6, ip6 → ip5, ip7 → ip8, ip8 → ip7.

[0104] For example, if the first set communication operator is all-to-all and the first set communication algorithm is a pair-wise algorithm, the second communication device outputs the first communication relationship within seven stages according to the all-to-all and pair-wise algorithms, where the number of stages is equal to the difference between the number of communication domain members and one. First stage: ip1->ip2, ip2->ip3, ip3->ip4, ip4->ip5, ip5->ip6, ip6->ip7, ip7->ip8, ip8->ip1. Second stage: ip1->ip3, ip2->ip4, ip3->ip5, ip4->ip6, ip5->ip7, ip6->ip8, ip7->ip1, ip8->ip2. Third stage: ip1->ip4, ip2->ip5, ip3->ip6, ip4->ip7, ip5->ip8, ip6->ip1, ip7->ip2, ip8->ip3. Phase 4: IP1 → IP4, IP2 → IP5, IP3 → IP7, IP4 → IP8, IP5 → IP1, IP6 → IP8, IP7 → IP9, IP8 → IP4. Phase 5: IP1 → IP6, IP2 → IP7, IP3 → IP8, IP4 → IP1, IP5 → IP2, IP6 → IP3, IP7 → IP4, IP8 → IP5. Phase 6: IP1 → IP7, IP2 → IP8, IP3 → IP1, IP4 → IP2, IP5 → IP3, IP6 → IP4, IP7 → IP5, IP8 → IP6. Phase 7: IP1 → IP8, IP2 → IP1, IP3 → IP2, IP4 → IP3, IP5 → IP4, IP6 → IP5, IP7 → IP6, IP8 → IP7.

[0105] It should be understood that the identifiers of the first communication domain members are ordered, and different orders result in different first communication relationships.

[0106] For example, if the first set communication operator is all reduce and the first set communication algorithm is the ring algorithm, the first communication domain includes computing power chips 7-0 (corresponding to IP addresses ip8-ip1) that are mutually connected, that is, the members of the first communication domain are identified as ip8-ip1, and the first communication device is computing power chip 8. The second communication device outputs the first communication relationship according to the all reduce and ring algorithms as: ip8->ip7, ip7->ip6, ip6->ip5, ip5->ip4, ip4->ip3, ip3->ip2, ip2->ip1, ip1->ip8. It should be understood that the interaction of the above multiple computing power chips can also be carried out through multiple stages (2*(number of communication domain members-1)). In this case, if the first set communication operator is all reduce and the first set communication algorithm is the ring algorithm, the communication relationships corresponding to the multiple stages are the same.

[0107] As one possible implementation, the first communication relationship includes the communication relationships of each communication domain member within the first communication domain at different stages of the collective communication.

[0108] As one possible implementation, the first communication relationship includes the correspondence between senders and receivers among the members of each communication domain within the first communication domain. Taking the IP address of a server as an example, the first communication relationship includes the correspondence between the IP addresses of the sender server and the IP addresses of the receiver server within the first communication domain. Such a correspondence may include at least one and may include multiple correspondences.

[0109] For example, in the scenario of large model training, the collective communication of large model training includes different stages. The correspondence between the sender and receiver may change at different stages for members in the same or different communication domains.

[0110] For a specific example of how the second communication device generates the first communication relationship, please refer to [link / reference needed]. Figure 5 The S903 mentioned above will not be discussed further here.

[0111] In a possible embodiment of this application, after the first communication device obtains the first set communication operator, the first set communication algorithm, and the first communication domain member identifier in the set communication through S201, the first communication device itself can also use the same method as S205 to determine the first communication relationship between each communication domain member in the first communication domain. After the first communication device completes the calculation of the first communication relationship, it encapsulates it into a first notification message and sends the first communication relationship to the second communication device. The above-mentioned determination of the first communication relationship between each communication domain member in the first communication domain by the second device is only an example and is not intended to be limiting.

[0112] S206. The second communication device determines M forwarding paths based on the first communication relationship.

[0113] The second communication device performs traffic optimization on the data stream within the first communication relationship based on the first communication relationship among the members of each communication domain within the first communication domain in the aggregated communication, thereby obtaining M forwarding paths. The first communication relationship may include the communication relationships among the members of each communication domain within the first communication domain in the aggregated communication.

[0114] As one possible implementation method, traffic optimization can be based on multi-path routing such as load balancing and link status, such as ECMP and static routing strategies. These methods can reduce traffic conflicts on the uplink or downlink paths of members in different stages of the aggregated communication within the first communication domain. This will not be elaborated further here.

[0115] This application does not limit the format of the forwarding path. For example, the forwarding path refers to the set of links between devices through which the data flow passes in the network system 100, such as server 1 -> network device 105 -> network device 108 -> network device 106 -> server 10.

[0116] For a specific example of how the second communication device performs traffic optimization for each data stream in different stages of the communication relationship, please refer to [link / reference needed]. Figure 9 The S904 mentioned above will not be discussed further here.

[0117] S207. The second communication device sends the corresponding forwarding path to the communication device included in N forwarding paths out of M forwarding paths.

[0118] The second communication device sends the corresponding forwarding path to the communication devices included in N forwarding paths out of M forwarding paths, instructing the communication devices to forward the data stream according to the forwarding path.

[0119] As one possible implementation, the second communication device can indicate the forwarding path to the communication devices in the forwarding path by issuing access control lists (ACLs). Alternatively, it can issue policy-based access control lists (PBACLs). In one implementation, the ACL specifically indicates the forwarding interface on the device for traffic corresponding to the source IP address (the IP address of the sending server) and the destination IP address (the IP address of the receiving server).

[0120] The forwarding path corresponding to a communication device refers to the subsequent communication device after the data stream arrives at that communication device. This subsequent communication device may include the next-hop communication device after the data stream arrives at that communication device, and may also include the next u-hop communication device after the data stream arrives at that communication device, where u is a positive integer greater than 1. For example, taking a forwarding path including server 1 -> network device 105 -> network device 108 -> network device 106 -> server 10 as an example, the forwarding path corresponding to network device 105 in this forwarding path means that the next-hop communication device is network device 108, and the forwarding path corresponding to network device 108 means that the next-hop communication device is network device 106. That is, after the second communication device determines M forwarding paths, when sending a forwarding path to one of the communication devices, it can send all M forwarding paths to that communication device, or it can send only a portion of the corresponding forwarding paths to that communication device.

[0121] Taking the second communication device as controller 110, and the forwarding path being issued in the form of ACL issuance, in the first phase of the first communication domain, server group 101 sends a data stream to server group 102, and server group 103 sends a data stream to server group 104. In the second phase, server group 101 sends a data stream to server group 103, and server group 102 sends a data stream to server group 104. The second communication device sends ACLs to network device 105, or sends ACLs to network devices 105, 106, 107, and 108 respectively.

[0122] For example, the upstream network devices of network devices 105 and 106, such as network devices 107 and 108, are configured with static load balancing policies (e.g., network scale load balancing algorithm (NSLB)) to indicate the output ports corresponding to data flows from different inbound ports, thereby avoiding uplink or downlink path conflicts of data flows. Then, the second communication device sends an ACL to network device 105, which, based on the static load balancing policy and the ACL of network device 105, can prevent uplink or downlink path conflicts of data flows between members of the first communication domain.

[0123] For example, if the upstream network devices of network devices 105 and 106, such as network devices 107 and 108, are not configured with static load balancing policies, then the second communication device sends ACLs to network device 105 and its upstream network devices, such as network devices 107 and 108. Each network device avoids uplink or downlink path conflicts in the data flow between members of the first communication domain based on the ACLs.

[0124] Optionally, the second communication device may refer to a component of the controller 110, such as the switching chip of the controller 110 sending the corresponding forwarding path to the communication device included in N forwarding paths out of M forwarding paths.

[0125] exist Figure 9 The method for sending and processing notification messages provided in this application embodiment is described using the example of the first communication device being the server or network device 105 in server group 101 and the second communication device being the controller 110. However, this application does not limit the specific location of the first and second communication devices. For example, the first communication device can also be any network device in network system 100, such as network device 106, network device 107, etc.

[0126] Based on the aforementioned method for sending and processing announcement messages, the first announcement message carries a first set communication operator, a first set communication algorithm, and a first communication domain member identifier in the set communication. Based on these elements, the first communication relationship between communication domain members can be determined, thereby enabling multi-path routing of the data streams of each communication domain member according to this relationship. Thus, by fully determining the communication relationships within the communication domains, multi-path routing of the global data streams avoids uplink or downlink conflicts in the links, improving the load balancing of global communication.

[0127] The above text combined Figure 2 The method for sending and processing notification messages provided in this application is described in general. In the process of sending and processing notification messages, after the communication device in the forwarding path is configured, if the current task's collective communication ends, the forwarding path needs to be deleted. Next, in conjunction with... Figure 2 Taking the AI ​​framework scheduling server group to execute large model training tasks as an example, in Figure 3 Based on the flowchart of the notification message sending and processing method shown, detailed explanations are added regarding the creation and destruction of communication domains, as well as the distribution and deletion of forwarding paths. The communication library and notification module can be functional components within the server of a server group (e.g., server group 101), the network device can be network device 105, and the controller can be controller 110. The server group or network device can be considered as... Figure 2 The controller of the first communication device in the illustrated embodiment can be considered as... Figure 2 The second communication device in the illustrated embodiment.

[0128] Figure 2 A flowchart illustrating a method for sending and processing notification messages provided in this application. Figure 3 Please refer to this. Figure 2 The method may include the following steps S301-S315.

[0129] S301, AI framework initialization of large model training task.

[0130] When an AI framework initializes a large model training task, it divides the large model training task into different sub-tasks and determines the server groups used to train different sub-tasks, such as server group 101 to server group 104.

[0131] The AI ​​framework is a set of standard interfaces, feature libraries, and toolkits for designing, training, and validating AI algorithm models. It integrates algorithm encapsulation, data retrieval, and computing resource utilization, while providing developers with a development interface and execution platform. In this embodiment, the AI ​​framework can be deployed on any server in server group 101-server group 104 of network system 100, and can also be deployed on… Figure 3 The network system 100 does not include servers (such as cloud servers) or terminal devices.

[0132] S302, AI framework creates communication domain.

[0133] The AI ​​framework calls the communication library of each server in each server group to create a communication domain. That is, it determines the communication scope of each server in the aggregate communication based on the sub-tasks of each server and passes the communication scope to the corresponding server.

[0134] S303, Initialize the communication domain using the communication library.

[0135] The communication library initializes the communication domain based on the input communication range. During the initialization process, it obtains the set communication operator, set communication algorithm, and communication domain member identifier for the corresponding communication domain of the server group to which the communication library belongs.

[0136] S304. The communication library sends the set communication operator, set communication algorithm and communication domain member identifier to the announcement module.

[0137] For example, such as Figure 1 As shown, after initializing the communication domain, the communication library writes the set communication operators, set communication algorithms, and communication domain member identifiers of the communication domain into a specified file. The notification module reads the specified file to obtain the relevant data of the communication domain.

[0138] The specified file can be a JSON file, for example, named commID.json. The specified file can include OP, ALGO, and rankIPlist. OP stands for Operator, ALGO is the set communication algorithm, and rankIPlist is the identifier for communication domain members, i.e., the IP addresses of each member in the communication domain. Each communication object in the communication domain is considered a rank.

[0139] In possible embodiments, the specified file may further include commID, i.e., the communication domain identifier, and commSize, i.e., the communication domain size. The communication domain size may refer to the number of communication domain members within the communication domain.

[0140] To prevent the notification module from failing to read relevant data from the communication domain due to network errors or other reasons, the notification module can periodically read a specified file.

[0141] In possible embodiments of this application, the data written to the specified file is not limited to the aforementioned related data in the communication domain; any data that can determine the communication relationship of the set of communications can be used as related data in the communication domain.

[0142] S305, The notification module sends notification messages to network devices.

[0143] The announcement module encapsulates the set communication operators, set communication algorithms, and communication domain member identifiers of the communication domain into announcement messages and sends the announcement messages to network devices.

[0144] As one possible implementation, the notification message may also include at least one of the following: a communication domain identifier, a communication domain size, and a communication domain notification identifier from a specified file.

[0145] To prevent the notification module from failing to read relevant data from the communication domain due to network errors or other reasons, multiple communication domain members in the same communication domain can all send notification messages to the network device.

[0146] S306. The network device sends an announcement message to the controller.

[0147] When a network device identifies an announcement message based on the communication domain announcement identifier, it sends the announcement message to the controller.

[0148] The notification message can refer to a message carrying data related to the communication domain, such as the communication domain identifier, communication domain size, and communication domain notification identifier, or it can refer to the communication domain identifier, communication domain size, and communication domain notification identifier in the message.

[0149] For example, such as Figure 4As shown, notification messages can be carried in RoCE v2 messages. RoCE v2 messages include an Ethernet (ETH) header, an IP header, a User Datagram Protocol (UDP) header, a Basic Transmission Header (BTH), an HCDN header, a payload, an Invariant Cyclic Redundancy Check (ICRC), and a Frame Check Sequence (FCS). The HCDN header carries relevant data for the communication domain, and the size of each field is as follows: Figure 5 As shown, for example, the size of an ETH message is 14 bits (bytes).

[0150] The HCDN header includes the following fields: tag, version, HCDN length, communication domain (CD), OP, ALGO, communication domain ID (comm ID), NF, CF, commSize, extended, and payload. The payload consists of IP addresses in the communication domain arranged in rank order, i.e., rankIPlist.

[0151] Please refer to Table 1 for the field names and descriptions of the fields included in the HCDN header. Other fields of the RoCE v2 message will not be described here.

[0152] Table 1

[0153]

[0154]

[0155] For example, please refer to Table 2 for HCDN header examples where the communication domain includes 128 computing power chips (cards) and the communication domain includes 1024 computing power chips (cards).

[0156] Table 2

[0157]

[0158] The announcement message can refer to a RoCE v2 message or an HCDN header, that is, an announcement message sent by the network device to the controller. It can be a RoCE v2 message or an HCDN header extracted from a RoCE v2 message based on the communication domain announcement identifier.

[0159] For example, the network device determines that the RoCE v2 message is an advertisement message based on the communication domain advertisement identifier and sends the RoCE v2 message to the controller.

[0160] For example, network devices extract the HCDN header from RoCE v2 messages based on the communication domain advertisement identifier and send the HCDN header as an advertisement message to the controller. If the communication domain is too large, the advertisement message can be sent in packets.

[0161] In possible embodiments of this application, the communication domain announcement identifier can also be any field that can identify communication domain-related information, such as rankIPlist in the payload.

[0162] S307. The controller determines the communication relationship of the communication domain based on the notification message, performs traffic optimization based on the communication relationship, and obtains the ACL.

[0163] The notification message received by the controller can be a RoCE v2 message or an HCDN header. If the notification message is a RoCE v2 message, the controller extracts the HCDN header from the RoCE v2 message according to the communication domain notification identifier. If the notification message is an HCDN header, the controller determines the communication relationship of the communication domain according to the notification message, performs traffic optimization according to the communication relationship, and obtains the ACL.

[0164] As one possible implementation, the controller calculates the communication relationships between members of the communication domain in the aggregated communication based on the aggregated communication operator, aggregated communication algorithm, and communication domain member identifier in the announcement message, combined with the network topology. Specifically, this involves determining the receiver, sender, and transmission / reception order of the data streams between each communication domain member. Based on these parameters, the controller performs traffic optimization on the data streams between communication domain members to obtain the forwarding paths for each data stream. Finally, based on the forwarding paths, the controller obtains the ACL corresponding to the communication device on each forwarding path.

[0165] S308, the controller issues ACL.

[0166] The controller sends ACLs indicating the corresponding forwarding paths to the communication devices included in the forwarding paths of each data stream.

[0167] As one possible implementation, for a forwarding path, the controller sends an ACL corresponding to each of the one or more communication devices on that forwarding path. The ACL corresponding to each communication device is used to indicate the next-hop communication device for the data flow on that forwarding path. For example, the ACL is used to indicate that the outgoing port of the data flow is the port connected to the next-hop communication device on that forwarding path.

[0168] S309. Once the large model training is complete, the AI ​​framework issues a communication domain destruction command.

[0169] A communication domain destruction instruction may include a communication domain identifier. In possible embodiments of this application, in addition to the communication domain identifier, the communication domain identifier may also be replaced with other fields capable of identifying a communication domain.

[0170] S310, The communication library destroys the communication domain according to the communication domain destruction command.

[0171] The communication library determines the corresponding information of the communication domain based on the communication domain identifier of the communication domain destruction instruction, such as the set communication operator, set communication algorithm and communication domain member identifier, and deletes the corresponding information of the communication domain in the communication library.

[0172] S311. The communication library sends the set communication operator, set communication algorithm and communication domain member identifier to the announcement module.

[0173] S312, The notification module sends notification messages to network devices.

[0174] The difference between the notification message in S312 and S305 is that the CD field of the notification message in S312 has a value of 1, which is the communication domain cancellation flag. The notification message in S312 can be regarded as the first notification message, and the notification message in S305 can be regarded as the second notification message.

[0175] S313, The network device sends an announcement message to the controller.

[0176] S314. The controller cancels the traffic optimization of the communication domain based on the notification message.

[0177] The controller determines that the notification message carries a communication domain cancellation identifier. Based on the communication domain's set communication operator, set communication algorithm, and communication domain member identifier, and combined with the network topology, it calculates the communication relationships between each communication domain member in the set communication. Then, the controller performs traffic optimization on the data streams between each communication domain member according to the receiver, sender, and transmission / reception order in the communication relationships, obtaining the forwarding paths for each data stream. This process deletes duplicate forwarding paths already stored in the controller, thus canceling the traffic optimization.

[0178] As one possible implementation, the notification message may also include a communication domain identifier. If the controller determines that the notification message carries a communication domain revocation identifier and deletes the forwarding path corresponding to the communication domain identifier, then the controller does not need to recalculate the communication relationship and forwarding path.

[0179] S315, The controller issues an ACL deletion command.

[0180] The controller sends corresponding ACL deletion commands to the communication devices included in N forwarding paths out of the M forwarding paths, so that each communication device deletes the corresponding ACL.

[0181] For a given forwarding path, the controller sends a corresponding ACL deletion command to one or more communication devices on that forwarding path.

[0182] As one possible implementation, the controller can send an ACL deletion instruction corresponding to the recalculated forwarding path to one or more communication devices in the recalculated forwarding path. The ACL deletion instruction includes an ACL entry instructing the data flow to be forwarded by the recalculated forwarding path, causing the communication device to delete the same ACL entry as the ACL entry in the ACL deletion instruction from its configured ACL entries.

[0183] As another possible implementation, the controller determines the issued ACL entry corresponding to the communication domain identifier carried in the communication message. The issued ACL entry includes the issued communication device and the ACL entry. Then, the controller sends an ACL deletion command to the issued communication device. This ACL deletion command includes the ACL entries included in the issued ACL entry, so that the communication device deletes the same ACL entry as the ACL entry in the configured ACL entries. The correspondence between the communication domain identifier and the issued ACL entry can be determined by a stored mapping table.

[0184] In this way, if a communication domain is revoked or changed, the forwarding path that has already been issued can be revoked based on subsequent notification messages, so as to avoid uplink or downlink conflicts caused by subsequent data streams continuing to forward according to the forwarding path before the communication domain was revoked.

[0185] The above text combined Figure 5 Taking a single communication domain as an example, the overall process of sending and processing announcement messages provided in this application in a large model training scenario is described. However, this application does not limit the number of communication domains, i.e., in Figure 3 or Figure 2 Based on the methods for sending and processing notification messages shown, Figure 3 The controller or Figure 3 In addition to optimizing traffic in a communication domain based on a notification message from that domain, the second communication device can also receive notification messages from multiple communication devices, determine the global forwarding path based on the communication relationships of multiple communication domains, and thus optimize global traffic by integrating the communication relationships of multiple communication domains.

[0186] like Figure 2 As shown, Figure 6 A flowchart illustrating a method for sending and processing notification messages provided in this application. Figure 6,by Figure 3 Taking the first and second communication devices shown as examples, the first communication device can be a server corresponding to rank 0 in the first communication domain configured by the AI ​​framework, and the second communication device can also communicate with the server corresponding to rank 0 in the second communication domain configured by the AI ​​framework, i.e., the third communication device. The steps of the second communication device to determine the global forwarding path and perform global traffic optimization based on the communication relationship of multiple communication domains may include the following steps S601-S611.

[0187] S601, The first communication device acquires the set communication operator, set communication algorithm and communication domain member identifier of the first communication domain in set communication.

[0188] S602, the first communication device generates a first announcement message based on the set communication operator, set communication algorithm and communication domain member identifier of the first communication domain.

[0189] S603, The first communication device sends a first notification message.

[0190] Please refer to the specific implementation methods of S601-S603 above. Figure 2 S201-S203 in the above will not be elaborated here.

[0191] S604. The third communication device acquires the set communication operator, set communication algorithm and communication domain member identifier of the second communication domain in set communication.

[0192] S605, the third communication device generates a third announcement message based on the set communication operator, set communication algorithm and communication domain member identifier of the second communication domain.

[0193] S606, The third communication device sends a third notification message.

[0194] The steps in S604-S606 can be referred to the relevant paragraphs in S601-S603. The difference between them and S601-S603 lies in the execution subject and the communication domain, which will not be repeated here.

[0195] S607, The second communication device receives the first notification message and the third notification message.

[0196] S608. The second communication device determines the first communication relationship between each communication domain member in the first communication domain based on the set communication operator, set communication algorithm and communication domain member identifier of the first communication domain.

[0197] S609. The second communication device determines the second communication relationship between each communication domain member in the second communication domain based on the set communication operator, set communication algorithm and communication domain member identifier of the second communication domain.

[0198] S610, the second communication device determines M forwarding paths based on the first communication relationship and the second communication relationship.

[0199] The second communication device performs traffic optimization on the data streams in the first and second communication relationships based on the first communication relationship of each communication domain member in the first communication domain and the second communication relationship of each communication domain member in the second communication domain, and obtains M forwarding paths.

[0200] As one possible implementation, traffic optimization can be based on multi-path routing methods such as load balancing and link status, including ECMP and static routing strategies. These methods reduce traffic conflicts on the uplink or downlink paths of members within the first and second communication domains at different stages of the aggregated communication process. Specifically, traffic optimization can address traffic conflicts on the uplink or downlink paths of members within the first and second communication domains at different stages of the aggregated communication process, as well as traffic conflicts on the uplink or downlink paths between members within the first and second communication domains at different stages of the aggregated communication process.

[0201] S611. The second communication device sends the corresponding forwarding path to the communication device included in N forwarding paths out of M forwarding paths.

[0202] The steps in S607-S611 above can be referenced from the relevant paragraphs in S204-S207. Figure 2 The difference between S204 and S207 lies in the fact that the second communication device integrates the communication relationships of multiple communication domains in the network system, such as the first and second communication domains, to determine the global forwarding path and perform global traffic optimization. In this way, by integrating the communication relationships of multiple communication domains, multi-path routing is performed on the global data flow of the task, avoiding uplink or downlink conflicts between data flows in the link between communication domains, and improving the load balancing of global communication.

[0203] The above text combined Figure 2 Taking the method of sending and processing notification messages in coordination between communication devices as an example, the method of sending and processing notification messages is described in general. Next, taking the server group, network devices and controller in network system 100 as examples, the method of sending and processing notification messages is described by way of example.

[0204] Please refer to Figure 2-6 , Figure 7 A flowchart illustrating a method for sending and processing notification messages provided in this application. Figure 7 The method for sending and processing this notification message may include the following steps S701-S707.

[0205] S701. The server extracts the set communication operator, set communication algorithm and communication domain member identifier of the communication domain through the communication library.

[0206] For details on how the servers in server group 101 extract the set communication operator, set communication algorithm, and communication domain member identifier from the communication library, please refer to [reference needed]. Figure 4 The S303-304 shown will not be described again here.

[0207] S702. The server generates an announcement message based on the set communication operator, set communication algorithm and communication domain member identifier of the communication domain.

[0208] S703, The server sends an announcement message to network device 105 through the announcement module.

[0209] For details on how the server encapsulates and sends the notification message, please refer to [link / reference]. Figure 3 S305, as shown, will not be described in detail here. The notification message includes a communication domain notification identifier.

[0210] In a possible embodiment of this application, if the server does not have the address of controller 110, the server may send an announcement message to network device 105 through the announcement module by sending the announcement message to other servers through the announcement module, so that the other servers can forward the announcement message to network device 105. For example, if a server in server group 101 does not store the route of controller 110, and sends an announcement message (destination address is a server in server group 102) to a server in server group 102, and the server in server group 102 stores the route of controller 110, then if the server in server group 102 determines that the announcement message includes a communication domain announcement identifier, it will forward the announcement message to network device 105 according to the route.

[0211] In a possible embodiment of this application, if the server does not have the address of controller 110, the server may send an announcement message to network device 105 through the announcement module by sending the announcement message to other servers, where the destination address of the announcement message is the address of the other server. For example, if a server in server group 101 does not store the route of controller 110, it may send an announcement message to a server in server group 102 (the destination address is the address of the server in server group 102).

[0212] In a possible embodiment of this application, if the server has the address of controller 110, the server can send an announcement message to network device 105 through the announcement module in the following way: the server sends an announcement message to the controller through network device 105 via the announcement module, and the destination address of the announcement message is the address of the controller. For example, if the server in server group 101 does not store the route of controller 110, it sends an announcement message to the controller through the network device, and the destination address is the address of the controller.

[0213] S704, network device 105 sends an announcement message to controller 110.

[0214] After recognizing that the announcement message carries a communication domain announcement identifier, the network device 105 sends an announcement message to the controller 110.

[0215] After recognizing that the notification message carries a communication domain notification identifier, the network device 105 can modify the destination address of the received notification message to the controller 110 and then send the notification message to the controller 110, or it can copy the received notification message and send the copied notification message to the controller 110.

[0216] Specifically, when server 101 does not have the address of controller 110, the server can send an announcement message to network device 105 through the announcement module in the following ways: the server sends an announcement message to other servers through the announcement module, so that the other servers can forward the announcement message to network device 105. Network device 105 receives the announcement message sent by other servers, such as server 102. The destination address in the announcement message is the address of controller 110. Network device 105 can copy the received announcement message and send the copied announcement message to controller 110.

[0217] If server 101 does not have the address of controller 110, the server can send an announcement message to network device 105 through the announcement module in the following ways: the server sends an announcement message to other servers through the announcement module, and the destination address of the announcement message is the address of the other server. Network device 105 receives the announcement message sent by the server, for example, server 101, and the destination address in the announcement message is the address of the other server. After modifying the destination address of the received announcement message to controller 110, network device 105 sends the announcement message to controller 110.

[0218] If server 101 has the address of controller 110, the server can send an announcement message to network device 105 through the announcement module in the following ways: the server sends an announcement message to the controller through network device 105 via the announcement module. The destination address of the announcement message is the address of the controller. Network device 105 can copy the received announcement message and send the copied announcement message to controller 110.

[0219] For details on how network device 105 sends notification messages to controller 110, please refer to [link / reference needed]. Figure 3 S306, as shown, will not be described in detail here.

[0220] The identification of the communication domain announcement identifier by the network device 105 can be implemented by the packet processing module in the network device 105, and the sending of the announcement message from the network device 105 to the controller 110 can be implemented by the uploading module in the network device 105.

[0221] S705 and controller 110 determine the communication relationships between members of each communication domain based on the set communication operator, set communication algorithm and communication domain member identifier.

[0222] The controller 110 can determine the communication relationship between members of each communication domain within the communication domain, which can be achieved by the parsing module in the controller 110.

[0223] S706 and controller 110 perform traffic optimization based on communication relationships to obtain ACL.

[0224] The flow optimization of the controller 110 can be implemented by the flow optimization module in the controller 110.

[0225] S707, Controller 110 issues ACL.

[0226] For the specific implementation details of S705-S707 above, please refer to [link / reference]. Figure 3 S307-S308 shown will not be described again here.

[0227] In possible embodiments of this application, in addition to network device 105 identifying and forwarding the announcement message, server group 101 and controller 110 may also communicate without a network device connection, i.e., the server sends the announcement message to controller 110. (The following is in conjunction with...) Figure 3 The method for the server to send notification messages to controller 110 is described.

[0228] Please refer to Figure 8 , Figure 8 A flowchart illustrating a method for sending and processing notification messages provided in this application. Figure 8 The method for sending and processing this notification message may include the following steps S801-S806.

[0229] S801, The server extracts the set communication operator, set communication algorithm and communication domain member identifier of the communication domain through the communication library.

[0230] For details on how the servers in server group 101 extract the set communication operator, set communication algorithm, and communication domain member identifier from the communication library, please refer to [reference needed]. Figure 5 The S303-304 shown will not be described again here.

[0231] S802. The server generates an announcement message based on the set communication operator, set communication algorithm and communication domain member identifier of the communication domain.

[0232] S803, the server sends an announcement message to the controller 110 through the announcement module.

[0233] For details on how the server encapsulates and sends the notification message, please refer to [link / reference]. Figure 3 The difference between S305 shown is that the two are sent to different targets, which will not be elaborated here. The notification message includes a communication domain notification identifier.

[0234] S804 and controller 110 determine the communication relationships between members of each communication domain based on the set communication operator, set communication algorithm and communication domain member identifier.

[0235] After recognizing that the notification message carries a communication domain notification identifier, the controller 110 extracts the communication domain set communication operator, set communication algorithm and communication domain member identifier from the notification message, and then determines the communication relationship between each communication domain member in the communication domain based on the communication domain set communication operator, set communication algorithm and communication domain member identifier.

[0236] S805 and controller 110 perform traffic optimization based on communication relationships to obtain ACL.

[0237] S806, Controller 110 issues ACL.

[0238] For the specific implementation details of S804-S806 above, please refer to [link / reference]. Figure 3 S307-S308 shown will not be described again here.

[0239] Thus, this application provides a method for sending and processing announcement messages between server 101 and controller 110 under different connection relationships, making the method applicable to more network architectures and improving its applicability.

[0240] The above text combined Figure 3 and Figure 7 Examples of two methods for server 101 to send notification messages to controller 110 are provided. After receiving the notification message, controller 110, as the first communication device, needs to determine the communication relationship of the communication domain based on the notification message and perform traffic optimization according to the communication relationship. The following section will combine... Figure 8The document provides a detailed explanation of how the first communication device determines the communication relationship and optimizes the traffic through the parsing module and the traffic optimization module.

[0241] Please refer to Figure 9 , Figure 9 This application provides a flowchart illustrating the steps for determining communication relationships and optimizing traffic. The process may include the following steps S901-S905.

[0242] S901, The first communication device receives the first notification message.

[0243] S902, the first communication device parses the first announcement message to obtain the set communication operator, set communication algorithm and communication domain member identifier of the first communication domain.

[0244] The first communication device parses the first announcement message through the parsing module to obtain the set communication operator, set communication algorithm and communication domain member identifier of the first communication domain.

[0245] S903. The first communication device determines the first communication relationship of each communication domain member in the first communication domain based on the set communication operator, set communication algorithm and communication domain member identifier of the first communication domain.

[0246] The first communication device, through a parsing module, determines the first communication relationship of each communication domain member in the first communication domain based on the set communication operator, set communication algorithm, and communication domain member identifier of the first communication domain.

[0247] The first communication relationship includes the communication relationships among members of each communication domain within the first communication domain at different stages of the aggregated communication. The first communication relationship includes the correspondence between senders and receivers among members of each communication domain within the first communication domain.

[0248] For example, the first communication relationship includes stage 1, stage 2, and any other stages. This embodiment uses the communication domain members of the first communication domain, including server 1, server 4, server 7, and server 10, and illustrates stage 1 and stage 2 of the collective communication among the communication members within the first communication domain. Specifically, server 1, server 4, server 7, and server 10... Figure 9 The ports are labeled ip1-ip4 in sequence. The port on network device 105 that connects to network device 107 is port1, and the port on network device 105 that connects to network device 108 is port2.

[0249] In Phase 1, the communication relationships among members of each communication domain within the first communication domain are: ip1 → ip2, ip3 → ip4, ...

[0250] In Phase 2, the communication relationships among members of each communication domain within the first communication domain are: ip1 → ip3, ip2 → ip4, and so on.

[0251] The above S901-S903 can be executed by the parsing module of the first communication device.

[0252] S904. The first communication device performs traffic optimization on each data stream of the communication relationship at each stage to obtain M forwarding paths.

[0253] For example, in phase 1, the forwarding path of the data flow from ip1 to ip2 in network device 105 is: ip1 to ip2 port1, that is, the data flow sent from server 1 to server 4 is forwarded by port1. Similarly, in phase 1, the forwarding path of the data flow from ip3 to ip4 in network device 105 is: ip3 to ip4 port2. In phase 2, the forwarding path of the data flow from ip1 to ip3 in network device 105 is: ip1 to ip3 port2. In phase 2, the forwarding path of the data flow from ip2 to ip4 in network device 105 is: ip2 to ip4 port1.

[0254] S905. The first communication device sends the corresponding forwarding path to the communication device included in N forwarding paths out of M forwarding paths.

[0255] For example, taking controller 110 as the first communication device, controller 110 sends an ACL to network device 105. This ACL instructs the data flow from server 1 to server 4 to be forwarded via port 2, the data flow from server 7 to server 10 to be forwarded via port 1, the data flow from server 1 to server 7 to be forwarded via port 2, and the data flow from server 4 to server 10 to be forwarded via port 1. In this way, by issuing the ACL, data flows between server groups can be instructed to be forwarded according to the specified forwarding path at different stages of the aggregated communication, avoiding uplink or downlink path conflicts.

[0256] The above S904-S905 can be executed by the traffic optimization module of the first communication device.

[0257] To complement the notification message sending method provided in the embodiments of this application, the embodiments of this application also provide a notification message sending apparatus 1000, which is used to execute the notification message sending method described above. For example... Figure 9 As shown, the device includes a transceiver module 1010 and a processing module 1020.

[0258] For example, the notification message sending device 1000 can implement Figure 10 The function of the first communication device in China.

[0259] The transceiver module 1010 is used to obtain the first set communication operator, the first set communication algorithm, and the first communication domain member identifier in set communication.

[0260] The processing module 1020 is used to generate a first announcement message based on the first set communication operator, the first set communication algorithm and the first communication domain member identifier.

[0261] The transceiver module 1010 is used to send the first announcement message.

[0262] As one possible implementation, the transceiver module 1010 is specifically used to extract from the communication library the first set communication operator, the first set communication algorithm, and the first communication domain member identifier in set communication.

[0263] As one possible implementation, the first notification message also includes at least one of a communication domain notification identifier and a communication domain identifier, wherein the communication domain notification identifier is used to indicate that the message type is a notification message, and the communication domain identifier is used to indicate the communication domain to which the communication device belongs.

[0264] As one possible implementation, the first set communication operator is the set communication operator corresponding to the first communication domain, and the first set communication algorithm is the set communication algorithm corresponding to the first communication domain.

[0265] As one possible implementation, the first notification message also includes a communication domain creation identifier.

[0266] As one possible implementation, the transceiver module 1010 is further configured to receive a communication domain destruction instruction; the task end instruction includes a first communication domain identifier. The processing module 1020 is further configured to delete the information corresponding to the first communication domain in the communication database according to the first communication domain identifier. The transceiver module 1010 is further configured to send a second announcement message; the second announcement message includes a first set communication operator, a first set communication algorithm, a first communication domain member identifier, and a communication domain revocation identifier.

[0267] As one possible implementation, the first notification message is in the Hierarchical Content Delivery Network (HCDN) header of the RoCE v2 message.

[0268] To complement the notification message processing method provided in the embodiments of this application, the embodiments of this application also provide a notification message processing apparatus 1100, which is used to execute the notification message processing method described above. For example... Figure 2 As shown, the device includes a transceiver module 1110 and a processing module 1120.

[0269] For example, the notification message processing device 1100 can implement Figure 11 The function of the second communication device.

[0270] The transceiver module 1110 is used to receive a first announcement message sent by the first communication device; the first announcement message includes a first set communication operator, a first set communication algorithm, and a first communication domain member identifier in set communication.

[0271] The processing module 1120 is used to determine the first communication relationship between each communication domain member in the first communication domain based on the first set communication operator, the first set communication algorithm and the first communication domain member identifier.

[0272] The processing module 1120 is used to determine M forwarding paths based on the first communication relationship; the forwarding paths are used to indicate the paths through which the communication device forwards the data stream.

[0273] The transceiver module 1110 is used to send the corresponding forwarding path to the communication devices included in N forwarding paths out of M forwarding paths. M and N are positive integers greater than 1.

[0274] As one possible implementation, the first notification message also includes at least one of a communication domain notification identifier and a communication domain identifier, wherein the communication domain notification identifier is used to indicate that the message type is a notification message, and the communication domain identifier is used to indicate the communication domain to which the communication device belongs.

[0275] As one possible implementation, the first set communication operator is the set communication operator corresponding to the first communication domain, and the first set communication algorithm is the set communication algorithm corresponding to the first communication domain.

[0276] As one possible implementation, the first notification message also includes a communication domain creation identifier.

[0277] As one possible implementation, the transceiver module 1110 is further configured to receive a second notification message sent by the first communication device; the second notification message includes a first set communication operator, a first set communication algorithm, a first communication domain member identifier, and a communication domain revocation identifier. The processing module 1120 is further configured to determine a first communication relationship between communication domain members within the first communication domain based on the first set communication operator, the first set communication algorithm, and the first communication domain member identifier; determine M forwarding paths based on the first communication relationship; and revoke the M forwarding paths based on the communication domain revocation identifier.

[0278] As one possible implementation, the first notification message is in the Hierarchical Content Delivery Network (HCDN) header of the RoCE v2 message.

[0279] As one possible implementation, the first communication relationship includes the correspondence between the sender and the receiver among the members of each communication domain within the first communication domain.

[0280] As one possible implementation, the transceiver module 1110 is further configured to receive a third announcement message; the third announcement message includes a second set communication operator, a second set communication algorithm, and a second communication domain member identifier in the set communication. The processing module 1120 is further configured to determine a second communication relationship between communication domain members within the second communication domain based on the second set communication operator, the second set communication algorithm, and the second communication domain member identifier. Specifically, the processing module 1120 is configured to determine M forwarding paths based on the first and second communication relationships.

[0281] As one possible implementation, the first communication device and each member of the communication domain within the first communication domain are communication devices that perform artificial intelligence (AI) training tasks.

[0282] It should be understood that the above Figure 2 or Figure 10 The provided device, in implementing its functions, is only illustrated by the division of the above-described functional modules. In practical applications, the functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. Furthermore, the device and method embodiments provided in the above embodiments belong to the same concept, and their specific implementation processes are detailed in the method embodiments, and will not be repeated here.

[0283] Figure 11 This is a schematic diagram of the structure of a communication device provided in this embodiment. Figure 12 As shown, the communication device 1200 includes a processor 1210, a bus 1220, a memory 1230, a communication interface 1240, and a memory unit 1250 (also referred to as a main memory unit). The processor 1210, memory 1230, memory unit 1250, and communication interface 1240 are connected via the bus 1220.

[0284] It should be understood that in this embodiment, the processor 1210 may be a CPU, but it may also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor.

[0285] The processor may also be a graphics processing unit (GPU), a neural network processing unit (NPU), a microprocessor, or one or more integrated circuits used to control the execution of the program in this application.

[0286] In a possible embodiment, communication device 1200 may refer to processor 1210.

[0287] The communication interface 1240 is used to enable communication between the communication device 1200 and external devices or components. In this embodiment, the communication device 1200 is used to implement... Figure 12 When any network device, server, or controller is in use, the communication interface 1240 is used as a physical port for sending and receiving data packets.

[0288] Bus 1220 may include a pathway for transmitting information between the aforementioned components (such as processor 1210, memory unit 1250, and memory 1230). In addition to a data bus, bus 1220 may also include a power bus, a control bus, and a status signal bus, etc. However, for clarity, ... Figure 1 In this context, all buses are labeled as Bus 1220. Bus 1220 can be a Peripheral Component Interconnect Express (PCIe) bus, or an Extended Industry Standard Architecture (EISA) bus, a Unified Bus (Ubus or UB), a Compute Express Link (CXL) bus, a Cache Coherent Interconnect for Accelerators (CCIX) bus, etc. Bus 1220 can be categorized into address bus, data bus, and control bus.

[0289] As an example, the communication device 1200 may include multiple processors. A processor may be a multi-core (multi-CPU) processor. Here, a processor may refer to one or more devices, circuits, and / or computing units used to process data (e.g., computer program instructions).

[0290] It is worth noting that, Figure 12Taking the communication device 1200, which includes a processor 1210 and a memory 1230, as an example, the processor 1210 and the memory 1230 are used to indicate a type of device or equipment. In specific embodiments, the number of each type of device or equipment can be determined according to business requirements.

[0291] Memory cell 1250 may be volatile memory or non-volatile memory, or may include both. The non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory may be random access memory (RAM), which serves as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).

[0292] The memory 1230 can correspond to the storage medium used to store computer instructions and other information in the above method embodiments, such as a disk, like a mechanical hard disk or a solid-state hard disk.

[0293] The aforementioned communication device 1200 can be a general-purpose device or a special-purpose device. For example, the communication device 1200 can be an edge device (e.g., a box carrying a chip with processing capabilities). Alternatively, the communication device 1200 can also be a chip, network device, server, or other device with computing capabilities.

[0294] It should be understood that the communication device 1200 according to this embodiment may correspond to the notification message sending device 1000 or the notification message processing device 1000 in this embodiment, and may correspond to the execution of the notification message sending device 1000 according to this embodiment. Figure 12 or Figure 2The corresponding entities in the method, and the above-mentioned and other operations and / or functions of each module in the notification message sending device 1000 or the notification message processing device 1000 are respectively implemented to achieve Figure 6 or Figure 2 For the sake of brevity, the corresponding process of the Chinese method will not be elaborated here.

[0295] This application also provides a communication system, which includes a first communication device and a second communication device. The first communication device is used to acquire a first set communication operator, a first set communication algorithm, and a first communication domain member identifier in set communication; generate a first announcement message based on the first set communication operator, the first set communication algorithm, and the first communication domain member identifier; and send the first announcement message. The second communication device is used to receive the first announcement message sent by the first communication device; the first announcement message includes the first set communication operator, the first set communication algorithm, and the first communication domain member identifier in set communication; determine a first communication relationship between communication domain members within the first communication domain based on the first set communication operator, the first set communication algorithm, and the first communication domain member identifier; determine M forwarding paths based on the first communication relationship; the forwarding paths indicate the paths through which the communication devices forward data streams, where M is a positive integer greater than 1; and send the corresponding forwarding paths to the communication devices included in N of the M forwarding paths, where N is a positive integer greater than 1.

[0296] As one possible implementation, the first communication device and the second communication device can cooperate to perform actions such as... Figure 6 or Figure 2 Figure 3 The method steps in the illustrated embodiments.

[0297] The first communication device can be used to implement the function of the aforementioned notification message sending device 1000, and the second communication device can be used to implement the function of the aforementioned notification message processing device 1100. The hardware structure of the first and second communication devices can refer to that of communication device 1200.

[0298] This application also provides a computer program product containing instructions. This computer program product may be a software or program product containing instructions, capable of running on a computing device or stored on any usable medium. When the computer program product runs on at least one computing device, it causes the at least one computing device to execute the aforementioned method for sending and processing notification messages.

[0299] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium capable of being stored by a computing device, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to execute the aforementioned method for sending and processing notification messages.

[0300] This application also provides a chip, including a processor. The processor is used to retrieve and execute instructions stored in a memory, causing a communication device equipped with the chip to perform the aforementioned method for sending or processing notification messages.

[0301] As one possible implementation, the chip also includes an input interface, an output interface, and a memory. The input interface, the output interface, the processor, and the memory are connected via internal interconnection paths. The processor is used to execute code in the memory. When the code is executed, the processor is used to execute the aforementioned notification message sending method or notification message processing method.

[0302] The method steps in this embodiment can be implemented in hardware or by a processor executing software instructions. The software instructions can consist of corresponding software modules, which can be stored in random access memory, flash memory, read-only memory, programmable read-only memory, erasable programmable read-only memory, electrically erasable programmable read-only memory, registers, hard disks, portable hard disks, CD-ROMs, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor, enabling the processor to read information from and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and storage medium can reside in an ASIC. Alternatively, the ASIC can reside in an electronic device (such as a network device). Of course, the processor and storage medium can also exist as discrete components in an electronic device.

[0303] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instructions are loaded and executed on a computer, the processes or functions described in the embodiments of this application are performed entirely or partially. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user equipment, or other programmable device. The computer program or instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another. For example, the computer program or instructions can be transferred from one website, computer, server, or data center to another website, computer, server, or data center via wired or wireless means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium, such as a floppy disk, hard disk, or magnetic tape; it can also be an optical medium, such as a digital video disc (DVD); or it can be a semiconductor medium, such as a solid-state drive (SSD). The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in this application, and these modifications or substitutions should all be covered within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A method of processing an advertisement message, characterized by, The method comprises: receiving a first announcement message sent by a first communication device; the first announcement message comprises a first set communication operator, a first set communication algorithm and a first communication domain member identifier in set communication; determining a first communication relationship between communication domain members in the first communication domain according to the first set communication operator, the first set communication algorithm and the first communication domain member identifier; determining M forwarding paths according to the first communication relationship; the forwarding path is used for indicating the path of the communication device forwarding data flow, and M is a positive integer greater than 1; sending a corresponding forwarding path to the communication device included in N forwarding paths of the M forwarding paths, and N is a positive integer greater than 1.

2. The method of claim 1, wherein, The first announcement message further comprises at least one of a communication domain announcement identifier and a communication domain identifier, the communication domain announcement identifier is used for indicating that the message type of the announcement message is an announcement message, and the communication domain identifier is used for indicating the communication domain to which the communication device belongs.

3. The method according to claim 1 or 2, characterized in that, The first set communication operator is a set communication operator corresponding to the first communication domain, and the first set communication algorithm is a set communication algorithm corresponding to the first communication domain.

4. The method according to any one of claims 1-3, characterized in that, The first announcement message further comprises a communication domain creation identifier.

5. The method according to any one of claims 1-4, characterized in that, The method further comprises: receiving a second announcement message sent by the first communication device; the second announcement message comprises the first set communication operator, the first set communication algorithm, the first communication domain member identifier and a communication domain revocation identifier; determining the first communication relationship between communication domain members in the first communication domain according to the first set communication operator, the first set communication algorithm and the first communication domain member identifier; determining the M forwarding paths according to the first communication relationship; revoking the M forwarding paths according to the communication domain revocation identifier.

6. The method according to any one of claims 1-5, characterized in that, The first announcement message is in a hierarchical content distribution network (HCDN) header in a remote direct memory access over Ethernet (RoCE v2) message.

7. The method according to any one of claims 1 to 6, characterized in that, The first communication relationship comprises a corresponding relationship between a sender and a receiver in each communication domain member in the first communication domain.

8. The method according to any one of claims 1-7, characterized in that, The method further comprises: receiving a third announcement message; the third announcement message comprises a second set communication operator, a second set communication algorithm and a second communication domain member identifier in set communication; determining a second communication relationship between communication domain members in the second communication domain according to the second set communication operator, the second set communication algorithm and the second communication domain member identifier; determining the M forwarding paths according to the first communication relationship and the second communication relationship. Each communication domain member in the first communication domain is a communication device performing an artificial intelligence (AI) training task.

9. The method according to any one of claims 1-8, characterized in that, The method comprises:

10. A method of transmitting an advertisement message, characterized by, obtaining a first set communication operator, a first set communication algorithm and a first communication domain member identifier in set communication; generating a first announcement message according to the first set communication operator, the first set communication algorithm and the first communication domain member identifier; sending the first announcement message. The method comprises:

11. The method of claim 10, wherein, ​ extracting, from the communication library, a first set communication operator, a first set communication algorithm and a first communication domain member identifier in the set communication.

12. The method according to claim 10 or 11, characterized in that, The first announcement message further comprises at least one of a communication domain announcement identifier and a communication domain identifier, the communication domain announcement identifier being used to indicate that the message type of the announcement message is an announcement message, and the communication domain identifier being used to indicate a communication domain to which the communication device belongs.

13. The method according to any one of claims 10-12, characterized in that, The first set communication operator is a set communication operator corresponding to the first communication domain, and the first set communication algorithm is a set communication algorithm corresponding to the first communication domain.

14. The method according to any one of claims 10-13, characterized in that, The first announcement message further comprises a communication domain creation identifier.

15. The method according to any one of claims 10-14, characterized in that, The method further comprises: receiving a communication domain revocation instruction; the revocation instruction comprising a first communication domain identifier of the first communication domain; deleting, according to the first communication domain identifier, information corresponding to the first communication domain in the communication library; sending a second announcement message; the second announcement message comprising the first set communication operator, the first set communication algorithm, the first communication domain member identifier and a communication domain revocation identifier.

16. The method according to any one of claims 10-15, characterized in that, The first announcement message is in a hierarchical content distribution network (HCDN) header in a RoCEv2 message.

17. A communications device, characterized by The communication device comprises a processor and a memory; The processor is configured to execute instructions stored in the memory, so that the communication device performs the method according to any one of claims 1-16.

18. A computer program product comprising instructions, characterized in that, The instructions, when executed by a communication device, cause the communication device to perform the method according to any one of claims 1-16.

19. A computer-readable storage medium, characterized in that, Computer program instructions, when executed by a communication device, cause the communication device to perform the method according to any one of claims 1-16.