Advertisement message processing and sending method, and device

By processing notification messages to determine the membership relationships within the communication domain, the uplink and downlink conflict problem in multi-path routing is resolved, achieving load balancing and improved communication efficiency in AI large-scale model training scenarios.

WO2026056477A1PCT designated stage Publication Date: 2026-03-19HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-07-01
Publication Date
2026-03-19

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 the load balancing of global communication.

Benefits of technology

It achieves load balancing of data flow in AI large model training scenarios, improving the efficiency and stability of communication networks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025106491_19032026_PF_FP_ABST
    Figure CN2025106491_19032026_PF_FP_ABST
Patent Text Reader

Abstract

The present invention relates to the technical field of communications, and provides an advertisement message processing and sending method, and a device. In the advertisement message processing and sending method, a first communication device acquires a first collective communication operator, a first collective communication algorithm, and a first communication domain member identifier in collective communication, and sends a first advertisement message comprising the first collective communication operator, the first collective communication algorithm, and the first communication domain member identifier; and a second communication device determines a first communication relationship between communication domain members in a first communication domain on the basis of the first advertisement message, determines M forwarding paths on the basis of the first communication relationship, and sends corresponding forwarding paths to communication devices involved in N forwarding paths among the M forwarding paths. In this way, on the basis of fully determining a communication relationship of a first communication domain, multipath routing is performed on global data streams, thereby avoiding uplink or downlink conflicts of data streams of the communication domain on links and improving load balancing of global communication.
Need to check novelty before this filing date? Find Prior Art

Description

Processing method, sending method and device of announcement message

[0001] The present application claims priority to the Chinese patent application No. 202411267574.5, filed on September 10, 2024, and entitled "Processing method, sending method and device of announcement message", the whole content of which is incorporated herein by reference. TECHNICAL FIELD

[0002] The present application relates to the field of communication technology, in particular to a processing method, a sending method and a device of an announcement message. BACKGROUND

[0003] In an artificial intelligence (AI) training scenario, AI large model training requires massive computing power support, which cannot be provided by a single server and needs a large number of servers as nodes. Each node forms a cluster through a network. The network structure of each node is usually a two-layer or three-layer network architecture. Due to the existence of multiple paths in the network, the data flow of each node needs to be routed through multiple paths to achieve network traffic balance and improve bandwidth utilization. However, the current multiple path routing method still has uplink conflict or downlink conflict of data flow, which leads to uneven network load in the AI large model training scenario and reduces the AI large model training efficiency. SUMMARY

[0004] The present application provides a processing method, a sending method and a device of an announcement message to solve the problem of uplink conflict or downlink conflict of data flow in the multiple path routing method.

[0005] In a first aspect, a processing method of an announcement message is provided. The method comprises: receiving a first announcement message sent by a first communication device, wherein the 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 each communication domain member 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, wherein the forwarding path is used to indicate a path of the communication device forwarding data flow; and sending a corresponding forwarding path to a communication device included in N forwarding paths of the M forwarding paths, wherein M and N are positive integers greater than 1.

[0006] The execution subject of the processing method of the announcement message can be a controller, a management server, or a device or node with a communication control function, which can also be referred to as a second communication device with a control or management function. The first communication device can be a router, a switch, a gateway, or the like, or a switching chip, a network card, or the like, with a switching function. The first communication device can be a computing power node, a server, a computer, or the like, or a computing power chip, a processor (such as a neural network processing unit (NPU), a central processing unit (CPU), a graphical processing unit (GPU), or the like), an AI acceleration card, or the like. The first communication device determines and sends the first announcement message.

[0007] Based on the above processing method of the announcement message, the first announcement message carries the first set communication operator, the first set communication algorithm, and the first communication domain member identifier in the set communication. Based on the first set communication operator, the first set communication algorithm, and the first communication domain member identifier, the first communication relationship between the communication domain members can be determined, so that the data flow of each communication domain member is multi-path routed according to the first communication relationship. In this way, on the basis of completely determining the communication relationship between the communication domain members, the global data flow is multi-path routed, avoiding uplink or downlink conflicts of the data flow of the communication domain in the link, and improving the load balancing of global communication.

[0008] In combination with the processing method of the announcement message provided in the first aspect, as a possible implementation manner, the first announcement message further includes at least one of a communication domain announcement identifier and a communication domain identifier. The communication domain announcement identifier is used to indicate that the message type is an announcement message, and the communication domain identifier is used to indicate the communication domain to which the communication device belongs. In this way, the device receiving the first announcement message can identify the type of the first announcement message and the corresponding communication domain.

[0009] In combination with the processing method of the announcement message provided in the first aspect, as a possible implementation manner, 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.

[0010] In combination with the processing method of the announcement message provided in the first aspect, as a possible implementation manner, the first announcement message further includes a communication domain creation identifier.

[0011] With reference to the method for processing the announcement message provided in the first aspect, as a possible implementation manner, the method for processing the announcement message can further include revoking the issued forwarding paths. For example, a second announcement message sent by the first communication device is received, the second announcement message including the first set communication operator, the first set communication algorithm, the first communication domain member identifier, and a communication domain revocation identifier; the first communication relationship between the communication domain members in the first communication domain is determined according to the first set communication operator, the first set communication algorithm, and the first communication domain member identifier; the M forwarding paths are determined according to the first communication relationship; and the M forwarding paths are revoked according to the communication domain revocation identifier. In this way, in the case where revocation or other changes occur in the first communication domain, the issued forwarding paths can be revoked based on the second announcement message, so that uplink conflict or downlink conflict does not occur when subsequent data flows continue to be forwarded according to the forwarding paths before the revocation of the first communication domain.

[0012] With reference to the method for processing the announcement message provided in the first aspect, as a possible implementation manner, the first announcement message is a hierarchical content delivery network (HCDN) header in a remote direct memory access over converged ethernet version 2 (RoCE v2) message.

[0013] With reference to the method for processing the announcement message provided in the first aspect, as a possible implementation manner, the first communication relationship includes a correspondence relationship between a sender and a receiver among the communication domain members in the first communication domain. In this way, the first communication relationship can represent the correspondence relationship between the sender and the receiver among the communication domain members in the entire set communication process.

[0014] With reference to the method for processing the announcement message provided in the first aspect, as a possible implementation manner, the method for processing the announcement message can further include performing traffic optimization on multiple communication domains. For example, a third announcement message is received, and a second communication relationship between the communication domain members in a second communication domain is determined according to the second set communication operator, the second set communication algorithm, and the second communication domain member identifier carried in the third announcement message, and the M forwarding paths are determined according to the first communication relationship and the second communication relationship. In this way, the communication relationship of multiple communication domains is integrated, multi-path routing is performed on the global data flow of a task (such as AI training, calculation, etc.) to which the data flow belongs, uplink conflict or downlink conflict of the data flow between the communication domains in the link is avoided, and the load balancing of global communication is improved.

[0015] With reference to the method for processing the announcement message provided in the first aspect, as a possible implementation manner, the communication device in the first communication domain is a communication domain member for performing the AI training task.

[0016] In a second aspect, a method for sending an announcement message is provided, which includes: 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; and sending the first announcement message.

[0017] The execution subject of the method for sending the announcement message can be a computing power node, a server, a computer or the like, or a computing power chip, a processor (such as a neural network processing unit NPU, a central processing unit CPU, a graphics processing unit GPU or the like), an AI acceleration card or the like, and can also be referred to as a first communication device with a computing or communication function. The receiver of the first announcement message can be a controller, a management server or the like with a communication control function.

[0018] With reference to the method for sending the announcement message provided in the second aspect, as a possible implementation manner, the first set communication operator, the first set communication algorithm and the first communication domain member identifier in set communication are extracted from a communication library. In this way, information for set communication is extracted from the communication library, reducing the dependence on a task (such as an AI training task) framework and a cluster scheduler.

[0019] With reference to the method for sending the announcement message provided in the second aspect, as a possible implementation manner, the first announcement message further includes at least one of a communication domain announcement identifier and a communication domain identifier. The communication domain announcement identifier is used to indicate that the message type of the announcement message is an announcement message, and the communication domain identifier is used to indicate the communication domain to which the communication device belongs.

[0020] With reference to the method for sending the announcement message provided in the second aspect, as a possible implementation manner, 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.

[0021] With reference to the method for sending the announcement message provided in the second aspect, as a possible implementation manner, the first announcement message further includes a communication domain creation identifier.

[0022] With reference to the method for sending the announcement message provided in the second aspect, as a possible implementation manner, the 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 information corresponding to the first communication domain in the communication library according to the first communication domain identifier; sending a second announcement message; the second announcement message includes the first set communication operator, the first set communication algorithm, the first communication domain member identifier, and a communication domain revocation identifier.

[0023] With reference to the method for sending the announcement message provided in the second aspect, as a possible implementation manner, the first announcement message is in the HCDN header in the RoCE v2 message.

[0024] As a possible implementation manner, the beneficial effects of any possible implementation manner of the method for sending the announcement message provided in the second aspect can refer to the description in the method for processing the announcement message provided in the first aspect, which will not be repeated here.

[0025] In a third aspect, a communication device is provided, which includes a processor and a memory, the processor being configured to execute instructions stored in the memory, so that the communication device performs the method for sending the announcement message or the method for processing the announcement message according to any possible implementation manner of the first aspect or the second aspect.

[0026] In a fourth aspect, a computer program (product) is provided, which includes computer program code, when the computer program code is executed by a computer or a communication device, the computer or the communication device performs the method for sending the announcement message or the method for processing the announcement message according to any possible implementation manner of the first aspect or the second aspect.

[0027] In a fifth aspect, a chip is provided, which includes a processor, configured to call and execute instructions stored in a memory, so that a communication device installed with the chip performs the method for sending the announcement message or the method for processing the announcement message according to any possible implementation manner of the first aspect or the second aspect.

[0028] In a sixth aspect, another chip is provided, which includes an input interface, an output interface, a processor, and a memory, the input interface, the output interface, the processor, and the memory are connected through internal connection paths, the processor is configured to execute code in the memory, when the code is executed, the processor is configured to perform the method for sending the announcement message or the method for processing the announcement message according to any possible implementation manner of the first aspect or the second aspect.

[0029] In a seventh aspect, a network system is provided, comprising a plurality of network devices and a plurality of servers, the plurality of network devices are divided into at least one hierarchy, the network devices in different hierarchies are communicatively connected with each other, and each server in the plurality of servers is communicatively connected with at least one network device in the plurality of servers.

[0030] As a possible implementation, the plurality of network devices comprises a first communication device and a control device, the first communication device is configured to perform the method for sending the announcement message according to any possible implementation of the first aspect, and the control device is configured to perform the method for processing the announcement message according to any possible implementation of the second aspect.

[0031] In an eighth aspect, a processing device for an announcement message is provided, comprising a transceiver module and a processing module. The transceiver module is configured to receive a first announcement message sent by a first communication device, the first announcement message comprising 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 in a first communication domain according to the first set communication operator, the first set communication algorithm and the first communication domain member identifier, and determine M forwarding paths according to the first communication relationship, the forwarding path being used to indicate a path of a communication device forwarding a data stream. M and N are integers greater than 1. The transceiver module is configured to send a corresponding forwarding path to a communication device included in N forwarding paths of the M forwarding paths.

[0032] As a possible implementation, the processing device for the announcement message can further comprise other modules performing the operation steps of the processing method for the announcement message according to the first aspect.

[0033] In a ninth aspect, a sending device for an announcement message is provided, comprising a transceiver module and a processing module. The processing module is configured to obtain a set communication operator, a set communication algorithm and a communication domain member identifier of a first communication domain in set communication, and generate a first announcement message according to the set communication operator, the set communication algorithm and the communication domain member identifier of the first communication domain. The processing module is configured to send the first announcement message.

[0034] As a possible implementation, the sending device for the announcement message can further comprise other modules performing the operation steps of the sending method for the announcement message according to the second aspect.

[0035] In a tenth aspect, a computer readable storage medium is provided, the storage medium stores at least one instruction, the instruction is loaded and executed by a processor to implement the sending method for the announcement message or the processing method for the announcement message according to any possible implementation of the first aspect or the second aspect. BRIEF DESCRIPTION OF DRAWINGS

[0036] Fig. 1 is a structural schematic diagram of a network system provided by the present application;

[0037] Fig. 2 is a flow schematic diagram of a sending method and a processing method of an announcement message provided by the present application;

[0038] Fig. 3 is a flow schematic diagram of a sending method and a processing method of an announcement message provided by the present application;

[0039] Fig. 4 is a flow schematic diagram of a communication domain related data obtaining step provided by the present application;

[0040] Fig. 5 is a structural schematic diagram of a RoCE v2 packet provided by the present application;

[0041] Fig. 6 is a flow schematic diagram of a sending method and a processing method of an announcement message provided by the present application;

[0042] Fig. 7 is a flow schematic diagram of a sending method and a processing method of an announcement message provided by the present application;

[0043] Fig. 8 is a flow schematic diagram of a sending method and a processing method of an announcement message provided by the present application;

[0044] Fig. 9 is a flow schematic diagram of a communication relationship determining and traffic optimization step provided by the present application;

[0045] Fig. 10 is a structural schematic diagram of a sending device of an announcement message provided by the present application;

[0046] Fig. 11 is a structural schematic diagram of a processing device of an announcement message provided by the present application;

[0047] Fig. 12 is a structural schematic diagram of a communication device provided by the present application. DETAILED DESCRIPTION

[0048] The application provides a sending and processing method of an announcement message, which can be executed by a first communication device and a second communication device. In the flow of the sending and processing method of the announcement message, the first communication device acquires a first collective communication operator, a first collective communication algorithm and a first communication domain member identifier in collective communication, generates a first announcement message according to the first collective communication operator, the first collective communication algorithm and the first communication domain member identifier, and sends the first announcement message. The second communication device receives the first announcement message, determines a first communication relationship between communication domain members according to the first collective communication operator, the first collective communication algorithm and the first communication domain member identifier, determines M forwarding paths according to the first communication relationship, and sends a corresponding forwarding path to a communication device included in N forwarding paths of the M forwarding paths. The forwarding path is used for indicating a path of the communication device forwarding a data stream, and M and N are integers greater than 1.

[0049] Based on the sending and processing method of the announcement message, the first announcement message carries the first collective communication operator, the first collective communication algorithm and the first communication domain member identifier in collective communication, the first communication relationship between the communication domain members in the first communication domain can be determined based on the first collective communication operator, the first collective communication algorithm and the first communication domain member identifier, and the data stream of each communication domain member is multi-path routed according to the first communication relationship. In this way, the global data stream is multi-path routed based on the complete determination of the communication relationship, the uplink conflict or downlink conflict of the data stream of the communication domain in the link is avoided, and the load balancing of the global communication is improved.

[0050] The technical solutions related to the application can be applied not only to current communication technologies or communication devices, but also to future communication technologies or communication devices, or a communication system or network system including a communication device. The terms used in the embodiment part of the application are only used to explain the specific embodiments of the application, and are not intended to limit the application. Some concepts that can be involved in the application are briefly introduced below.

[0051] Collective communication is a global communication operation in which all processes of a process group participate. The most basic operations include sending, receiving, copying, intra-group process barrier synchronization Barrier and inter-node process synchronization. These most basic operations are combined to form a set of communication templates, also known as communication primitives, such as: 1-to-many broadcast, many-to-1 gather, many-to-many gather all-gather, 1-to-many scatter, many-to-1 reduce, many-to-many reduce all-reduce, combined reduce and scatter reduce-scatter, and many-to-many all-to-all.

[0052] Multi-path routing, or multi-path routing, refers to forwarding data with the same source address and destination address through multiple forwarding paths. For example, equal-cost multi-path routing (ECMP) is a routing strategy that calculates the primary routing weight when the packet transmission to a single destination generates multiple optimal paths.

[0053] Distributed training is a method of training a model that distributes data / models across multiple computing nodes, which typically include multiple NPUs, CPUs, GPUs, tensor processing units (TPUs) AI accelerator cards, etc. By parallelizing computation and data management, distributed training can significantly accelerate the training process and handle larger scales and datasets than a single node can manage.

[0054] In order to make the purposes, technical solutions and advantages of the present application clearer, the present application will be described in further detail below with reference to the accompanying drawings.

[0055] Hereinafter, the terms "first", "second", etc. are only for descriptive purposes and cannot be understood as indicating or implying relative importance or implicitly indicating the number of indicated technical features. Therefore, the features defined with "first", "second", etc. can explicitly or implicitly include one or more features. In the description of the present application, unless otherwise stated, the meaning of "multiple" is two or more.

[0056] In addition, in the present application, the orientation terms such as "up", "down", etc. are defined with respect to the orientation of the components shown in the drawings, and it should be understood that these directional terms are relative concepts, which are used for relative description and clarification, and they can change accordingly according to the change of the orientation of the components placed in the drawings.

[0057] In the distributed training scenario of a large model, the data flow of different computing nodes needs to be multi-path routed, which can be implemented based on dynamic routing or static routing to achieve load balancing of communication between computing nodes. The multi-path routing method based on dynamic routing such as ECMP will perform uplink path routing according to the hash calculation result of the five-tuple of different data flows, and there is a problem that the hash calculation results of different data flows are the same, causing uplink path traffic conflict. The multi-path routing method based on static routing will specify the outport of the data flow according to the inport of the data flow, but there may be a problem of downlink path traffic conflict of data flow in the communication domain. It can be seen that in the scenario of collective communication such as distributed training of a large model, the communication still has the problem of load imbalance.

[0058] To solve the above problems, the scene to which the embodiments of the present application are applied will be introduced first in combination with the drawings.

[0059] FIG. 1 is a structural schematic diagram of a network system provided by the present application. The network system can belong to a data center network topology, interconnection between multiple data centers, or a wide-area Internet. The business scenario of the network system can be a distributed machine learning training, a distributed storage scenario, a high-performance computing scenario, a container scenario, and the like. The communication protocol of the network system can be a remote direct memory access (RDMA) protocol, a transmission control protocol (TCP), and the like, such as Infiniband and RoCEv2 RDMA protocols.

[0060] Exemplarily, the network system 100 includes a controller 110, a plurality of servers, and a plurality of network devices.

[0061] The controller 110 is configured to be responsible for centralized control and management of the entire network, and to realize centralized configuration, monitoring, and management of the network devices. The controller 110 is in communication connection with one or more of the plurality of network devices. The controller 110 can also be in communication connection with one or more of the plurality of servers. The connection relationship of the controller 110 is represented by a dashed line in FIG. 1.

[0062] The plurality of servers are configured to carry high-performance businesses with different communication requirements, such as AI training, AI inference, storage, and the like. As shown in FIG. 1, the network system 100 includes a plurality of server groups (only server group 101, server group 102, server group 103, and server group 104 are shown in FIG. 1, but not limited to four server groups), each of which includes one or more servers (only three servers are shown in FIG. 1, but not limited to three servers, such as server group 101 including servers 1-3, server group 102 including servers 4-6, server group 103 including servers 7-9, and server group 104 including servers 10-12). The servers in each server group are connected to the network devices through network cards. The network cards are configured to send and receive data, and have the capability of packet out-of-order reception.

[0063] The plurality of network devices can be routers, switches, gateways, and the like, which have data exchange and transmission functions, and have the capabilities of link quality identification, generation / sending / processing of announcement messages, modification of packet fields, and adjustment of per-packet paths. As shown in FIG. 1, the network system 100 includes a plurality of network devices (only network device 105, network device 106, network device 107, and network device 108 are shown in FIG. 1, but not limited to four network devices). The network devices can be at different levels in the network system 100. For example, the network system 100 is a spine-leaf network architecture, and the network device 105 and the network device 106 can be Leaf switches in the access layer, and the network device 107 and the network device 108 can be Spine switches in the aggregation layer.

[0064] Exemplarily, in the network system 100, each server in the server group 101 and the server group 102 is connected to the network device 105 through a network card, and each server in the server group 103 and the server group 104 is connected to the network device 106 through a network card. The network device 105 is connected to the network device 107 and the network device 108 respectively, and the network device 106 is connected to the network device 107 and the network device 108 respectively. The connection relationship of the controller 110 is relatively complex, and is not shown in FIG. 1, but the controller 110 can be regarded as being connected to the server group 101, the server group 102, the server group 103, and the server group 104 respectively, and the network device 105 is connected to the network device 107 and the network device 108 respectively.

[0065] In the embodiments of the present application, the network devices and the servers in the network system 100 described above can all be referred to as communication apparatuses. The communication apparatuses can also be processors (such as neural network processing units (NPUs), central processing units (CPUs), graphical processing units (GPUs), and the like) in the servers, or network cards in the servers, or switch chips in the network devices, or CPUs in the network devices, and the like, which are not limited in the present application.

[0066] It should be understood that FIG. 1 is only a simplified schematic diagram for ease of understanding, and the network system 100 can further include other network devices, servers, and / or other devices, and the connection relationship between nodes can also be changed, which is not shown in FIG. 1.

[0067] It should be understood that FIG. 1 only shows a network architecture with two-layer network devices, and the number of layers and the number of network devices are not limited in the possible embodiments of the present application. For example, the embodiments of the present application can also be applied to a network architecture with three-layer network devices. In this case, the network system 100 can further include a network device 109 (not shown in FIG. 1), and the network device 107 and the network device 108 are communicatively connected to the network device 109. In this case, the network device 109 is a core switch of a core layer.

[0068] Next, the sending method and the processing method of the notification message provided by the embodiments of the present application will be described in detail with reference to the accompanying drawings. Here, the sending method and the processing method of the notification message are taken as an example of being cooperatively performed by the first communication device and the second communication device, and the specific steps of the sending method and the processing method of the notification message are described.

[0069] In the embodiments of the present application, the first communication device can be any one of the server group 101, the server group 102, the server group 103, and the server group 104 in the network system 100, and can also be any one of the network devices 105, 106, 107, and 108 that are communicatively connected to the controller 110. The second communication device can be the controller 110 in the network system 100. Of course, the first communication device can also refer to a component of a server in the server group 101 of the network system 100, for example, a computing power chip in the server, or a network card in the server, or software deployed in the server, etc. The second communication device can also be a part of software or hardware components of the controller 110 in the network system 100.

[0070] FIG. 2 is a flowchart of a sending method and a processing method of a notification message provided by the present application. Please refer to FIG. 2, the method can include the following S201-S207.

[0071] S201, the first communication device obtains a first set communication operator, a first set communication algorithm, and a first communication domain member identifier in a set communication.

[0072] As a possible implementation manner, the first communication device is a server 1 in the server group 101 in the network system 100. After the server initializes the first communication domain, the server extracts the first set communication operator, the first set communication algorithm, and the first communication domain member identifier from a communication library. 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.

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

[0074] The communication library is a set of functions, classes, or modules for implementing various communication protocols and communication functions in a computer program. For example, the communication library in the embodiments of the present application refers to a collective communication library, which is a library for communication between computing nodes (such as a server group) or computing chips (such as GPUs, NPUs, etc.), and includes communication primitives for collective communication and point-to-point communication.

[0075] For example, the first communication device is a server 1 in the server group 101 of the network system 100, and the specific manner in which the server 1 obtains the first collective communication operator, the first collective communication algorithm, and the first communication domain member identifier in collective communication will not be described here.

[0076] Alternatively, the first communication device can also refer to a component of a server in the server group 101 of the network system 100, for example, a computing chip of the server 1 in the server group 101 obtains the first collective communication operator, the first collective communication algorithm, and the first communication domain member identifier in collective communication.

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

[0078] The collective communication operator is a set of communication operations used in distributed computing, which allows 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, all to all, etc.

[0079] Collective communication algorithms are an important concept in parallel computing, which involves communication between a group of processes, aiming to solve the problem of how to efficiently transmit data and synchronize in a distributed scenario. These algorithms include but are not limited to ring algorithm, halving-doubling (HD) algorithm, Recursive halving-doubling (Recursive-HD) algorithm, nonuniform hierarchical ring (NHR) algorithm, nonuniform bruck (NB) algorithm, pipeline algorithm and pairwise algorithm.

[0080] The communication domain member identifier is used to indicate the members of the communication domain, which can be a group or a queue composed 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.

[0081] By way of example, the following will combine Figure 8 to explain in detail the scenario that the first communication device is the network device 105 in the network system 100. The specific way in which the network device 105 obtains the collective communication operator, the collective communication algorithm and the communication domain member identifier of the first communication domain in the collective communication will not be repeated here.

[0082] Optionally, the first communication device can also refer to a component of the network device 105 in the network system 100, for example, the switch chip of the network device 105 obtains the first collective communication operator, the first collective communication algorithm and the first communication domain member identifier from the received announcement message.

[0083] S202, the first communication device generates a first announcement message according to the first collective communication operator, the first collective communication algorithm and the first communication domain member identifier.

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

[0085] Optionally, the first communication device can also refer to a component of a server in the server group 101 of the network system 100, for example, a computing power chip of a server in the server group 101 encapsulates the first set of communication operators, the first set of communication algorithms, and the first communication domain member identifier into a message in a specified format to obtain the first announcement message.

[0086] As another possible implementation, the first communication device is a network device 105 in the network system 100. The network device 105 receives the first set of communication operators, the first set of communication algorithms, and the first communication domain member identifier sent by the server, encapsulates the first set of communication operators, the first set of communication algorithms, and the first communication domain member identifier into a message in a specified format to obtain the first announcement message. Alternatively, the network device 105 receives the announcement message encapsulated with the first set of communication operators, the first set of communication algorithms, and the first communication domain member identifier sent by the server, and sets the destination address of the announcement message to the second communication device before forwarding the announcement message to the second communication device to obtain the first announcement message.

[0087] Exemplarily, the network device 105 receives the message carrying the communication domain announcement identifier sent by the server, extracts the first set of communication operators, the first set of communication algorithms, and the first communication domain member identifier from the message according to the communication domain announcement identifier, and encapsulates the first set of communication operators, the first set of communication algorithms, and the first communication domain member identifier into a message in a specified format to obtain the first announcement message. The communication domain announcement identifier is used to indicate that the message type is an announcement message.

[0088] Among them, the message in a specified format can be a RoCE v2 message, and the first set of communication operators, the first set of communication algorithms, and the first communication domain member identifier are carried in the HCDN header of the RoCE v2 message. For the specific message format, please refer to FIG. 5 and the related description thereof, which will not be repeated here.

[0089] Optionally, the first communication device can also refer to a component of a network device 105 in the network system 100, for example, a switching chip of the network device 105 receives the first set of communication operators, the first set of communication algorithms, and the first communication domain member identifier sent by the server, encapsulates the first set of communication operators, the first set of communication algorithms, and the first communication domain member identifier into a message in a specified format to obtain the first announcement message.

[0090] It can be understood that in the embodiments of the present application, the first notification message can also only carry 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 can include the set communication operator or the set communication algorithm, then the second communication device receiving the first notification message can determine the corresponding set communication algorithm through the set communication operator carried thereby, or the second communication device receiving the first notification message can determine the corresponding set communication operator through the set communication algorithm carried thereby. If the correspondence between the set communication operator and the set communication algorithm is that one set communication operator corresponds to multiple set communication algorithms, the first notification message can include the set communication algorithm, then the second communication device receiving the first notification message can determine the corresponding set communication operator through the set communication algorithm carried thereby. If the correspondence between the set communication operator and the set communication algorithm is that one set communication algorithm corresponds to multiple set communication operators, the first notification message can include the set communication operator, then the second communication device receiving the first notification message can determine the corresponding set communication algorithm through the set communication operator carried thereby. If the correspondence between the set communication operator and the set communication algorithm is 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 can include the set communication operator and the set communication algorithm.

[0091] S203, the first communication device sends a first notification message.

[0092] As a possible implementation manner, the server in the server group 101 sends the first notification message to the next hop communication device. Wherein, if the first communication device is the server in the server group 101, the next hop communication device of the first notification message is the network device 105; if the first communication device is the network device 105, the next hop communication device of the first notification message is the controller 110.

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

[0094] The second communication device receives the first notification message from the network device or the starting device of the first notification message. Wherein, taking the second communication device as the controller 110 as an example, the network device can be the network device 105, and the starting device of the first notification message can be the server in the server group 101.

[0095] Optionally, the second communication device can be a component of the controller 110, for example, the exchange chip of the controller 110 receives the first notification message.

[0096] S205, the second communication device determines the first communication relationship between each communication domain member in the first communication domain according to the first set of communication operators, the first set of communication algorithms and the first communication domain member identifier.

[0097] The second communication device parses the first set of communication operators, the first set of communication algorithms and the first communication domain member identifier from the first notification message, performs communication domain calculation according to the first set of communication operators, the first set of communication algorithms and the first communication domain member identifier, and thereby determines the first communication relationship between each communication domain member in the first communication domain.

[0098] Optionally, the second communication device can be 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 according to the first set of communication operators, the first set of communication algorithms and the first communication domain member identifier.

[0099] Illustratively, if the first set of communication operators is all reduce, the first set of communication algorithms is ring algorithm, the first communication domain includes mutually communicatively connected algorithm chips 0-7 (corresponding to IP addresses ip1-ip8 in turn), i.e., the first communication domain member identifier is ip1-ip8, and the first communication device is algorithm chip 0. The second communication device outputs the first communication relationship as ip1->ip2, ip2->ip3, ip3->ip4, ip4->ip5, ip5->ip6, ip6->ip7, ip7->ip8, ip8->ip1 according to all reduce and ring algorithm. It should be understood that the interaction of the above plurality of algorithm chips can also be performed through a plurality of stages (2*(number of communication domain members-1)). In this case, if the first set of communication operators is all reduce and the first set of communication algorithms is ring algorithm, the communication relationship corresponding to the plurality of stages is the same.

[0100] Exemplarily, if the first set communication operator is All gather, the first set communication algorithm is a ring algorithm, and the first communication domain includes the computing power chips 0-7 (corresponding to IP addresses ip1-ip8) connected to each other in pairs, i.e., the first communication domain member identifiers are ip1-ip8, and the first communication device is the 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 plurality of computing power chips can also be performed through a plurality of stages (communication domain member quantity-1). In this case, if the first set communication operator is All gather and the first set communication algorithm is a ring algorithm, the communication relationship corresponding to the plurality of stages is the same.

[0101] Exemplarily, if the first set communication operator is all reduce, the first set communication algorithm is an HD algorithm, and the second communication device outputs the first communication relationship in six stages according to all reduce and the HD algorithm, where the number of stages is equal to 2*log2 (communication domain member quantity). The first stage: ip1->ip2, ip2->ip1, ip3->ip4, ip4->ip3, ip5->ip6, ip6->ip5, ip7->ip8, ip8->ip7. The second stage: ip1->ip3, ip3->ip1, ip2->ip4, ip4->ip2, ip5->ip7, ip7->ip5, ip6->ip8, ip8->ip6. The third stage: ip1->ip5, ip5->ip1, ip2->ip6, ip6->ip2, ip3->ip7, ip7->ip3, ip4->ip8, ip8->ip4. The fourth stage: ip1->ip5, ip5->ip1, ip2->ip6, ip6->ip2, ip3->ip7, ip7->ip3, ip4->ip8, ip8->ip4. The fifth stage: ip1->ip3, ip3->ip1, ip2->ip4, ip4->ip2, ip5->ip7, ip7->ip5, ip6->ip8, ip8->ip6. The sixth stage: ip1->ip2, ip2->ip1, ip3->ip4, ip4->ip3, ip5->ip6, ip6->ip5, ip7->ip8, ip8->ip7.

[0102] 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 a first communication relationship in seven stages according to the all to all and pair-wise algorithms, where the number of stages is equal to the number of communication domain members minus 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. Fourth stage: ip1->ip4, ip2->ip5, ip3->ip7, ip4->ip8, ip5->ip1, ip6->ip8, ip7->ip9, ip8->ip4. Fifth stage: ip1->ip6, ip2->ip7, ip3->ip8, ip4->ip1, ip5->ip2, ip6->ip3, ip7->ip4, ip8->ip5. Sixth stage: ip1->ip7, ip2->ip8, ip3->ip1, ip4->ip2, ip5->ip3, ip6->ip4, ip7->ip5, ip8->ip6. Seventh stage: ip1->ip8, ip2->ip1, ip3->ip2, ip4->ip3, ip5->ip4, ip6->ip5, ip7->ip6, ip8->ip7.

[0103] It should be understood that the first communication domain member identification is in order, and when the order is different, the first communication relationship obtained is different.

[0104] Exemplarily, if the first set communication operator is all reduce, the first set communication algorithm is a ring algorithm, and the first communication domain includes the algorithm power chips 7-algorithm power chip 0 (corresponding to IP addresses ip8-ip1 in turn) connected to each other for communication, i.e., the first communication domain member identifiers are ip8-ip1, and the first communication device is the algorithm power chip 8. According to the all reduce and the ring algorithm, the second communication device outputs the first communication relationship 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 plurality of algorithm power chips can also be performed through a plurality of 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 a ring algorithm, the communication relationship corresponding to the plurality of stages is the same.

[0105] As a possible implementation manner, the first communication relationship includes the communication relationship of each communication domain member in the first communication domain in different stages of the set communication.

[0106] As a possible implementation manner, the first communication relationship includes the corresponding relationship between the sender and the receiver among the communication domain members in the first communication domain. For example, in the case that the communication domain member identifier is the IP address of the server, the first communication relationship includes the corresponding relationship between the IP address of the sender server and the IP address of the receiver server in the first communication domain. Such a corresponding relationship includes at least one, and can include a plurality.

[0107] For example, in the scene of large model training, the set communication of large model training includes different stages, and the corresponding relationship between the sender and the receiver of the communication domain members in the same communication domain or different communication domains may change in different stages.

[0108] The specific examples of the second communication device generating the first communication relationship are described in S903 in FIG. 9, which will not be described here.

[0109] In the possible embodiments of the embodiments of the present application, after the first communication device obtains the first set communication operator, the first set communication algorithm, and the first communication domain member identifier through S201, the first communication device itself can also use the same manner of 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, the first communication device encapsulates the first communication relationship into the 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 communication device is only an example and is not intended to be limiting.

[0110] S206, the second communication device determines M forwarding paths according to the first communication relationship.

[0111] The second communication device performs traffic optimization on the data flow in the first communication relationship according to the first communication relationship among the communication domain members in the set communication to obtain M forwarding paths. The first communication relationship can include the communication relationship among the communication domain members in the set communication in the first communication domain.

[0112] As a possible implementation, the traffic optimization can be a multi-path routing based on load balancing, link state, etc., such as ECMP, static routing strategy, etc., which has the function of reducing the traffic conflict of the uplink path or the downlink path of the communication domain members in the set communication in different stages, and will not be described here.

[0113] The application does not limit the format of the forwarding path. For example, the forwarding path refers to the link set between each device 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.

[0114] The specific example of the second communication device performing traffic optimization on each data flow of the communication relationship in different stages is shown in S904 in FIG. 9, and will not be described here.

[0115] S207, the second communication device sends the corresponding forwarding path to the communication device included in the N forwarding paths in the M forwarding paths.

[0116] The second communication device sends the corresponding forwarding path to the communication device included in the N forwarding paths in the M forwarding paths, so as to instruct the communication device to forward the data flow according to the forwarding path.

[0117] As a possible implementation, the second communication device can indicate the forwarding path to the communication device in the forwarding path by issuing an access control list (ACL). For example, the forwarding path is issued by issuing a policy-based access control list (PBACL). In an implementation, the ACL specifically indicates the outgoing interface of the traffic corresponding to the source IP address (the IP address of the sender server) and the destination IP address (the IP address of the receiver server) on the device.

[0118] The forwarding path corresponding to the communication device refers to a subsequent communication device corresponding to the communication device after the data flow reaches the communication device. The subsequent communication device can include a next-hop communication device corresponding to the communication device after the data flow reaches the communication device, and can also include a u-hop communication device corresponding to the communication device after the data flow reaches the 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 the network device 105 in the forwarding path refers to that the next-hop communication device is the network device 108, and the forwarding path corresponding to the network device 108 refers to that the next-hop communication device is the network device 106. That is, after the second communication device determines the M forwarding paths, when the second communication device sends the forwarding path to one of the communication devices, the second communication device can send all the M forwarding paths to the communication device, or can send part of the forwarding paths corresponding to the communication device to the communication device.

[0119] Taking the second communication device as the controller 110, the form of the forwarding path issued by the second communication device is the ACL, and taking the first stage of the first communication domain as an example, the server group 101 sends the data flow to the server group 102, and the server group 103 sends the data flow to the server group 104, and taking the second stage of the first communication domain as an example, the server group 101 sends the data flow to the server group 103, and the server group 102 sends the data flow to the server group 104. The second communication device sends the ACL to the network device 105, or sends the ACL to the network device 105, the network device 106, the network device 107, and the network device 108, respectively.

[0120] For example, the upper network device of the network device 105 and the network device 106, such as the network device 107 and the network device 108, is configured with a static load balancing strategy (for example, a network scale load balance (NSLB) algorithm), to indicate the out port corresponding to the data flow of different in ports, so as to avoid the uplink path conflict or the downlink path conflict of the data flow. Therefore, the second communication device sends the ACL to the network device 105, and based on the static load balancing strategy and the ACL of the network device 105, the uplink path conflict or the downlink path conflict of the data flow between the communication domain members of the first communication domain can be avoided.

[0121] For another example, the upper network device of the network device 105 and the network device 106, such as the network device 107 and the network device 108, is not configured with a static load balancing strategy, and the second communication device sends the ACL to the network device 105 and the upper network device of the network device 105, such as the network device 107 and the network device 108. Based on the ACL, the uplink path conflict or the downlink path conflict of the data flow between the communication domain members of the first communication domain can be avoided.

[0122] Optionally, the second communication device can be a component of the controller 110, for example, the switch chip of the controller 110 sends the corresponding forwarding path to the communication device included in the N forwarding paths of the M forwarding paths.

[0123] In FIG. 2, the first communication device is taken as an example of a server or a network device 105 in the server group 101, and the second communication device is taken as an example of the controller 110 to describe the sending and processing method of the notification message provided by the embodiments of the present application, but the specific positions of the first communication device and the second communication device are not limited in the present application, for example, the first communication device can also be any network device in the network system 100, such as the network device 106, the network device 107, etc.

[0124] Based on the above sending and processing method of the notification message, the first notification message carries the first set communication operator, the first set communication algorithm and the first communication domain member identifier in the set communication, and the first communication relationship between the communication domain members can be determined based on the first set communication operator, the first set communication algorithm and the first communication domain member identifier, so that the data flow of each communication domain member is multi-path routed according to the first communication relationship. In this way, on the basis of completely determining the communication relationship of the communication domain, the global data flow is multi-path routed, avoiding uplink conflict or downlink conflict of the data flow of the communication domain in the link, and improving the load balancing of global communication.

[0125] The above describes the sending and processing method of the notification message provided by the present application in combination with FIG. 2, and in the flow of the sending and processing method of the notification message, the communication device in the forwarding path needs to delete the forwarding path after the forwarding path is configured if the set communication of the current task ends. Next, in combination with FIG. 3, taking the AI framework scheduling server group to execute a large model training task as an example, detailed descriptions of the creation and destruction of the communication domain, and the issuance and deletion of the forwarding path are added to the flow of the sending and processing method of the notification message shown in FIG. 2. Among them, the communication library and the notification module can be functional components in the servers of the server group (for example, the server group 101), the network device can be the network device 105, the controller can be the controller 110, the server group or the network device can be regarded as the first communication device in the embodiment shown in FIG. 2, and the controller can be regarded as the second communication device in the embodiment shown in FIG. 2.

[0126] FIG. 3 is a flowchart of a second sending method and processing method of a notification message provided by the present application. Please refer to FIG. 3, the method can include the following S301-S315.

[0127] S301, the AI framework initializes a large model training task.

[0128] When the AI framework initializes the large model training task, the large model training task is divided into different subtasks, and server groups for training different subtasks are determined, such as server group 101-server group 104.

[0129] The AI framework is a set of standard interfaces, feature libraries and toolkits for AI algorithm model design, training and verification, integrates encapsulation of algorithms, calling of data and use of computing resources, and provides a development interface and an execution platform for developers. The AI framework in this embodiment can be deployed on any server of the server group 101-server group 104 in the network system 100, and can also be deployed on a server (such as a cloud server) not shown in the network system 100 in FIG. 1 or a terminal device.

[0130] S302, the AI framework creates a communication domain.

[0131] The AI framework calls the communication library of each server group to create a communication domain, that is, determines the communication range of each server in the collective communication according to the subtasks of each server, and transmits the communication range to the corresponding server.

[0132] S303, the communication library initializes the communication domain.

[0133] The communication library initializes the communication domain according to the transmitted communication range. In the initialization process of the communication domain, the set communication operator, the set communication algorithm and the communication domain member identifier of the communication domain corresponding to the server group to which the communication library belongs are obtained.

[0134] S304, the communication library sends the set communication operator, the set communication algorithm and the communication domain member identifier to the notification module.

[0135] For example, as shown in FIG. 4, after initializing the communication domain, the communication library writes the set communication operator, the set communication algorithm and the communication domain member identifier of the communication domain into a specified file, and the notification module reads the specified file to obtain the related data of the communication domain.

[0136] The specified file can be a json file, for example, named commID.json. The specified file can include OP, ALGO and rankIPlist. OP is the full name of operator, that is, the set communication operator, ALGO is the set communication algorithm, and rankIPlist is the communication domain member identifier, that is, the IP address of each communication domain member in the communication domain. Each communication object in the communication domain is regarded as a rank.

[0137] In possible embodiments, the specified file can also include commID, that is, the communication domain identifier, and commSize, that is, the communication domain size. The communication domain size can refer to the number of communication domain members in the communication domain.

[0138] In order to avoid that the announcing module fails to read the related data of the communication domain due to network errors and the like, the announcing module can periodically read the specified file.

[0139] In possible embodiments of the present application, the writing data of the specified file is not limited to the above-mentioned related data of the communication domain, and any data that can determine the communication relationship of the collective communication can be used as the related data of the communication domain.

[0140] S305, the announcing module sends an announcing message to the network device.

[0141] The announcing module encapsulates the collective communication operator, the collective communication algorithm and the communication domain member identifier of the communication domain into the announcing message, and sends the announcing message to the network device.

[0142] As a possible implementation, the announcing message further includes at least one of the communication domain identifier, the communication domain size and the communication domain announcing identifier in the specified file.

[0143] In order to avoid that the announcing module fails to read the related data of the communication domain due to network errors and the like, the multiple communication domain members in the same communication domain can all send the announcing message to the network device.

[0144] S306, the network device sends the announcing message to the controller.

[0145] When the network device identifies the announcing message according to the communication domain announcing identifier, the network device sends the announcing message to the controller.

[0146] The announcing message can be a packet carrying the related data of the communication domain such as the communication domain identifier, the communication domain size and the communication domain announcing identifier, or can be the communication domain identifier, the communication domain size and the communication domain announcing identifier in the packet.

[0147] Exemplarily, as shown in FIG. 5, the announcing message can be carried in a RoCE v2 packet. The RoCE v2 packet includes 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 is used to carry the related data of the communication domain, and the size of each field is shown in FIG. 5, for example, the size of the ETH packet is 14 bytes.

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

[0149] The field names and field descriptions of the fields included in the HCDN header are shown in Table 1, and other fields of the RoCE v2 packet are not described herein.

[0150] Table 1

[0151] For example, the communication domain includes 128 computing chips (cards), and the HCDN header of the communication domain including 1024 computing chips (cards) is shown in Table 2.

[0152] Table 2

[0153] The announcement message can be the RoCE v2 packet or the HCDN header, i.e., the announcement message sent by the network device to the controller can be the RoCE v2 packet or the HCDN header extracted from the RoCE v2 packet according to the communication domain announcement identifier.

[0154] For example, the network device determines that the RoCE v2 packet is the announcement message according to the communication domain announcement identifier, and sends the RoCE v2 packet to the controller.

[0155] For another example, the network device extracts the HCDN header from the RoCE v2 packet according to the communication domain announcement identifier, and sends the HCDN header as the announcement message to the controller. If the communication domain is too large, the announcement message can be sent in packets.

[0156] In possible embodiments of the present application, the communication domain announcement identifier can also be any field capable of identifying communication domain related information, such as rankIPlist in the payload.

[0157] S307, the controller determines the communication relationship of the communication domain according to the announcement message, performs flow optimization according to the communication relationship, and obtains the ACL.

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

[0159] As a possible implementation, the controller calculates the communication relationship between the communication domain members of the communication domain in the set communication according to the set communication operator, the set communication algorithm and the communication domain member identifier in the announcement message, and the network topology, that is, the receiver, the sender and the sending-receiving order of the data flow between the communication domain members. The controller performs traffic optimization on the data flow between the communication domain members according to the receiver, the sender and the sending-receiving order of the data flow between the communication domain members, and obtains the forwarding path of each data flow. The controller obtains the ACL corresponding to the communication device on each forwarding path according to the forwarding path of each data flow.

[0160] S308, the controller issues the ACL.

[0161] The controller sends the ACL corresponding to the forwarding path to the communication device included in the forwarding path of each data flow.

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

[0163] S309, if the large model training is completed, the AI framework issues a communication domain destruction instruction.

[0164] The communication domain destruction instruction can include a communication domain identifier. In possible embodiments of the present application, in addition to the communication domain identifier, the communication domain identifier can also be replaced by other fields capable of identifying the communication domain.

[0165] S310, the communication library destroys the communication domain according to the communication domain destruction instruction.

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

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

[0168] S312, the announcing module sends the announcing message to the network device.

[0169] The announcing message in S312 is different from S305 in that the value of the CD field of the announcing message in S312 is 1, i.e. the communication domain revocation identifier, the announcing message in S312 can be regarded as a first announcing message, and the announcing message in S305 can be regarded as a second announcing message.

[0170] S313, the network device sends the announcing message to the controller.

[0171] S314, the controller revokes the traffic optimization of the communication domain according to the announcing message.

[0172] The controller determines that the announcing message carries the communication domain revocation identifier, calculates the communication relationship between the communication domain members of the communication domain according to the set communication operator, the set communication algorithm and the communication domain member identifier, and combines the network topology. Then, the controller optimizes the traffic of the data flow between the communication domain members in the communication relationship, obtains the forwarding path of each data flow, deletes the same forwarding path stored in the controller, and implements the revocation of the traffic optimization.

[0173] As a possible implementation manner, the announcing message can further include a communication domain identifier. The controller determines that the announcing message carries the communication domain revocation identifier, and deletes the forwarding path corresponding to the communication domain identifier. Therefore, the controller does not need to recalculate the communication relationship and the forwarding path.

[0174] S315, the controller issues an ACL deletion instruction.

[0175] The controller sends a corresponding ACL deletion instruction to the communication device included in the N forwarding paths in the M forwarding paths, so that the communication device deletes the corresponding ACL.

[0176] For one forwarding path, the controller sends a corresponding ACL deletion instruction to one or more communication devices on the forwarding path.

[0177] As a possible implementation manner, the controller can send an ACL deletion instruction corresponding to the recalculated forwarding path to one or more communication devices in the forwarding path. The ACL deletion instruction includes an ACL entry for indicating that the data flow is forwarded by the recalculated forwarding path, so that the communication device deletes the same entry as the ACL entry in the ACL deletion instruction in the configured ACL entry.

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

[0179] In this way, in the case where the communication domain is changed, such as being revoked, the issued forwarding path can be revoked based on the subsequent announcement message, so as to avoid the subsequent data flow from continuing to be forwarded according to the forwarding path before the communication domain is revoked, and thus the uplink conflict or the downlink conflict.

[0180] The above describes the overall flow of the sending and processing method of the announcement message in the big model training scene by taking a single communication domain as an example, but the number of communication domains is not limited, that is, on the basis of the sending and processing method of the announcement message shown in FIG. 2 or FIG. 3, the controller in FIG. 3 or the second communication device in FIG. 2 can receive the announcement messages sent by multiple communication devices, determine a global forwarding path according to the communication relationship of the multiple communication domains, and thus perform global traffic optimization by comprehensively considering the communication relationship of the multiple communication domains.

[0181] As shown in FIG. 6, which is a flowchart of a sending method and a processing method of an announcement message, taking the first communication device and the second communication device shown in FIG. 2 as an example, the first communication device can be a server corresponding to rank 0 in a first communication domain configured by an AI framework, and the second communication device can also communicate with a server corresponding to rank 0 in a second communication domain configured by the AI framework, that is, a third communication device. The step of determining a global forwarding path according to the communication relationship of the multiple communication domains to perform global traffic optimization by the second communication device can include the following S601-S611.

[0182] S601, the first communication device obtains a set communication operator, a set communication algorithm and a communication domain member identifier of the first communication domain in set communication.

[0183] S602, the first communication device generates a first announcement message according to the set communication operator, the set communication algorithm and the communication domain member identifier of the first communication domain.

[0184] S603, the first communication device sends the first announcement message.

[0185] The specific implementation of S601-S603 can refer to S201-S203 in FIG. 2, which will not be repeated here.

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

[0187] S605, the third communication device generates a third announcement message according to the set communication operator, the set communication algorithm and the communication domain member identifier of the second communication domain.

[0188] S606, the third communication device sends the third announcement message.

[0189] The steps of S604-S606 can refer to the related paragraphs of S601-S603, and the difference between S601-S603 is the different execution subjects and communication domains, which will not be repeated here.

[0190] S607, the second communication device receives the first announcement message and the third announcement message.

[0191] S608, the second communication device determines the first communication relationship between each communication domain member in the first communication domain according to the set communication operator, the set communication algorithm and the communication domain member identifier of the first communication domain.

[0192] S609, the second communication device determines the second communication relationship between each communication domain member in the second communication domain according to the set communication operator, the set communication algorithm and the communication domain member identifier of the second communication domain.

[0193] S610, the second communication device determines M forwarding paths according to the first communication relationship and the second communication relationship.

[0194] The second communication device performs flow optimization on the data flow synthesis in the first communication relationship and the second communication relationship according to the first communication relationship between each communication domain member in the first communication domain in the set communication and the second communication relationship between each communication domain member in the second communication domain in the set communication, to obtain M forwarding paths.

[0195] As a possible implementation, the traffic optimization can be multi-path routing based on load balancing, link state, etc., such as ECMP, static routing strategy, etc., which has the function of reducing the traffic conflict of the uplink path or the downlink path of each communication domain member in the first communication domain and the second communication domain in different stages of the collective communication. Among them, the traffic optimization can be for the traffic conflict of the uplink path or the downlink path of each communication domain member in the first communication domain in different stages of the collective communication, the traffic conflict of the uplink path or the downlink path of each communication domain member in the second communication domain in different stages of the collective communication, and the traffic conflict of the uplink path or the downlink path between each communication domain member in the first communication domain and each communication domain member in the second communication domain in different stages of the collective communication.

[0196] S611, the second communication device sends the corresponding forwarding path to the communication devices included in the N forwarding paths of the M forwarding paths.

[0197] The steps of S607-S611 above can refer to the related paragraphs of S204-S207, and the difference between S204-S207 in FIG. 2 is that the second communication device comprehensively determines the global traffic optimization of the global forwarding path according to the communication relationship of multiple communication domains such as the first communication domain and the second communication domain in the network system. In this way, the communication relationship of multiple communication domains is comprehensively considered, and the global data flow of the task is routed by multi-path routing, which avoids the uplink conflict or downlink conflict of the data flow between the communication domains in the link, and improves the load balancing of the global communication.

[0198] The above describes the sending and processing method of the announcement message as a whole by taking the sending and processing method of the announcement message cooperatively performed between the communication devices as an example. Next, the sending and processing method of the announcement message is exemplarily described by taking the server group, the network device and the controller in the network system 100 as an example.

[0199] Please refer to FIG. 7, which is a flowchart of a fourth sending method and processing method of an announcement message provided by the present application. The sending method and processing method of the announcement message can include the following S701-S707.

[0200] S701, the server extracts the collective communication operator, the collective communication algorithm and the communication domain member identifier of the communication domain through the communication library.

[0201] The specific way in which the servers in the server group 101 extract the collective communication operator, the collective communication algorithm and the communication domain member identifier of the communication domain through the communication library can refer to S303-304 shown in FIG. 3, which will not be described here.

[0202] S702, the server generates an announcement message according to the collective communication operator, the collective communication algorithm and the communication domain member identifier of the communication domain.

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

[0204] The specific manner in which the server encapsulates and sends the announcement message can refer to S305 shown in FIG. 3, and will not be described here again. The announcement message includes a communication domain announcement identifier.

[0205] In a possible embodiment of the present application, if the server does not have the address of the controller 110, the manner in which the server sends the announcement message to the network device 105 through the announcement module can be that the server sends the announcement message to other servers through the announcement module, so as to forward the announcement message to the network device 105 through the other servers. For example, the server in the server group 101 does not store the route of the controller 110, and sends the announcement message to the server in the server group 102 (the destination address is the server in the server group 102), and the server in the server group 102 stores the route of the controller 110. If the server in the server group 102 determines that the announcement message includes the communication domain announcement identifier, the server forwards the announcement message to the network device 105 according to the route.

[0206] In a possible embodiment of the present application, if the server does not have the address of the controller 110, the manner in which the server sends the announcement message to the network device 105 through the announcement module can be that the server sends the announcement message to other servers through the announcement module, and the destination address of the announcement message is the address of the other server. For example, the server in the server group 101 does not store the route of the controller 110, and sends the announcement message to the server in the server group 102 (the destination address is the server in the server group 102), and the destination address is the address of the server 102.

[0207] In a possible embodiment of the present application, if the server has the address of the controller 110, the manner in which the server sends the announcement message to the network device 105 through the announcement module can be that the server sends the announcement message to the controller through the network device 105 through the announcement module, and the destination address of the announcement message is the address of the controller. For example, the server in the server group 101 does not store the route of the controller 110, and sends the announcement message to the controller through the network device, and the destination address is the address of the controller.

[0208] S704, the network device 105 sends the announcement message to the controller 110.

[0209] The network device 105 sends the announcement message to the controller 110 after identifying that the announcement message carries the communication domain announcement identifier.

[0210] The network device 105 can modify the destination address of the received announcement message to the address of the controller 110 and send the announcement message to the controller 110 backward, or can copy the received announcement message and send the copied announcement message to the controller 110 after identifying that the announcement message carries the communication domain announcement identifier.

[0211] Specifically, in the case where the server 101 does not have the address of the controller 110, the server can send the announcement message to the network device 105 through the announcement module in the following manner: the server sends the announcement message to other servers through the announcement module, so as to forward the announcement message to the network device 105 through the other servers. The network device 105 receives the announcement message sent by the other servers, for example, the server 102, and the destination address in the announcement message is the address of the controller 110. The network device 105 can copy the received announcement message and send the copied announcement message to the controller 110.

[0212] In the case where the server 101 does not have the address of the controller 110, the server can send the announcement message to the network device 105 through the announcement module in the following manner: the server sends the announcement message to other servers through the announcement module, so as to forward the announcement message to the network device 105 through the other servers. The network device 105 receives the announcement message sent by the other servers, for example, the server 102, and the destination address in the announcement message is the address of the controller 110. The network device 105 can copy the received announcement message and send the copied announcement message to the controller 110.

[0213] In the case where the server 101 has the address of the controller 110, the server can send the announcement message to the network device 105 through the announcement module in the following manner: the server sends the announcement message to the controller through the network device 105 through the announcement module, and the destination address in the announcement message is the address of the controller. The network device 105 can copy the received announcement message and send the copied announcement message to the controller 110.

[0214] The specific manner in which the network device 105 sends the announcement message to the controller 110 is shown in S306 of FIG. 3, which is not described herein again.

[0215] The network device 105 can identify the communication domain announcement identifier through a packet processing module in the network device 105, and the network device 105 can send the announcement message to the controller 110 through an upward sending module in the network device 105.

[0216] S705, the controller 110 determines the communication relationship between the communication domain members in the communication domain according to the set communication operator, the set communication algorithm and the communication domain member identifier.

[0217] The controller 110 determines the communication relationship between the communication domain members in the communication domain, which can be implemented by a parsing module in the controller 110.

[0218] S706, the controller 110 performs traffic optimization according to the communication relationship, and obtains an ACL.

[0219] The controller 110 performs traffic optimization, which can be implemented by a traffic optimization module in the controller 110.

[0220] S707, the controller 110 issues the ACL.

[0221] The specific implementation of S705-S707 can refer to S307-S308 shown in FIG. 3, which will not be repeated here.

[0222] In possible embodiments of the present application, in addition to the identification and forwarding of the notification message by the network device 105, the server group 101 and the controller 110 can also not be connected by the network device communication, that is, the server sends the notification message to the controller 110. Next, the method of sending the notification message from the server to the controller 110 will be described in combination with FIG. 8.

[0223] Please refer to FIG. 8, which is a flowchart of a notification message sending method and processing method provided by the present application. The notification message sending method and processing method can include the following S801-S806.

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

[0225] The specific way in which the server in the server group 101 extracts the set communication operator, set communication algorithm and communication domain member identifier of the communication domain through the communication library can refer to S303-304 shown in FIG. 3, which will not be repeated here.

[0226] S802, the server generates a notification message according to the set communication operator, set communication algorithm and communication domain member identifier of the communication domain.

[0227] S803, the server sends the notification message to the controller 110 through the notification module.

[0228] The specific way in which the server encapsulates and sends the notification message can refer to S305 shown in FIG. 3, the difference being that the sending objects are different, which will not be repeated here. The notification message includes a communication domain notification identifier.

[0229] S804, the controller 110 determines the communication relationship between the communication domain members in the communication domain according to the set communication operator, set communication algorithm and communication domain member identifier of the communication domain.

[0230] After identifying that the announcement message carries the communication domain announcement identifier, the controller 110 extracts the set communication operator, set communication algorithm and communication domain member identifier of the communication domain in the announcement message, and determines the communication relationship between the communication domain members in the communication domain according to the set communication operator, set communication algorithm and communication domain member identifier of the communication domain.

[0231] S805. The controller 110 performs traffic optimization according to the communication relationship, and obtains an ACL.

[0232] S806. The controller 110 issues the ACL.

[0233] The specific implementation of S804-S806 is described in S307-S308 shown in FIG. 3, which is not repeated here.

[0234] In this way, the server 101 and the controller 110 provide a sending and processing method of the announcement message under different connection relationships, so that the sending and processing method of the announcement message is applicable to more network architectures, and the application range of the sending and processing method of the announcement message is improved.

[0235] The above describes two ways of sending the announcement message by the server 101 to the controller 110 with reference to FIG. 7 and FIG. 8. After receiving the announcement message, the controller 110 as the first communication device needs to determine the communication relationship of the communication domain based on the announcement message, and perform traffic optimization according to the communication relationship. Next, with reference to FIG. 9, the determination of the communication relationship and the traffic optimization by the first communication device through the analysis module and the traffic optimization module are described in detail.

[0236] Please refer to FIG. 9, which is a flowchart of a step of determining the communication relationship and traffic optimization provided by the present application. The flowchart can include the following S901-S905.

[0237] S901. The first communication device receives a first announcement message.

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

[0239] The first communication device analyzes the first announcement message through the analysis module to obtain the set communication operator, set communication algorithm and communication domain member identifier of the first communication domain.

[0240] S903. The first communication device determines the first communication relationship of the communication domain members in the first communication domain according to the set communication operator, set communication algorithm and communication domain member identifier of the first communication domain.

[0241] The first communication device determines the first communication relationship of each communication domain member in the first communication domain according to the set communication operator, the set communication algorithm and the communication domain member identifier of the first communication domain through the analysis module.

[0242] The first communication relationship includes the communication relationship of each communication domain member in the first communication domain in different stages of set communication. The first communication relationship includes the corresponding relationship between the sender and the receiver among the communication domain members in the first communication domain.

[0243] Exemplarily, the first communication relationship includes stage 1, stage 2 and any other stage. In this embodiment, the communication domain members of the first communication domain include server 1, server 4, server 7 and server 10. The stage 1 and stage 2 of each communication member in the first communication domain in set communication are taken as examples for illustration. Among them, server 1, server 4, server 7 and server 10 are shown as ip1-ip4 in sequence in FIG. 9. The port of the network device 105 connected with the network device 107 is port1, and the port of the network device 105 connected with the network device 108 is port2.

[0244] In stage 1, the communication relationship of each communication domain member in the first communication domain is: ip1->ip2, ip3->ip4…

[0245] In stage 2, the communication relationship of each communication domain member in the first communication domain is: ip1->ip3, ip2->ip4…

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

[0247] S904, the first communication device performs traffic optimization on each data flow of the communication relationship of each stage to obtain M forwarding paths.

[0248] Exemplarily, the forwarding path of the data flow of ip1->ip2 in stage 1 in the network device 105 is: ip1->ip2 port1, that is, the data flow sent by server 1 to server 4 is forwarded by port1. Similarly, the forwarding path of the data flow of ip3->ip4 in stage 1 in the network device 105 is: ip3->ip4 port2, the forwarding path of the data flow of ip1->ip3 in stage 2 in the network device 105 is: ip1->ip3 port2, and the forwarding path of the data flow of ip2->ip4 in stage 2 in the network device 105 is: ip2->ip4 port1.

[0249] S905, the first communication device sends the corresponding forwarding path to the communication device included in the N forwarding paths of the M forwarding paths.

[0250] Exemplarily, taking the first communication device as the controller 110 for example, the controller 110 sends an ACL to the network device 105, the ACL indicating that the data flow sent from the server 1 to the server 4 is forwarded by the port 2, the data flow sent from the server 7 to the server 10 is forwarded by the port 1, the data flow sent from the server 1 to the server 7 is forwarded by the port 2, and the data flow sent from the server 4 to the server 10 is forwarded by the port 1. In this way, by means of the ACL, the data flow between the server groups can be indicated to be forwarded according to the specified forwarding path in different stages of the collective communication, so as to avoid the uplink path conflict or the downlink path conflict of the data flow.

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

[0252] In order to cooperate with the sending method of the advertisement message provided in the embodiments of the present application, the embodiments of the present application further provide a sending device 1000 of an advertisement message, which is used to execute the sending method of the advertisement message. As shown in FIG. 10, the device comprises a transceiver module 1010 and a processing module 1020.

[0253] Exemplarily, the sending device 1000 of the advertisement message can realize the functions of the first communication device in FIG. 2.

[0254] The transceiver module 1010 is used to acquire the first collective communication operator, the first collective communication algorithm and the first communication domain member identifier in the collective communication.

[0255] The processing module 1020 is used to generate the first advertisement message according to the first collective communication operator, the first collective communication algorithm and the first communication domain member identifier.

[0256] The transceiver module 1010 is used to send the first advertisement message.

[0257] As a possible implementation manner, the transceiver module 1010 is specifically used to extract the first collective communication operator, the first collective communication algorithm and the first communication domain member identifier in the collective communication from a communication library.

[0258] As a possible implementation manner, the first advertisement message further comprises at least one of a communication domain advertisement identifier and a communication domain identifier, the communication domain advertisement identifier is used to indicate that the message type is the advertisement message, and the communication domain identifier is used to indicate the communication domain to which the communication device belongs.

[0259] As a possible implementation manner, the first collective communication operator is the collective communication operator corresponding to the first communication domain, and the first collective communication algorithm is the collective communication algorithm corresponding to the first communication domain.

[0260] As a possible implementation manner, the first advertisement message further comprises a communication domain creation identifier.

[0261] As a possible implementation manner, the transceiver module 1010 is further configured to receive a communication domain destruction instruction; the task end instruction comprises a first communication domain identifier of a first communication domain. The processing module 1020 is further configured to delete information corresponding to the first communication domain in the communication library according to the first communication domain identifier. The transceiver module 1010 is further configured to send a second notification message; the second notification message comprises the first set of communication operators, the first set of communication algorithms, the first communication domain member identifier and a communication domain revocation identifier.

[0262] As a possible implementation manner, the first notification message is in a hierarchical content distribution network (HCDN) header in a RoCE v2 message.

[0263] In order to cooperate with the above-mentioned processing method of the notification message provided by the embodiments of the present application, the embodiments of the present application further provide a processing device 1100 of a notification message, which is used to execute the above-mentioned processing method of the notification message. As shown in FIG. 11, the device comprises a transceiver module 1110 and a processing module 1120.

[0264] Exemplarily, the processing device 1100 of the notification message can realize the function of the second communication device in FIG. 2.

[0265] The transceiver module 1110 is configured to receive a first notification message sent by a first communication device; the first notification message comprises a first set of communication operators, a first set of communication algorithms and a first communication domain member identifier in set communication.

[0266] The processing module 1120 is configured to determine a first communication relationship between each communication domain member in the first communication domain according to the first set of communication operators, the first set of communication algorithms and the first communication domain member identifier.

[0267] The processing module 1120 is configured to determine M forwarding paths according to the first communication relationship; the forwarding path is used to indicate a path of the communication device forwarding a data stream.

[0268] The transceiver module 1110 is configured to send a corresponding forwarding path to a communication device included in N forwarding paths of the M forwarding paths. M and N are positive integers greater than 1.

[0269] As a possible implementation manner, the first notification message further comprises 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 a communication domain to which the communication device belongs.

[0270] As a possible implementation manner, the first set of communication operators is a set of communication operators corresponding to the first communication domain, and the first set of communication algorithms is a set of communication algorithms corresponding to the first communication domain.

[0271] As a possible implementation manner, the first notification message further comprises a communication domain creation identifier.

[0272] As a possible implementation manner, the transceiver 1110 is further configured to receive a second notification message sent by the first communication device, and the second notification message comprises the first set of communication operators, the first set of communication algorithms, the first communication domain member identifier and a communication domain revocation identifier. The processor 1120 is further configured to determine the first communication relationship between the communication domain members in the first communication domain according to the first set of communication operators, the first set of communication algorithms and the first communication domain member identifier, determine the M forwarding paths according to the first communication relationship, and revoke the M forwarding paths according to the communication domain revocation identifier.

[0273] As a possible implementation manner, the first notification message is in a hierarchical content distribution network (HCDN) header in a RoCE v2 message.

[0274] As a possible implementation manner, the first communication relationship comprises a corresponding relationship between a sender and a receiver among the communication domain members in the first communication domain.

[0275] As a possible implementation manner, the transceiver 1110 is further configured to receive a third notification message, and the third notification message comprises a second set of communication operators, a second set of communication algorithms and a second communication domain member identifier in the set communication. The processor 1120 is further configured to determine a second communication relationship between the communication domain members in the second communication domain according to the second set of communication operators, the second set of communication algorithms and the second communication domain member identifier. The processor 1120 is specifically configured to determine the M forwarding paths according to the first communication relationship and the second communication relationship.

[0276] As a possible implementation manner, the first communication device and the communication domain members in the first communication domain are communication devices for performing an artificial intelligence (AI) training task.

[0277] It should be understood that the device provided in the above embodiments 10 or 11 only takes the above-mentioned division of functional modules as an example when realizing the functions thereof, and in actual applications, the above-mentioned functions can be completed by different functional modules according to the needs, i.e., the internal structure of the device is divided into different functional modules to complete all or part of the above-mentioned functions. In addition, the device and method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process is detailed in the method embodiments, which will not be repeated here.

[0278] FIG. 12 is a structural schematic diagram of a communication apparatus provided in the embodiment. As shown in FIG. 12, the communication apparatus 1200 includes a processor 1210, a bus 1220, a memory 1230, a communication interface 1240, and a memory unit 1250 (which can also be referred to as a main memory unit). The processor 1210, the memory 1230, the memory unit 1250, and the communication interface 1240 are connected through the bus 1220.

[0279] It should be understood that, in the embodiment, the processor 1210 can be a CPU, and the processor 1210 can 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 gates or transistor logic, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor, etc.

[0280] The processor can also be a graphics processor (GPU), a neural network processing unit (NPU), a microprocessor, or one or more integrated circuits for controlling program execution of the solutions of the present application.

[0281] In possible embodiments, the communication apparatus 1200 can refer to the processor 1210.

[0282] The communication interface 1240 is configured to implement communication between the communication apparatus 1200 and external devices or elements. In the embodiment, when the communication apparatus 1200 is configured to implement the functions of any of the network devices, servers, or controllers in FIG. 1, the communication interface 1240 is configured to serve as a physical port for transmitting and receiving data packets.

[0283] The bus 1220 can include a pathway for conveying information (e.g., data, addresses, control signals) between the aforementioned components (e.g., the processor 1210, the memory unit 1250, and the storage 1230). The bus 1220 can include a data bus, a control bus, and a state signal bus, among others. For clarity, the various buses are referred to as the bus 1220 in FIG. 12. The 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), a Cache Coherent Interconnect for Accelerators (CCIX), or the like. The bus 1220 can be divided into an address bus, a data bus, a control bus, and the like.

[0284] As an example, the communication device 1200 can include multiple processors. The processors can be a multi-CPU processor. The processor herein can refer to one or more devices, circuits, and / or computing units for processing data (e.g., computer program instructions).

[0285] It is worth noting that only one processor 1210 and one memory 1230 are taken as an example in FIG. 12, and here the processor 1210 and the memory 1230 are respectively 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 needs.

[0286] The memory unit 1250 can be a volatile memory or a nonvolatile memory, or can include both volatile and nonvolatile memory. Among them, the nonvolatile memory can be a read-only memory (ROM), a programmable ROM (PROM), an erasable PROM (EPROM), an electrically EPROM (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM) used as an external cache. By way of example, and not limitation, many forms of RAM can be used, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchlink DRAM (SLDRAM), and direct rambus RAM (DR RAM).

[0287] The memory 1230 can correspond to the storage medium used for storing computer instructions and the like information in the above-mentioned method embodiments, for example, a magnetic disk such as a mechanical hard disk or a solid state disk.

[0288] The above-mentioned 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 (for example, a box carrying a chip with processing capability) and the like. Alternatively, the communication device 1200 can also be a chip, a network device, a server or other device with computing capability.

[0289] It should be understood that the communication device 1200 according to the present embodiment can correspond to the sending device 1000 of the announcement message or the processing device 1000 of the announcement message in the present embodiment, and can correspond to the execution of the corresponding subject in the method according to FIG. 2 or FIG. 6, and the above-mentioned and other operations and / or functions of each module in the sending device 1000 of the announcement message or the processing device 1000 of the announcement message are respectively for realizing the corresponding flow of the method in FIG. 2 or FIG. 6, and for the sake of brevity, will not be repeated here.

[0290] The application further provides a communication system, comprising a first communication device and a second communication device. The first communication device is configured 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 notification message according to the first set communication operator, the first set communication algorithm and the first communication domain member identifier; and send the first notification message. The second communication device is configured to receive the first notification message sent by the first communication device; the first notification message comprises 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 in the first communication domain according to the first set communication operator, the first set communication algorithm and the first communication domain member identifier; determine M forwarding paths according to the first communication relationship; the forwarding path is used to indicate a path of a communication device forwarding a data stream, and M is a positive integer greater than 1; and send a corresponding forwarding path to a communication device included in N forwarding paths of the M forwarding paths, and N is a positive integer greater than 1.

[0291] As a possible implementation manner, the first communication device and the second communication device can cooperatively execute the method steps in the embodiments shown in FIG. 2 or FIG. 3.

[0292] The first communication device can be configured to implement the function of the notification message sending device 1000, and the second communication device can be configured to implement the function of the notification message processing device 1100. The hardware structure of the first communication device and the second communication device can refer to the communication device 1200.

[0293] The application further provides a computer program product comprising instructions. The computer program product can be software or a program product comprising instructions, which can run on a computing device or be stored in any available medium. When the computer program product runs on at least one computing device, the at least one computing device is caused to execute the notification message sending and processing method.

[0294] The application further provides a computer readable storage medium. The computer readable storage medium can be any available medium that a computing device can store or a data storage device such as a data center comprising one or more available media. The available medium can be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk) and the like. The computer readable storage medium comprises instructions, which instruct the computing device to execute the notification message sending and processing method.

[0295] The application further provides a chip comprising a processor. The processor is configured to call and run instructions stored in a memory, so that a communication device installed with the chip executes the notification message sending method or the notification message processing method.

[0296] As a possible implementation, the chip further comprises an input interface, an output interface and a memory. The input interface, the output interface, the processor and the memory are connected through internal connection paths. The processor is configured to execute code in the memory, and when the code is executed, the processor is configured to execute the method for sending the announcement message or the method for processing the announcement message.

[0297] The method steps in the embodiments can be implemented by hardware, or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, and the software modules can be stored in a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an erasable programmable read-only memory, an electrically erasable programmable read-only memory, a register, a hard disk, a mobile hard disk, a CD-ROM or any other form of storage medium well known in the art. An exemplary storage medium is coupled to a processor, so that the processor can read information from and write information to the storage medium. Of course, the storage medium can also be an integral part of the processor. The processor and the storage medium can be located in an ASIC. In addition, the ASIC can be located in an electronic device (such as a network device). Of course, the processor and the storage medium can also exist as discrete components in an electronic device.

[0298] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer programs or instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present application are performed. The computer can be a general purpose computer, a special purpose computer, a computer network, a network device, a user equipment or other programmable apparatus. The computer programs or instructions can be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer programs or instructions can be transmitted from one website site, computer, server or data center to another website site, computer, server or data center through wired or wireless manner. The computer readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center and the like integrated with one or more available media. The available media can be a magnetic medium, for example, a floppy disk, a hard disk, a magnetic tape; or an optical medium, for example, a digital video disc (digital video disc, DVD); or a semiconductor medium, for example, a solid state disk (solid state drive, SSD). The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto, any person skilled in the art can easily think of various equivalent modifications or replacements within the technical range disclosed in the present application, and these modifications or replacements should be covered in the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

A processing method of an announcement message, characterized in that, 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. 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. The method according to claim 1 or 2, characterized in that 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. The method according to any one of claims 1-3, characterized in that The first announcement message further comprises a communication domain creation identifier. 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. The method according to any one of claims 1-5, characterized in that The first announcement message is in the hierarchical content distribution network (HCDN) header in the remote direct memory access over Ethernet (RoCE v2) message. The method according to any one of claims 1-6, characterized in that The first communication relationship comprises the corresponding relationship between the sender and the receiver in the communication domain members in the first communication domain. 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. The communication domain members in the first communication domain are communication devices performing artificial intelligence (AI) training tasks. The method according to any one of claims 1-8, characterized in that The method comprises: A method of transmitting an advertisement message, characterized in that 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: 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. 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. 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. The method according to any one of claims 10-13, characterized in that The first announcement message further comprises a communication domain creation identifier. 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. 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 RoCE v2 packet. A communication device characterized by comprising: 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. 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. A computer-readable storage medium, characterized by 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.

Citation Information

Patent Citations

  • Data processing method and related equipment

    CN115729719A

  • Path determination method and related equipment

    CN117527675A

  • Ensemble communication method and computing cluster

    CN117914860A

  • Performing a rooted-v collective operation by an operational group of compute nodes in a parallel computer

    US20170322835A1