Data processing method, switching node and related system

By using switching nodes and chain paths in distributed computing systems for multicast data processing, the problem of low multicast communication between multiple nodes is solved, and efficient and reliable data transmission is achieved.

CN119232680APending Publication Date: 2024-12-31HUAWEI TECH CO LTD
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202311324100.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-06-29
Filing Date
2023-10-11
Publication Date
2024-12-31

AI Technical Summary

Technical Problem

In high-performance computing scenarios, multicast communication between multiple nodes is inefficient, especially due to the limited cache capacity of the switching nodes, resulting in high congestion and data processing delays.

Method used

By introducing switching nodes in a distributed computing system, data replication and forwarding are used to use chain paths and cross-units to dynamically control the data read request rate, avoid congestion, and ensure data accuracy and efficiency through tags.

Benefits of technology

It improves the efficiency and reliability of multicast communication, reduces the cache occupancy and data processing delay of switching nodes, and avoids congestion problems caused by full cache.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119232680A_ABST
    Figure CN119232680A_ABST
Patent Text Reader

Abstract

The invention provides a data processing method, a switching node and a related system, which are applied to a distributed computing system comprising a plurality of computing nodes and at least one first switching node, and each first switching node is connected with at least one computing node in the plurality of computing nodes. After receiving the control information of the computing node, the first switching node establishes a multicast task based on the received control information, the multicast task comprises multicast destination information, and then the first switching node obtains multicast data according to the multicast task and sends the multicast data to the computing node according to the multicast task. In the distributed computing system, when a plurality of computing nodes execute services needing multicast, relevant multicast information does not need to be configured in advance, but when multicast is needed, the computing nodes participating in multicast send control information to a switching node, and the switching node establishes a multicast task based on the control information so as to complete multicast. The control plane flow during multicast can be simplified, and the multicast efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a data processing method, a switching node and a related system. Background Art

[0002] As the scale of task calculations in high-performance computing (HPC) scenarios increases, the proportion of multi-node communication in HPC applications has increased significantly, especially broadcast and multicast. For example, in the High-Performance Linpack (HPL) benchmark, the main communication is multicast, and the amount of data in each multicast is huge. Therefore, how to implement multicast between multiple nodes is a technical problem that needs to be solved in HPC tasks. Summary of the invention

[0003] The present application provides a data processing method, a switching node and a related system, which can simplify the control plane process when multicast needs to be implemented in a distributed system and improve the multicast efficiency.

[0004] In a first aspect, the present application provides a data processing method, which is applied to a distributed computing system including multiple computing nodes and at least one first switching node, wherein each first switching node is connected to some or all of the computing nodes in the multiple computing nodes. In the process of executing a service in the distributed computing system, the first switching node receives control information sent by at least one computing node, wherein each control information includes an indication field for indicating that the computing node sending the control information is a multicast source or a multicast destination; after the first switching node receives the control information, it establishes a multicast task based on the received control information, and the multicast task includes multicast destination information, and the multicast destination information is used to indicate the destination information of the multicast data that the multicast task needs to send; then the first switching node obtains the multicast data and sends the multicast data to the computing node according to the multicast task.

[0005] In this distributed computing system, when multiple computing nodes execute services that require multicast, there is no need to configure relevant multicast information in advance. Instead, when multicast is required during the execution of the service, the computing nodes participating in the multicast send control information to the switching nodes, and the switching nodes that receive the control information establish multicast tasks based on the control information and then complete the multicast. This can simplify the control plane process required to implement multicast services and improve multicast efficiency.

[0006] In a possible implementation, the first switching node is connected to a multicast source, and the control information sent by the multicast source also includes address information of the multicast data; then the multicast task established by the first switching node connected to the multicast source also includes the address information of the multicast data; the first switching node obtains the multicast data including: the first switching node sends a data read request to the multicast source according to the address information; and obtains the multicast data from a read response returned by the received multicast source; wherein the multicast source is one of the multiple computing nodes; the read response includes that the multicast data is part or all of the data to be multicast indicated by the control information sent by the multicast source.

[0007] When the amount of data to be multicasted in the multicast source is large, since the cache capacity for caching multicast data in the switching node is limited, the data to be multicasted is read from the data source by sending a read request to the multicast source by the switching node. The switching node can control the rate of sending data read requests, and then control the amount of data transmitted between the switching node and the multicast source and the amount of data passing through the port of the switching node, avoiding congestion caused by the inability to process data in time when the multicast source actively sends data due to the limited cache capacity of the switching node.

[0008] In a possible implementation, the distributed computing system further includes a second switching node, which is connected to the first switching node, and the method further includes: the first switching node sends control information to the second switching node, the control information sent by the first switching node includes a field for indicating whether the first switching node is connected to a multicast source and a field for indicating whether the first switching node is connected to a multicast destination. If the control information sent by the first switching node indicates that the first switching node is connected to a multicast source, the first switching node obtains multicast data, including: the first switching node receives notification information sent by the second switching node, the notification information indicates that the first switching node obtains multicast data from the multicast source; after receiving the notification information, the first switching node sends a data read request to the multicast source according to the address information; the first switching node receives a read response returned by the multicast source to obtain the multicast data, wherein the read response includes the multicast data, which is part or all of the data to be multicast indicated by the control information sent by the multicast source.

[0009] In a distributed computing system including multiple layers of switching nodes, and multicast requires the participation of a second switching node in the upper layer of a first switching node, the first switching node that has established a multicast task also needs to send control information to the second switching node in the upper layer that is connected. After receiving the control information sent by the first switching node connected to the multicast source, the second switching node can notify the first switching node to obtain multicast data from the multicast source and then send it to the second switching node, and the second switching node sends the multicast data to the first switching node that participates in the secondary multicast, wherein the switching nodes that participate in the secondary multicast will all send control information to the second switching node.

[0010] In a possible implementation, if the control information sent by the first switching node indicates that the first switching node is not connected to the multicast source, the first switching node obtains multicast data, including: the first switching node receives multicast data sent by the second switching node, and the multicast data is sent to the second switching node by other first switching nodes connected to the multicast source.

[0011] In a possible implementation, the first switching node includes a processing unit and a port, and the plurality of ports form a chain path, that is, the plurality of ports can exchange data through the chain path.

[0012] In a possible implementation, the first switching node includes a processing unit and a plurality of ports. The first switching node sends multicast data to at least one computing node according to a multicast task, including: the processing unit sends multicast data to the first port of the chain path; if the first port belongs to a target port, the first port copies the multicast data to a cache corresponding to the first port after receiving the multicast data; and sends the multicast data to the computing node connected to the first port through the first port; wherein the first port is one of the plurality of ports included in the first switching node; and the target port is a port indicated by the multicast destination information as needing to send multicast data.

[0013] The chain path further includes a path between the processing unit and the first port; the first switching node further includes a crossbar (xbar), and the processing unit can exchange data with each port through the crossbar. The processing unit can send multicast data to the first port through the chain path between the processing unit and the first port; and can also send multicast data to the first port through the crossbar.

[0014] Each port of the switching node has a cache. After the multicast data is sent to the port, the port copies and caches the multicast data that needs to be sent by the port. This can avoid copying multiple copies of data in the processing unit and then sending them to each target port, which can reduce the occupancy of the main cache area corresponding to the processing unit, reduce the congestion problem caused by the switching node's main cache being full and unable to process the multicast data obtained from the multicast source in time, and improve multicast efficiency.

[0015] In a possible implementation, after copying and caching the multicast data, the first port sends a copy of the multicast data to the next port in the chain path.

[0016] In one possible implementation, the processing unit sends multicast data to the first port of the chain path; if the first port does not belong to the target port, after receiving the multicast data, the first port does not copy the multicast data, and the first port directly sends the multicast data to the next port of the chain path.

[0017] In a possible implementation, the multicast task also includes address information of each multicast destination; the address information is used to indicate the storage address of the multicast destination after receiving the multicast data. The above method also includes: the processing unit generates multiple message headers according to the multicast task, wherein each message header includes a storage address of a multicast destination, and the address information of the multicast destination in each message header is different; the processing unit sends the above multiple message headers to the target port through the cross unit, wherein one target port corresponds to one message header; the above first port sends multicast data to the computing node connected to the first port, including: the first port obtains the target message according to the message header and multicast data obtained by the first port, and sends the target message to the computing node connected to the first port.

[0018] The switching node can send data to each port through two paths, avoiding that all data is sent to the port through one path, which can further reduce the possibility of congestion in the switching node and improve multicast efficiency.

[0019] In a possible implementation, the first switching node includes one or more chain paths. If the first switching node includes one chain path, the chain path connects all ports of the switching node, and multicast data can reach all ports through the chain path; if the first switching node includes multiple chain paths, each of the multiple chain paths can connect part or all of all ports of the switching node.

[0020] If the switching node includes multiple chain paths, the first switching node can copy the multicast data multiple times, and each copy of the multicast data is sent through a chain path, which can reduce the time it takes for the multicast data to reach each port, reduce latency, and improve multicast efficiency.

[0021] In a possible implementation, the message header includes a first label, and the multicast data includes a second label; the processing unit sends the multicast data to the first port of the chain path, and also includes: when the first label and the second label are the same, the first port determines that the first port is the target port.

[0022] A switching node may need to process multiple different multicast tasks. By carrying labels in the message header and multicast data, it is possible to avoid combining the message headers and multicast data of different multicast tasks, resulting in the multicast destination receiving erroneous multicast data.

[0023] In a possible implementation, the control information sent by the multicast destination also includes first quantity information, and the first quantity information is used to indicate the number of multicast destinations connected to the first switching node; the above-mentioned first switching node sends a data read request to the multicast source according to the address information of the multicast data, including: after the first switching node receives the control information of the quantity indicated by the first quantity information, the first switching node sends a data read request to the multicast source according to the address information.

[0024] Since the storage resources of the switching node are limited, the first switching node sends a data read request to the computing node only after it determines that it has received control information sent by all the computing nodes to which it is connected. This can avoid obtaining multicast data without determining all multicast destinations, resulting in the multicast data read first needing to be cached for a long time and occupying storage resources.

[0025] In a possible implementation, the control information sent by the multicast destination also includes first quantity information, and the first quantity information is used to indicate the number of multicast destinations connected to the first switching node; the first switching node sends control information to the second switching node, including: after receiving the control information of the quantity indicated by the first quantity information, the first switching node sends control information to the second switching node.

[0026] Since the storage resources of the switching node are limited, the first switching node sends control information to the second switching node only after it determines that it has received control information sent by all the computing nodes connected to it. This can avoid the second switching node starting to process the task corresponding to the control information immediately after receiving the control information, thereby avoiding occupying the resources of the second switching node. At the same time, it can avoid the problem that the second switching node notifies the first switching node to obtain multicast data without determining all multicast destinations, resulting in the multicast data read first needing to be cached for a long time and occupying storage resources.

[0027] In a possible implementation, the control information sent by the first switching node also includes second quantity information, and the second quantity information is used to indicate the number of first switching nodes connected to the second switching node; the above notification information is sent by the second switching node to the first switching node connected to the multicast source after receiving the control information of the number indicated by the second quantity information.

[0028] Since the storage resources of the switching nodes are limited, the second switching node notifies the first switching node connected to the multicast source to obtain the multicast data only after it determines that it has received all the first switching nodes participating in the multicast. This can avoid the problem that the second switching node obtains the multicast data without determining all the first switching nodes participating in the multicast, resulting in the multicast data obtained first needing to be cached in the second switching node for a long time and occupying storage resources.

[0029] In a possible implementation, the multicast destination information includes port information, which indicates a port through which the first switching node receives control information sent by the computing node and is used to indicate that the first switching node needs to send multicast data through the port indicated by the port information.

[0030] The first switching node needs to send multicast data through the ports through which it receives the control information. Therefore, by recording the port information, the target port can be quickly determined through the port information.

[0031] In one possible implementation, the multicast source and multicast destination are a central processing unit (CPU), a graphics processing unit (GPU), a neural network processor (NPU), a tensor processing unit (TPU) or a dedicated artificial intelligence (AI) processing chip, etc.; the switching node can be a switching chip or a switching device with a switching function.

[0032] In a second aspect, the present application provides a switching node, which includes a processing unit and multiple ports, and the multiple ports form a chain path, wherein: the processing unit is used to send multicast data to a first port of the chain path, and the first port is one of the above-mentioned multiple ports; the first port is used to copy the multicast data to a cache corresponding to the first port, and send the multicast data to a computing node connected to the first port; wherein the first port belongs to a target port, and the target port includes one or more ports that need to send the multicast data.

[0033] Each port of the switching node has a cache. After the processing unit obtains the multicast data, it sends the multicast data to the port. The port copies the multicast data and the cache area corresponding to the port caches the multicast data to be sent by the port. This can avoid copying multiple copies of data in the processing unit and then sending them to each target port, which can reduce the occupancy of the main cache area corresponding to the processing unit, reduce the congestion problem caused by the switching node being unable to process the multicast data obtained from the multicast source in time due to the full data in the main cache, and improve the multicast efficiency.

[0034] The chain path further includes a path between the processing unit and the first port; the first switching node further includes a cross unit, and the processing unit can exchange data with each port through the cross unit. The processing unit can send multicast data to the first port through the chain path between the processing unit and the first port; and can also send multicast data to the first port through the cross unit.

[0035] In a possible implementation, the first port is further configured to send a copy of the multicast data to the next port in the chain path after copying and caching the multicast data.

[0036] In a possible implementation, the processing unit further includes a second port. If the second port does not belong to the target port, the second port is used to send the multicast data to a port next to the second port in the chain path after acquiring the multicast data.

[0037] Each port of the switching node can determine whether the received multicast data needs to be sent. If a port determines that the multicast data needs to be sent, the port copies the multicast data to the corresponding cache and sends the multicast data to the next port of the port in the chain path through the chain path. The port that receives the multicast data determines whether it is the target port, which can reduce the amount of data processed by the processing unit and improve the multicast efficiency.

[0038] In a possible implementation, the multicast task also includes address information of each multicast destination, and the multicast destination includes at least one first computing node; the processing unit is also used to generate multiple message headers according to the multicast task, wherein each message header includes address information of a multicast destination, and the address information of the multicast destinations in each message header is different; the processing unit is also used to send multiple message headers to the target port through the cross unit, wherein one target port corresponds to one message header; the first port is specifically used to: obtain a target message according to the message header and multicast data obtained by the first port, and send the target message to the computing node connected to the first port.

[0039] The switching node can send data to each port through two paths, avoiding that all data is sent to the port through one path, which can further reduce the possibility of congestion in the switching node and improve multicast efficiency.

[0040] In a possible implementation, the first switching node includes one or more chain paths. If the first switching node includes one chain path, the chain path connects all ports of the switching node, and multicast data can reach all ports through the chain path; if the first switching node includes multiple chain paths, each of the multiple chain paths can connect part or all of all ports of the switching node.

[0041] If the switching node includes multiple chain paths, the first switching node can copy the multicast data multiple times, and each copy of the multicast data is sent through a chain path, which can reduce the time it takes for the multicast data to reach each port, reduce latency, and improve multicast efficiency.

[0042] In a possible implementation, the message header includes a first label, and the multicast data includes a second label; the first port is also used to compare the first label in the message header with the second label in the multicast data, and determine that the first port is the target port when the first label and the second label are the same.

[0043] A switching node may need to process multiple different multicast tasks. By carrying labels in the message header and multicast data, it is possible to avoid combining the message headers and multicast data of different multicast tasks, resulting in the multicast destination receiving erroneous multicast data.

[0044] In a possible implementation, the switching node is a switching chip or a switching device with a switching function, and the switching node has a transport layer. Since the switching node has a transport layer, the message header is sent through the protocol stack in the processing unit, which can ensure the reliability of data and improve the reliability of multicast.

[0045] In a third aspect, the present application provides a data processing system, which includes multiple computing nodes and at least one first switching node, each of the at least one first switching node is connected to some or all of the multiple computing nodes, wherein each computing node is used to execute the operations implemented by the computing node in the first aspect or any possible implementation of the first aspect; each first switching node is used to execute the method described in the first aspect or any possible implementation of the first aspect.

[0046] In a fourth aspect, the present application provides a computer-readable storage medium, which stores instructions. When the instructions are executed on a computing device, the computing device executes the operations implemented by the computing node in the first aspect or any possible implementation of the first aspect.

[0047] In a fifth aspect, the present application provides a computer-readable storage medium, which stores instructions. When the instructions are executed on a switching node, the computing device executes the operations implemented by the first switching node in the first aspect or any possible implementation of the first aspect, or executes the operations described in the second aspect or any possible implementation of the second aspect.

[0048] In a sixth aspect, the present application provides a computer program product, which, when executed on a computing device, enables the computing device to perform operations implemented by a computing node in the first aspect or any possible implementation of the first aspect.

[0049] In a seventh aspect, the present application provides a computer program product, which, when running on a device, enables the computing device to perform the operations implemented by the first switching node in the first aspect or any possible implementation of the first aspect, or to perform the operations described in the second aspect or any possible implementation of the second aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0050] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the background technology, the drawings required for use in the embodiments of the present application or the background technology will be described below.

[0051] Figure 1 is a schematic diagram of a computing device cluster provided in an embodiment of the present application;

[0052] Figure 2 is a schematic diagram of a distributed computing system provided by an embodiment of the present application;

[0053] Figure 3 is a schematic diagram of another distributed computing system provided in an embodiment of the present application;

[0054] Figure 4 It is a flowchart of a data processing method provided in an embodiment of the present application;

[0055] Figure 5 is a schematic diagram of the structure of a switching node provided in an embodiment of the present application;

[0056] Figure 6 is a schematic diagram of another data processing method provided in an embodiment of the present application;

[0057] Figure 7It is a schematic diagram of a computing device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0058] The embodiments of the present application are described below in conjunction with the drawings in the embodiments of the present application.

[0059] Currently, with the development of HPC and artificial intelligence (AI) technology, the computing scale of applications is getting larger and larger. In order to solve the computing problem of large-scale data, distributed computing has come into being. Distributed computing processes data through multiple computing nodes, and then completes the calculation by exchanging data between multiple computing nodes. Therefore, the proportion of communication between multiple computing nodes in applications has increased significantly. For example, in the benchmark tests of HPL and HPL-AI, the main communication of collective communications such as broadcast and multicast is multicast, and the amount of data for each multicast is very large. Therefore, how to achieve multicast between multiple computing nodes is a technical problem that needs to be solved.

[0060] The present application provides a distributed computing system and a data processing method applied to the distributed computing system. The distributed computing system includes multiple computing nodes and at least one first switching node, and each first switching node is connected to at least one computing node among the multiple computing nodes. In the distributed computing system, if multiple computing nodes need to perform multicast during the computing process, the multiple computing nodes participating in the computing send control information to the connected switching nodes so that the switching nodes establish a multicast task. Among them, the multiple computing nodes include a multicast source and a multicast destination, the multicast source refers to the computing node that needs to send data, and the multicast destination refers to the computing node that receives the data sent by the multicast source; the multicast task includes port information, and the port information indicates that the switching node needs to send data to the multicast destination through the port indicated by the port information. After obtaining the data, the switching node sends the data to the multicast destination according to the multicast task.

[0061] The distributed computing system provided by the embodiments of the present application is described in detail below with reference to the accompanying drawings.

[0062] The present application provides a computing device cluster, such as Figure 1 As shown, Figure 1 : is a schematic diagram of a computing device cluster provided in an embodiment of the present application. The computing device cluster includes one or more computing devices. When the computing device cluster includes multiple computing devices, the multiple computing devices are connected through a network. The network can be an operator network or a network composed of optical cables and data transmission equipment. The embodiment of the present application does not make specific restrictions.

[0063] The above computing device cluster can form a distributed computing system, and each computing device in the cluster can also independently serve as a distributed computing system. Figure 2 As shown, Figure 2 1 is a schematic diagram of a distributed computing system provided by an embodiment of the present application. The distributed computing system includes a plurality of computing nodes and at least one first switching node (switch). Each of the at least one first switching node is connected to at least one computing node among the plurality of computing nodes. Figure 2 As shown in Figure 2 In the example, a distributed computing system includes four computing nodes (C0-C3) and three first switching nodes (S0-S2), and the four computing nodes and the three first switching nodes are connected in a fully connected manner.

[0064] like Figure 3 As shown, Figure 3 1 is a schematic diagram of another distributed computing system provided by an embodiment of the present application. The distributed computing system includes multiple computing nodes, at least one first switching node, and at least one second switching node. Each of the at least one first switching node is connected to at least one computing node among the multiple computing nodes; each of the at least one second switching node is connected to some of the first switching nodes among the at least one first switching node. Figure 3 As shown, Figure 3 In the example, the distributed computing system includes 8 computing nodes (C0-C7), 6 first switching nodes (S0-S5) and 6 second switching nodes (S6-S11), and the connection relationship between the multiple computing nodes and at least one first switching node and at least one first switching node and at least one second switching node is shown in Figure 3 .

[0065] In an embodiment of the present application, the computing node may be a central processing unit (CPU), a graphics processing unit (GPU), a neural network processor (NPU), a tensor processing unit (TPU) or a dedicated AI processing chip, etc.; the switching node may be a switching chip, or a switching device with a switching function such as a switch.

[0066] It should be understood that the above Figure 2 and Figure 3The figure shows the logical connection relationship between the computing nodes and the switching nodes. The above-mentioned multiple computing nodes can be computing nodes located in the same physical device, or computing nodes located in different physical devices. When the multiple computing nodes are located in multiple different physical devices, the multiple physical devices can be physical devices located in the same cabinet, for example, Figure 3 The computing nodes C0-C3 shown are located in the same server, and the computing nodes C4-C7 are located in another server. The two servers are located in the same cabinet and are connected through the switching node in the cabinet. When the above-mentioned multiple computing nodes are computing nodes located in the same physical device, the above-mentioned switching node can be a switching chip in the physical device, or a switching device different from the physical device, and the switching node has a transmission layer.

[0067] It should be understood that the above combination Figure 2 and Figure 3 What is introduced is only an example of the topological structure of the distributed computing system provided by the present application, which cannot be understood as a specific limitation. The distributed computing system can also be other topological structures. For example, the distributed computing system can also include more or fewer computing nodes or switching nodes, or include more layers of switching nodes. The connection relationship between the above-mentioned computing nodes and the switching nodes, and the connection relationship between at least one first switching node and at least one second switching node are only used as an example and cannot be understood as a specific limitation. There can also be other connection relationships between computing nodes and switching nodes, which are not specifically limited in the embodiments of the present application.

[0068] The following are Figure 2 and Figure 3 The system shown introduces the data processing method provided in the embodiment of the present application.

[0069] like Figure 4 As shown, Figure 4 It is a flow chart of a data processing method provided in an embodiment of the present application, and the method includes the following S401 to S404.

[0070] S401. A first switching node receives control information sent by at least one computing node.

[0071] In the embodiment of the present application, the computing node includes a multicast source and a multicast destination; the multicast source refers to a computing node that needs to multicast data in the process of executing a service, and the multicast destination refers to a computing node that needs to obtain the data multicasted by the multicast source in the process of executing a service. The data multicasted by the multicast source is sent to the multicast destination through the first switching node. For a first switching node, at least one computing node connected to the first switching node may include only a multicast source, or may include a multicast source and one or more multicast destinations, or may include one or more multicast destinations.

[0072] When executing a service, if the multicast source needs to send data to other computing nodes, it will send control information to the connected first switching node so that the first switching node establishes a multicast task based on the control information. When executing a service, if the multicast destination needs to obtain data from the multicast source, it will send control information to the connected first switching node so that the first switching node establishes a multicast task based on the control information. After the first switching node obtains the data, it sends the data to the multicast destination according to the multicast task. Among them, the control information sent by the multicast source and the control information sent by the multicast destination both include an indication field, and the indication field is used to indicate whether the computing node sending the control information is a multicast source or a multicast destination. For example, if the value of the indication field is 1, it indicates that the computing node sending the control information is a multicast source; if the value of the indication field is 0, it indicates that the computing node sending the control information is a multicast destination.

[0073] The following introduces the control information sent by the multicast destination and the control information sent by the multicast source respectively.

[0074] In the case where the computing node is a multicast destination, the multicast destination needs to obtain data from the multicast source during the execution of the service, for example, an operator is executed, and the operator indicates to obtain data from the multicast source. The multicast destination generates control information and sends the control information to the first switching node. Among them, the indication field in the control information sent by the multicast destination carries a first identifier, and the first identifier indicates that the computing node sending the control information is a multicast destination. In the embodiment of the present application, for the convenience of description, the control information carrying the first identifier is referred to as the first control information.

[0075] In a possible implementation, the first control information may also include other information. As shown in Table 1 below, Table 1 is the fields included in the first control information and the meanings represented by the corresponding fields. In addition to the first identifier carried in the indication field, the first control information may also include any one or more of the other fields shown in Table 1. It should be understood that the fields listed in Table 1 are only used as an example, and the first control information may include more or fewer fields, and the embodiments of the present application do not make specific restrictions.

[0076] Table 1

[0077] Fields meaning Task Fields Used to indicate a task Operator Field A task type used to indicate a task to be performed by the first switching node. Data volume field Used to indicate the amount of data to be multicasted Indicator Field Used to indicate whether the control information is sent by the multicast source or the multicast destination. Address Field Used to indicate the storage address of the multicast destination after receiving the multicast data Quantity field Used to indicate the number of multicast destinations connected to the first switching node

[0078] The above-mentioned indication field is used to indicate whether the control information is sent by a multicast source. If the indication field in the control information carries the first identifier, it indicates that the control information is sent by a multicast destination, that is, the control information is the above-mentioned first control information; if the indication field in the control information carries the second identifier, it indicates that the control information is sent by a multicast source. For example, if the indication field includes one bit, the first identifier can be 0 and the second identifier can be 1. Therefore, if a computing node is a multicast destination, when sending control information, the computing node sets the value of the indication field in the control information to 0, obtains the first control information, and then sends it to the first connected switching node; if a computing node is a multicast source, when sending control information, the computing node sets the value of the indication field in the control information to 1, and then sends it to the first connected switching node.

[0079] The above-mentioned task field is used to carry a task identifier (jobidentity, jobID), and the task identifier is used to indicate a task, and a task corresponds to a unique task identifier. The first switching node may include multiple different tasks to be executed, and different task identifiers are used to indicate different tasks. For example, there are multiple processes running in each computing node, and processes with the same process identifier in different computing nodes need to be multicast multiple times, so different task numbers can be assigned to different multicast tasks in sequence as task identifiers. The task identifier can also include a process identifier and a task number. Among them, the multicast tasks initiated by the same process are assigned task numbers in sequence; therefore, the process identifiers in the task identifiers corresponding to the multicast tasks initiated by the same process are the same, but the task numbers are different; in the multicast tasks initiated by different processes, the task numbers in the task identifiers may be the same, but the process identifiers are different, so that different multicast tasks can be distinguished by task identifiers.

[0080] For another example, among multiple computing nodes connected to the same first switching node, some computing nodes are used to execute the first service, and some computing nodes are used to execute the second service. The computing nodes executing the same service need to exchange data, and the computing nodes executing the same service are regarded as a communication domain, and different communication domains are assigned different communication domain identifiers; among the computing nodes executing different services, there are computing nodes that need to be multicasted through the first switching node. Therefore, the task identifier includes the communication domain identifier, process, and task number, and the multicast tasks with the same task number initiated by the same process identifier in different communication domains can be distinguished based on the communication domain identifier.

[0081] It should be noted that a switching node can process multiple multicast tasks in parallel, and different multicast tasks are distinguished by different task identifiers, but the first switching node has the same processing process for any multicast task. Therefore, in the embodiment of the present application, the data processing method adopted by the embodiment of the present application is introduced by taking the switching node processing a multicast task as an example.

[0082] It should be understood that if a distributed computing system is used to execute only one multicast service at a time, the task field may not be included in the control information.

[0083] The operator field is used to carry an operator identifier, and the operator identifier is used to indicate the type of task executed by the first switching node. In the embodiment of the present application, the task type is multicast or broadcast.

[0084] The data volume field is used to carry the data volume, and the data volume indicates the data volume of the data to be multicast in the multicast source.

[0085] The above-mentioned address field is used to carry address information. For a multicast destination, the address field is used to carry the address information of the multicast destination. The address information of the multicast destination is used to indicate the storage address of the multicast destination after receiving the multicast data.

[0086] The quantity field is used to carry first quantity information, and the first quantity information is used to indicate the number of multicast destinations connected to the first switching node that receives the first control information. Figure 2 In the distributed computing system shown, the multicast source is computing node C0, and the multicast destinations include computing node C1 and computing node C3. Then the value of the quantity field in the control information sent by computing node C1 and computing node C3 is both 2.

[0087] In the case where the computing node is a multicast source, when the multicast source is executing a service, if it needs to multicast data, for example, when executing a multicast operator, the operator indicates that data needs to be multicast from the computing node, the multicast source generates control information and sends the control information to the first switching node. Among them, the indication field of the control information sent by the multicast source carries the second identifier, and the address field carries the address information of the data to be multicast. The second identifier is used to indicate that the computing node sending the control information is a multicast source; the address information is used to indicate the storage address of the data to be multicast in the multicast source, such as the starting address of the data to be multicast. In the embodiment of the present application, for the convenience of description, the control information carrying the second identifier is referred to as the second control information.

[0088] In a possible implementation, the second control information may also include other information. As shown in Table 2 below, Table 2 is the fields included in the second control information and the meanings represented by the corresponding fields. In addition to the second identifier carried in the indication field and the address information of the address field, the second control information may also include any one or more of the other fields shown in Table 2. Among them, the specific meanings of some fields in Table 2 can refer to the introduction to the meanings of each field in Table 1 above. It should be understood that the fields listed in Table 2 are only used as an example, and the second control information may include more or fewer fields, and the embodiments of the present application do not impose specific restrictions.

[0089] Table 2

[0090] Fields meaning Task Fields Used to indicate a task Operator Field A task type used to indicate a task to be performed by the first switching node. Data volume field Used to indicate the amount of data to be multicasted Indicator Field Used to indicate whether the control information is sent by the multicast source or the multicast destination. Address Field Used to indicate the storage address of the data to be multicast in the multicast source

[0091] S402. The first switching node establishes a multicast task based on the received control information.

[0092] After receiving control information sent by a computing node, the first switching node establishes a multicast task based on the received control information. The multicast task at least includes multicast destination information, which is used to indicate the destination of the multicast data sent by the multicast task or to indicate the port of the first switching node to send the multicast data.

[0093] After receiving the control information, the first switching node establishes different multicast tasks according to the task identifier in the control information, and after receiving the control information, writes the information in the control information into the multicast task corresponding to the task identifier according to the task identifier. The method for the first switching node to establish different multicast tasks is the same, so the embodiment of the present application takes establishing a multicast task as an example for introduction.

[0094] The above multicast destination information includes port information, which is used to indicate the port that receives the control information; the port information is also used to indicate the port through which the first switching node sends the multicast data, that is, the first switching node receives the control information sent by the multicast destination through which ports, and needs to send the obtained multicast data through these ports. For example, there is a bitmap corresponding to the port in the first switching node, and each port corresponds to a bit in the bitmap. After a port of the first switching node receives a first control information, the corresponding bit of the port in the bitmap is set. For example, the first switching node includes 5 ports. If the bitmap is "00000", it means that the first switching node has not received the first control information; if the bitmap is "00110", since the second and third bits of the bitmap are set to 1, it means that the first switching node has received the first control information through the second port and the third port respectively, or it means that the first switching node has received the first control information through the ports with port numbers 2 and 3 respectively. For another example, after receiving a first control information, the first switching node establishes a port information table to record the port ID that receives the first control information.

[0095] It should be understood that a multicast includes multiple multicast destinations. Therefore, if a first switching node is connected to multiple computing nodes, and these multiple computing nodes are all multicast destinations, the first switching node will receive the first control information sent by the multiple multicast destinations. After receiving the first control information through a port, the first switching node sets the corresponding bit position in the bitmap corresponding to the port. In some possible implementations, the first switching node can be connected to a computing node through multiple ports. Therefore, in the bitmap corresponding to the above ports, one logical port may correspond to one bit position, and one logical port includes one or more physical ports. The physical ports included in one logical port are connected to the same computing node.

[0096] In a possible implementation, the multicast task may also include other information. As shown in Table 3 below, Table 3 lists the fields included in the multicast task and the meanings of the corresponding fields. In addition to the port information recorded in the port field, the multicast task may also include any one or more of the other fields shown in Table 3. The specific meaning of each field in Table 3 can refer to the introduction to the meaning of each field in Table 1 above. It should be understood that the fields listed in Table 3 are only used as an example, and the first control information may include more or fewer fields. For example, Figure 2 The distributed computing system shown has only one layer of switching nodes, and the multicast task may not include a switching node field; the embodiment of the present application does not impose any specific limitation.

[0097] Table 3

[0098] Fields meaning Task Fields Used to indicate a task Data volume field Used to indicate the amount of data to be multicasted Port field Port used to indicate the port where control information is received Destination Address Field Used to indicate the storage address of the multicast destination after receiving the multicast data Source Address Field Used to indicate the storage address of the multicast source for the data to be multicasted Source Tag Field Used to indicate whether the first switching node is connected to the multicast source Root Tag Field Used to indicate whether the first switching node is a root node Exchange Node Field Used to indicate the upper layer switching node to which the first switching node is connected

[0099] The above-mentioned destination address field is used to record the port ID of the port that receives the first control information and the address information of the multicast destination carried by the address field in the first control information. After the first switching node receives a first control information through a port, the port ID of the port and the address information of the multicast destination carried by the address field in the first control information are written into the destination address field of the multicast task. That is, the destination address field records the correspondence between the port ID and the address information of the multicast destination.

[0100] The source address field is used to record the address information of the data to be multicasted by the multicast source, and is used to indicate the storage address of the data to be multicasted in the multicast source. For example, the address information may be the starting address of the data to be multicasted.

[0101] The above-mentioned source label field is used to indicate whether the first switching node that establishes the multicast task is connected to the multicast source. If the source label field is the third identifier, it means that the first switching node is connected to the multicast source. After receiving the control information, the first switching node determines whether the computing node that sends the control information is a multicast source based on the indication field in the control information. If it is a multicast source, the source label field is set to an identifier indicating that the multicast source is connected. For example, the source label field includes 1 bit. When the bit position is 1, it indicates that the first switching node that establishes the multicast task is connected to the multicast source. When the bit position is 0, it indicates that the first switching node that establishes the multicast task is not connected to the multicast source.

[0102] The root tag is used to indicate whether the switch node that creates the multicast task is the root node of the multicast task. The root node refers to the switch node that does not need to send the multicast data to the upper layer switch node after obtaining the multicast data when executing a multicast task. Figure 2 In the distributed computing system shown in FIG. 1 , if the switching node S0 receives the control information, since S0 is connected to each computing node in the distributed computing system, after the switching node S0 obtains the multicast data from the multicast source, it can send the multicast data to each multicast destination. Therefore, the switching node S0 is the root node. Figure 3 In the distributed computing system shown, if the computing nodes participating in multicast include 6 nodes from C0 to C5, C0 is the multicast source, and the remaining computing nodes are the multicast destinations; after S0 obtains the multicast data in C0, it also needs to send the data to the switching node S6 or the switching node S7, and S6 or S7 sends the multicast data to S3, and then S3 sends it to C4 and C5; therefore, the root node is S6 or S7.

[0103] The above-mentioned switching node field is used to record the identifier of the upper-layer switching node to which the first switching node of the multicast task is connected, indicating the upper-layer switching node to which the first switching node of the multicast task is connected. Figure 3 The distributed computing system shown includes two layers of switching nodes, each first switching node of the first layer is connected to two second switching nodes of the second layer, and each first switching node that establishes a multicast task records the identifiers of the two second switching nodes it is connected to in the switching node field when establishing the multicast task. For example, if the first switching node S0 receives control information to establish a multicast task, the first switching node will record the ID of the second switching node S6 and the ID of the second switching node S7.

[0104] In a possible implementation, the multicast task further includes a source identification field, where the source identification field is used to record the ID of the multicast source.

[0105] In a possible implementation, the multicast task further includes a destination identification field, which is used to record the ID of the computing node that sends the first control information. If the multicast task includes a target identification field, the multicast destination information further includes the ID of the computing node recorded in the destination identification field.

[0106] After receiving a control message, the first switching node determines whether the computing node sending the control message is a multicast source or a multicast destination based on the indication field. If it is a multicast source, the ID of the computing node is recorded in the source identification field; if it is a multicast destination, the ID of the computing node is recorded in the destination identification field. The control message sent by the computing node may carry its corresponding ID, and the first switching node obtains the ID of the computing node from the control message. The first switching node may also store a mapping relationship between the port ID and the computing node ID, and the mapping relationship includes multiple groups of port identifiers and computing node IDs. A group of port identifiers and computing node IDs indicates that the port corresponding to the port identifier is connected to the computing node represented by the computing node ID. The first switching node can determine the identifier of the computing node that sends the control message based on the port that receives the control message and the mapping relationship.

[0107] It should be noted that after the first switching node receives control information sent by any computing node (which can be a multicast source or a multicast destination), it can start creating a multicast task. After receiving control information sent by other computing nodes, the first switching node updates the multicast task based on the received control information.

[0108] Exemplarily, if a first switching node receives control information sent by a computing node, the first switching node creates a multicast task, and obtains the specific contents of the task field and the data volume field in the multicast task shown in Table 3 according to the control information. If the indication field in the control information records the first identifier, it means that the computing node sending the control information is the multicast destination, and the first switching node writes the address recorded in the address field in the control information into the destination address field of the multicast task, and sets the corresponding bit position in the bitmap to 1 according to the port receiving the control information, and the first switching node can also obtain the ID of the upper-layer switching node to which it is connected, and write it into the switching node field in the multicast task.

[0109] If the first switching node receives the second control information, and the indication field in the control information still records the first identifier, the address recorded in the address field in the control information is written into the destination address field of the multicast task, and the corresponding bit position in the bitmap is set to 1 according to the port that receives the control information.

[0110] If the first switching node receives a control message, and the indication field in the control message records the second identifier, it indicates that the computing node sending the control message is a multicast source. The first switching node writes the address recorded in the address field in the control message into the source address field of the multicast task, sets the corresponding bit position in the bitmap to 1 according to the port that receives the control message, and sets the source tag field to 1.

[0111] In a possible implementation, if the first control information sent by the above-mentioned multicast destination includes a quantity field, for a multicast task, the first switching node determines that the multicast task has been created after receiving the first quantity of control information carrying the first identifier. If the first switching node is connected to a multicast source, it determines that the multicast task has been created after receiving the control information sent by the multicast source and the first quantity of control information carrying the first identifier. It should be understood that the receiving of the first quantity of control information carrying the first identifier in the embodiment of the present application actually refers to receiving the first quantity of control information having the same task identifier and carrying the first identifier, and the first quantity is the number of multicast destinations connected to the first switching node indicated by the quantity field.

[0112] S403. The first switching node obtains multicast data according to the multicast task.

[0113] If the first switching node is connected to the multicast source, after establishing the multicast task, the first switching node obtains the multicast data from the multicast source according to the address information of the data to be multicast in the source address field in the multicast task, and sends the obtained multicast data to the at least one computing node.

[0114] In a possible implementation, the first switching node sends a data read request to the multicast source to read the data to be multicasted, the data read request includes the starting address and the read length of the read data, after receiving a data read request, the multicast source obtains the corresponding multicast data according to the starting address and the data length in the data read request, and then returns a read response to the first switching node, the read response includes the multicast data obtained according to the data read request. After receiving the returned read response, the first switching node obtains the multicast data in the read response, and sends the multicast data to each multicast destination.

[0115] The multicast data read by the data read request is part or all of the data to be multicast, that is, part or all of the data indicated by the address field and the data amount field in the control information sent by the multicast source. If a data read request can only read part of the data to be multicast, the first switching node sends multiple data read requests to the multicast source to read all the data to be multicast.

[0116] For example, the first switching node generates multiple data read requests according to the starting address, data volume, and maximum payload size (MPS) of the data to be multicast. Each data read request includes a starting address and a read length, and is used to read a section of data starting from the starting address and having a length of the read length. It should be noted that the first switching node may also generate one or more data read requests according to the starting address, data length, and maximum read request size (MRRS), which is not specifically limited in the embodiments of the present application.

[0117] Optionally, if the sum of the total amount of unfinished multicast data and the total amount of data to be received is greater than or equal to the cache capacity of the first switching node, the first switching node can suspend sending data read requests to the multicast source. The total amount of unfinished multicast data refers to the total amount of data that has not been sent to the multicast destination, and the total amount of data to be received refers to the total amount of data that can be read by the data read requests that have been sent but have not received a read response. This is to avoid congestion between the first switching node and the multicast source.

[0118] In another possible implementation, after establishing the multicast task, the first switching node sends notification information to the multicast source, the notification information including the starting address and the amount of the data to be multicast. After receiving the notification information, the multicast source sends the data to be multicast to the first switching node.

[0119] S404. The first switching node sends multicast data to the at least one computing node according to the multicast task.

[0120] In the embodiment of the present application, after acquiring the multicast data, the first switching node needs to send the multicast data to the multicast destinations connected to each port through multiple ports. The process of the first switching node performing multicast is described below.

[0121] After obtaining a read response, the first switching node parses the multicast data from the read response and transmits the multicast data to the first port P1, where P1 is one of the multiple ports included in the first switching node. Then the first switching node determines whether P1 is a target port. If it is determined that P1 belongs to the target port, the multicast data is copied to the cache corresponding to the first port, and then the multicast data is sent to the computing node connected to the first port through the first port. The target port is the port indicated by the multicast destination information that the multicast data needs to be sent.

[0122] After the first switching node determines whether P1 belongs to the target port, regardless of whether P1 belongs to the target port, P1 sends the multicast data to the second port P2, and then the first switching node determines whether P2 belongs to the target port. If it is determined that P2 does not belong to the target port, the multicast data is not copied, and P2 sends the multicast data to the third port P3.

[0123] The first switching node generates a plurality of message headers according to the multicast task, wherein each target port corresponds to a message header, and the destination address in each message header is different. The destination address in each message header is the address information of a multicast destination, that is, the storage address of the multicast destination after receiving the multicast data. After acquiring the multicast data, the first switching node determines the target port to which the multicast data needs to be sent according to the multicast destination information, and then determines the destination address corresponding to the target port according to the target port and the destination address field in the multicast task. Among them, the first switching node can determine the target port according to the port information recorded in the port field in the multicast task, and then determine the address information of the multicast destination in the control information received by the port according to the port ID and the destination address field of a target port as the destination address corresponding to the port, and then generate the corresponding message header. If the multicast task includes a destination identification field, the first switching node can also determine the target port based on the ID of the computing node recorded in the destination identification field and the mapping relationship between the port ID and the computing node ID, and then determine the address information of the multicast destination in the control information received by the port based on the port ID and the destination address field of a target port as the destination address corresponding to the port, and then generate a corresponding message header.

[0124] Exemplarily, the first switching node determines that multicast data needs to be sent to the computing node connected to P1 through P1 based on the multicast destination information, that is, P1 belongs to the target port, then the first switching node determines the address information of the multicast destination corresponding to P1 based on the port ID of P1 and the destination address field in the multicast task, and generates a message header based on the address information and sends it to P1. If P3 also belongs to the target port, the first switching node determines the address information of the multicast destination corresponding to P3 based on the port ID of P3 and the destination address field in the multicast task, and generates a message header based on the address information and sends it to P3. For other ports determined as target ports, the corresponding message header is generated by the same method as above and sent to the corresponding port.

[0125] After acquiring the multicast data and the corresponding message header, each target port obtains the target message according to the obtained message header and multicast data, and then sends the target message to the computing node connected to it.

[0126] The first switching node includes a processing unit and a plurality of ports, wherein the processing unit sends the multicast data to the port after acquiring the multicast data, and the processing unit is further used to generate the plurality of message headers and send them to the target port. Figure 5 , describes how multicast data in the first switching node is sent from a processing unit to a port, how multicast data is sent from one port to another port, and how a message header is sent from a processing unit to each target port.

[0127] The present application also provides a switching node. Figure 5 As shown, Figure 5 1 is a schematic diagram of a switching node provided in an embodiment of the present application. The switching node includes a processing unit and a plurality of ports. Figure 5 The example includes 16 ports (P1 to P16). The processing unit and multiple ports can communicate through different paths, including the xbar shown in the figure and the chain path formed by each port. Among them, the switching node can include one or more chain paths. If the switching node includes a chain path, this chain path connects all ports of the switching node, and multicast data can reach all ports from the processing unit through the chain path; if the switching node includes multiple chain paths, each of the multiple chain paths can connect part or all of all ports of the switching node, but the ports included in the multiple chain paths should cover all ports of the switching node. Figure 5 In the example, a chain link includes two chain paths, which are a link connecting the processing unit and ports P1 to P8 in the figure, and a link connecting the processing unit and ports P9 to P16.

[0128] After the switching node obtains a read response through a port, it transmits the read response to the processing unit through xbar, and the processing unit parses the multicast data from the read response. The processing unit sends the multicast data through the chain path, and the port that receives the multicast data determines whether it is the target port. For example, the first port P1 receives the multicast data. If P1 determines that it belongs to the target port, P1 copies the multicast data to the cache corresponding to P1, and then P1 sends one copy of the multicast data to the computing node connected to it, and sends another copy of the multicast data to the next port P2 of P1 in the chain path through the chain path. If P1 determines that it does not belong to the target port, P1 does not copy the multicast data, and sends the multicast data to the next port P2 of P1 in the chain path through the chain path. Figure 5 In the example where P2 is not the target port, P2 does not copy the multicast data, nor does it obtain the target message based on the message header and multicast data.

[0129] After receiving the multicast data, if P2 determines that it belongs to the target port, P2 copies the multicast data to the cache corresponding to P2, and then P2 sends a copy of the multicast data to the computing node to which it is connected, and sends the multicast data to the next port P3 of P2 in the chain path through the chain path. If P2 determines that it does not belong to the target port, P2 does not copy the multicast data, and sends the multicast data to the next port P3 of P2 in the chain path through the chain path. Other ports that receive the multicast data perform the same operations as P1 and P2 above, which will not be repeated here.

[0130] Above Figure 5 The switching node shown includes two links. After the processing unit obtains the multicast data, it copies the multicast data in the processing unit to obtain two copies of the multicast data, and then sends one copy of the multicast data to each link. For example, the processing unit sends one copy of the multicast data to P1 and P16 respectively, and then the multicast data in each link is transmitted to other connected ports through the chain path.

[0131] In the embodiment of the present application, the processing unit also generates multiple message headers according to the multicast task, and sends the corresponding message headers to each port through xbar. The destination address in each message header is the address information of a multicast destination, that is, the storage address of the multicast destination after receiving the multicast data. After obtaining the multicast data, the processing unit determines the target port to which the multicast data needs to be sent according to the multicast destination information, and then determines the destination address corresponding to the target port according to the target port and the destination address field in the multicast task. Among them, the processing unit can determine the target port according to the port information recorded in the port field in the multicast task, and then determine the address information of the multicast destination in the control information received by the target port according to the port ID and the destination address field of a target port, as the destination address corresponding to the target port, and then generate the corresponding message header. If the multicast task includes a destination identification field, the processing unit can also determine the target port according to the ID of the computing node recorded in the destination identification field and the mapping relationship between the port ID and the computing node ID, and then determine the address information of the multicast destination in the control information received by the port according to the port ID and the destination address field of a target port, as the destination address corresponding to the port, and then generate the corresponding message header.

[0132] Exemplarily, the processing unit determines that multicast data needs to be sent to the computing node connected to P1 through P1 based on the multicast destination information, that is, P1 belongs to the target port, then the processing unit determines the address information of the multicast destination corresponding to P1 based on the port ID of P1 and the destination address field in the multicast task, and generates a message header based on the address information, and sends it to P1 through xbar. If P3 also belongs to the target port, the processing unit determines the address information of the multicast destination corresponding to P3 based on the port ID of P3 and the destination address field in the multicast task, and generates a message header based on the address information, and sends it to P3 through xbar. For other ports determined as target ports, the corresponding message header is generated by the same method as above and sent to the corresponding port.

[0133] After each target port determines that it is the target port, it combines the multicast data and the received message header into a target message, and then sends the target message carrying the multicast data to the connected computing node, thereby realizing multicast.

[0134] In an embodiment of the present application, the processing unit carries a first label when sending a message header to each target port, and carries a second label in the multicast data sent to each port. The first label and the second label may be task identifiers corresponding to the corresponding multicast tasks. After a port receives the multicast data, the port compares the second label with the first label. If the second label is the same as the first label, the port determines that it belongs to the target port.

[0135] The above describes the data processing method provided by the present application when the distributed computing system includes only one layer of switching nodes in combination with the accompanying drawings. The following describes the data processing method provided by the present application when the distributed computing system includes two layers of switching nodes. Figure 3 As shown in the distributed computing system. Figure 6 As shown, Figure 6 It is a schematic diagram of another data processing method provided in an embodiment of the present application.

[0136] S601. The computing node sends control information to the first switching node.

[0137] The computing node includes a multicast source and a multicast destination. In the embodiment of the present application, the content of the control information sent by the multicast source and the multicast destination to the first switching node refers to the relevant description in S401 above, which will not be repeated here.

[0138] It should be noted that if the distributed computing system includes multiple layers of switching nodes, a multicast may require multiple first switching nodes to establish a multicast task. Figure 3In the distributed computing system shown, the computing nodes participating in a multicast include 8 computing nodes from C0 to C7, of which C0 is the multicast source and the other computing nodes are the multicast destinations. If the 4 computing nodes from C0 to C3 send control information to S0, and the 4 computing nodes from C4 to C7 send control information to S3, then both S0 and S3 will establish a multicast task.

[0139] S602. The first switching node establishes a multicast task based on the received control information.

[0140] The process of the first switching node establishing the multicast task based on the received control information can refer to the description of S402 above, which will not be repeated here.

[0141] S603. The first switching node sends control information to the second switching node.

[0142] After establishing the multicast task, the first switching node sends control information to the second switching node to which it is connected. The control information sent by the first switching node includes a source indication field and a destination indication field. The source indication field is used to indicate whether the first switching node is connected to a multicast source, and the destination indication field is used to indicate whether the first switching node is connected to a multicast destination. For example, the source indication field and the destination indication field each include a bit, and when the value of the source indication field is 1, it indicates that the first switching node is connected to the multicast source, and when the value of the source indication field is 0, it indicates that the first switching node is not connected to the multicast source; when the value of the destination indication field is 1, it indicates that the first switching node is connected to the multicast destination, and when the value of the destination indication field is 0, it indicates that the first switching node is not connected to the multicast destination. In the embodiment of the present application, for the convenience of description, the control information sent by the first switching node is referred to as the third control information.

[0143] After establishing the multicast task, the first switching node determines whether the multicast source and the multicast destination are connected according to the multicast task, and sets the source indication field and the destination indication field in the third control information to corresponding values. For example, if the multicast source and the multicast destination connected by the first switching node are both set to 1.

[0144] Optionally, the third control information may also use only one field to indicate whether the first switching node is connected to the multicast source and the multicast destination. For example, the field includes two bits, and when the value of the first bit is 1, it indicates that the first switching node is connected to the multicast source, and when the value of the first bit is 0, it indicates that the first switching node is not connected to the multicast source; when the value of the first bit is 1, it indicates that the first switching node is connected to the multicast destination, and when the value of the first bit is 0, it indicates that the first switching node is not connected to the multicast destination. The embodiments of the present application are not specifically limited.

[0145] In a possible implementation, the third control information may also include other information. As shown in Table 4 below, Table 4 shows the fields included in the third control information and the meanings represented by the corresponding fields. In addition to the fields for indicating whether the first switching node is connected to the multicast source and the multicast destination, the third control information may also include any one or more of the other fields shown in Table 4. It should be understood that the fields listed in Table 1 are only used as an example, and the third control information may include more or fewer fields, and the embodiments of the present application do not make specific limitations.

[0146] Table 4

[0147] Fields meaning Task Fields Used to indicate a task Operator Field A task type used to indicate a task to be performed by the first switching node. Data volume field Used to indicate the amount of data to be multicasted Source Indicator Field Used to indicate whether the first switching node is connected to the multicast source Source Address Field Used to indicate the storage address of the data to be multicast in the first switching node Purpose Indicator Field Used to indicate whether the first switching node is connected to the multicast destination Destination Address Field Used to indicate the storage address of the first switching node after receiving the multicast data sent by the second switching node Quantity field Used to indicate the number of first switching nodes connected to the second switching node

[0148] The source address field in the third control information indicates the storage address of the first switching node after obtaining the data to be multicast when the first switching node is connected to a multicast source. If the second switching node reads the data to be multicast from the first switching node, the storage address is carried in the data read request sent by the second switching node to the first switching node.

[0149] The destination address field in the third control information indicates the storage address of the first switching node after receiving the multicast data sent by the second switching node when the first switching node is connected to a multicast destination, and is used by the second switching node to write the multicast data to the first switching node.

[0150] The quantity field in the third control information is used to carry the second quantity, and the first quantity is used to indicate the number of multicast destinations connected to the first switching node that receives the first control information. Figure 3 In the distributed computing system shown, the computing nodes participating in a multicast include 8 computing nodes from C0 to C7, where C0 is the multicast source and the other computing nodes are the multicast destinations. If the 4 computing nodes from C0 to C3 send the control information to S0, and the 4 computing nodes from C4 to C7 send the control information to S3, then both S0 and S3 will establish a multicast task. After S0 and S3 establish the multicast task, if S0 and S3 choose to send the third control information to the second switching node S6, the value of the quantity field in the third control information is 2.

[0151] In a possible implementation manner, the third control information further includes a switching node identification field, which is used to carry the ID of the first switching node that sends the third control information.

[0152] In the embodiment of the present application, since the first switching node is also connected to one or more second switching nodes, each first switching node needs to select the target second switching node participating in the multicast task after establishing the multicast task. As described above, after S0 and S3 establish the multicast task, since S0 and S3 are both connected to S6 and S7, S0 and S3 need to select the same second switching node to complete the multicast. In the embodiment of the present application, the first switching node can select the target second switching node by the hash remainder method. For example, the first switching node performs a hash operation using the task identifier as a hash factor, takes a remainder of n according to the result of the hash operation, and selects the target second switching node according to the remainder, wherein n is the number of second switching nodes connected to the first switching node. Exemplarily, the above-mentioned S0 performs a hash operation using the task identifier as a hash factor, takes a remainder of 2 according to the result of the hash operation, and if the remainder is 0, selects to send the third control information to S6; if the remainder is 1, selects to send the third control information to S7.

[0153] Since the task identifiers of the same multicast are the same, the hash operations performed on the task identifiers by different first switching nodes participating in the same multicast obtain the same results and the same remainders. This ensures that different first switching nodes participating in the same multicast can select the same second switching node as the target second switching node, and load balancing can be achieved when there are multiple multicast tasks in the distributed computing system.

[0154] After determining the target second switching node, the first switching node updates the ID of the switching node recorded in the switching node field in the multicast task, and only retains the ID of the target second switching node.

[0155] S604. The second switching node establishes a multicast task based on the received control information.

[0156] After receiving control information sent by a first switching node, the second switching node establishes a multicast task based on the received control information. The multicast task at least includes destination switching node information, which is used to indicate the destination of the multicast data sent by the multicast task, or to indicate the port of the second switching node to send the multicast data.

[0157] After receiving the third control information, the second switching node establishes different multicast tasks according to the task identifier in the third control information, and after receiving the third control information, writes the information in the third control information into the multicast task corresponding to the task identifier according to the task identifier. The method for the second switching node to establish different multicast tasks is the same, so the embodiment of the present application takes establishing a multicast task as an example for introduction.

[0158] The above-mentioned destination switching node information includes port information, and the port information is used to indicate the port that receives the third control information; the port information is also used to indicate the port through which the second switching node sends multicast data, that is, the second switching node receives the third control information sent by the first switching node through which ports, and needs to send the obtained multicast data through these ports. For example, there is a bitmap corresponding to the port in the second switching node, and each port corresponds to a bit in the bitmap. After a port of the second switching node receives a third control information, the corresponding bit of the port in the bitmap is set. For example, the second switching node includes 4 ports. If the bitmap is "0000", it means that the second switching node has not received the third control information; if the bitmap is "0011", since the first and second bits of the bitmap are set to 1, it means that the second switching node has received the third control information through the first port and the second port respectively, or it means that the second switching node has received the third control information through the ports with port numbers 1 and 2 respectively. For another example, after receiving a third control information, the second switching node establishes a port information table to record the port ID that receives the third control information.

[0159] In a possible implementation, the multicast task may also include other information. As shown in Table 5 below, Table 5 is the fields included in the multicast task established by the second switching node and the meanings represented by the corresponding fields. In addition to the port information recorded in the port field, the multicast task may also include any one or more of the other fields shown in Table 5. Among them, the specific meaning of each field in Table 5 can refer to the introduction to the meaning of the corresponding field in Table 4 above, that is, the fields in Table 4 included in the third control information, and the second switching node will also record the multicast task when establishing the multicast task. It should be understood that the fields listed in Table 5 are only used as an example, and the third control information may include more or fewer fields.

[0160] Table 5

[0161]

[0162] The destination address field is used to record the port ID of the port receiving the third control information and the storage address carried by the destination address field in the third control information. After the second switching node receives a third control information through a port, the port ID of the port and the storage address in the third control information are written into the destination address field of the multicast task. That is, the destination address field records the correspondence between multiple groups of port IDs and the address information of the multicast destination.

[0163] In a possible implementation manner, the multicast task established by the second switching node further includes a source identification field, where the source identification field is used to record the ID of the first switching node connected to the multicast source.

[0164] In a possible implementation, the multicast task established by the second switching node also includes a destination identification field, which is used to record the ID of the first switching node that sends the message without connecting to the multicast source. If the multicast task includes a target identification field, the destination switching node information also includes the ID of the first switching node recorded in the destination identification field.

[0165] It should be noted that after the second switching node receives the third control information sent by any first switching node, it can start to create a multicast task. After receiving control information sent by other first switching nodes, the second switching node updates the multicast task based on the received third control information.

[0166] In a possible implementation, if the third control information sent by the first switching node includes a quantity field, for a multicast task, the second switching node determines that the multicast task is created after receiving the second quantity of the third control information, wherein the second quantity is the quantity of the first switching nodes connected to the second switching node indicated by the quantity field in the third control information.

[0167] S605. The second switching node sends notification information to the first switching node connected to the multicast source, to instruct the first switching node connected to the multicast source to obtain multicast data.

[0168] After receiving a third control message, if the source indication field of the third control message indicates that the first switch node that sent the third control message is connected to a multicast source, the second switch node sends a notification message to the first switch node; or after the second switch node has established a multicast task, it sends a notification message to the first switch node that is connected to the multicast source. The notification message is used to instruct the first switch node that is connected to the multicast source to obtain multicast data from the multicast source. For example, if the distributed computing system executes only one multicast task at a time, the notification message can be a response message for responding to the third control message sent by the first switch node. If the third control message includes a task field, the notification message includes the above-mentioned task identifier, which is used to instruct the first switch node to obtain the multicast data corresponding to the task identifier.

[0169] In a possible implementation, if the third control information includes the source address field in Table 4, the notification information may be a data read request that carries the storage address recorded in the source address field in the third control information. Optionally, the notification information may also include a task identifier.

[0170] S606. The first switching node connected to the multicast source receives the notification information, obtains the multicast data from the multicast source, and sends the multicast data to the second switching node.

[0171] After receiving the notification information, the first switching node connected to the multicast source obtains the multicast data from the multicast source. The method for the first switching node to obtain the multicast data from the multicast source can refer to the relevant description in S403 above, which will not be repeated here.

[0172] If the notification information includes a task identifier, the first switching node searches for the multicast task according to the task identifier, and then obtains the multicast data according to the multicast task and the method in S403. If the notification information is a data read request, and the data read request does not include a task identifier, the first switching node searches for the corresponding multicast task according to the storage address in the data read request, and then obtains the multicast data according to the multicast task and the method in S403.

[0173] S607. The second switching node sends multicast data to the first switching node.

[0174] After acquiring the multicast data, the second switching node sends the multicast data to the first switching node according to the multicast task established by the second switching node, that is, sends the multicast data to the first switching node that has sent the third control information. The method for the second switching node to send multicast data to the first switching node can refer to the above S404 and Figure 5 In the related description of the method of sending multicast data from the first switching node to at least one computing node, the description is omitted here. Figure 5 The same structure of the exchange nodes.

[0175] S608. The first switching node sends multicast data to the computing node.

[0176] The first switching node that receives the multicast data sent by the second switching node sends the received multicast data to the computing node based on the multicast task established by itself. The method for the first switching node to send multicast data to the computing node according to the multicast task can refer to the above S404 and Figure 5 The relevant description will not be repeated here.

[0177] It should be understood that the above Figure 2 and Figure 3 The distributed computing system in the embodiment is only an example, and the distributed computing system may also be of other architectures, for example, it may also include 3 or more layers of switching nodes, and the connection relationship between the switching nodes and the computing nodes and between the switching nodes of different layers may also be in other ways. The method of implementing multicast or broadcast in a distributed computing system of other architectures may refer to the method in the above embodiment, and will not be described in detail here.

[0178] For the above method embodiments, for the sake of simplicity, they are all described as a series of action combinations, but those skilled in the art should know that the present invention is not limited by the described order of actions. Secondly, those skilled in the art should also know that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required by the present invention. Other reasonable step combinations that can be thought of by those skilled in the art based on the above description also fall within the scope of protection of the present invention.

[0179] The present application also provides a data processing system, which includes the above-mentioned Figure 2 or Figure 3 The distributed computing system shown in FIG. Figure 2 or Figure 3 The corresponding introduction and related instructions are not repeated here. The operations performed by the computing nodes and the switching nodes in the distributed computing system can refer to the above Figures 4 to 6 The relevant introduction in the corresponding embodiment will not be repeated here.

[0180] The present application also provides a computing device, such as Figure 7 As shown, Figure 7 7 is a schematic diagram of a computing device provided in an embodiment of the present application. The computing device 700 includes a host 710, multiple computing nodes 720, a communication interface 730, and a memory 740, wherein the host 710, multiple computing nodes 720, the communication interface 730, and the memory 740 are interconnected via a bus 750, wherein:

[0181] The host 710 may be a CPU, and the computing node 720 may be a CPU, a GPU, an NPU, a TPU, or a dedicated AI processing chip. The host 710 is used to obtain topological information of the distributed computing system, etc., so that the computing node 720 can generate control information. For example, the topological information includes the number of computing nodes connected to each first switching node, etc. The operations performed by the computing node 720 can refer to the above Figure 4-Figure 6 The operations performed by the computing nodes in the corresponding embodiments are not described in detail here.

[0182] The communication interface 730 may be a wired interface or a wireless interface for communicating with other modules or devices. The wired interface may be an Ethernet interface, a local interconnect network (LIN), etc., and the wireless interface may be a cellular network interface or a wireless local area network interface.

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

[0184] The memory 740 may also be used to store program instructions and data, so that the host 710 calls the program instructions stored in the memory 740 to execute the operation steps of obtaining topology information. Figure 7 Show more or fewer components, or have different component configurations.

[0185] The bus 750 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus 750 may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 7 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.

[0186] The computing device 700 may further include the at least one switching chip 760. The operations performed by the switching chip 760 may refer to the operations performed by the first switching node or the second switching node in the above embodiment, which will not be described in detail herein.

[0187] Specifically, the specific implementation of various operations performed by the computing device 700 may refer to the specific operations performed by the distributed computing system in the above method embodiment, which will not be described in detail here.

[0188] The embodiment of the present application further provides a computer-readable storage medium, in which instructions are stored. When the instructions are executed, the method steps implemented by the computing node or the switching node in the above method embodiment can be implemented, which will not be repeated here.

[0189] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0190] The above embodiments can be implemented in whole or in part by software, hardware, firmware or any other combination thereof. When implemented by software, the above embodiments can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded or executed on a computer, the process or function described in the embodiment of the present invention is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer 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 instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. 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 or data center that contains one or more available media sets. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium, or a semiconductor medium. The semiconductor medium can be a solid-state hard disk.

[0191] The steps in the method of the embodiment of the present application can be adjusted in order, combined or deleted according to actual needs; the modules in the device of the embodiment of the present application can be divided, combined or deleted according to actual needs.

[0192] The embodiments of the present application are introduced in detail above. Specific examples are used in this article to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method and core idea of ​​the present application. At the same time, for general technical personnel in this field, according to the idea of ​​the present application, there will be changes in the specific implementation method and application scope. In summary, the content of this specification should not be understood as a limitation on the present application.

[0193] The above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the protection scope of the technical solutions of the embodiments of the present invention.

Claims

1. A data processing method, characterized in that: Applied to a distributed computing system, the distributed computing system comprises a plurality of computing nodes and at least one first switching node, each of the at least one first switching node is connected to some or all of the computing nodes in the plurality of computing nodes, wherein: The first switching node receives control information sent by at least one computing node, wherein each control information includes an indication field, and the indication field is used to indicate that the computing node sending the control information is a multicast source or a multicast destination; The first switching node establishes a multicast task based on the received control information, wherein the multicast task includes multicast destination information, and the multicast destination information is used to indicate a destination of multicast data sent by the multicast task; The first switching node obtains multicast data, and sends the multicast data to the at least one computing node according to the multicast task.

2. The method according to claim 1, characterized in that The first switching node is connected to a multicast source, and the control information sent by the multicast source also includes address information of the multicast data; the multicast task established by the first switching node includes the address information of the multicast data; wherein the multicast source is one of the multiple computing nodes; The first switching node acquires multicast data, including: The first switching node sends a data read request to the multicast source according to the address information; The first switching node receives a read response returned by the multicast source to obtain the multicast data, wherein the read response includes the multicast data, and the multicast data is part or all of the data to be multicast indicated by the control information sent by the multicast source.

3. The method according to claim 1, characterized in that The distributed computing system further includes a second switching node, the second switching node being connected to the first switching node, and the method further includes: The first switching node sends control information to the second switching node, where the control information sent by the first switching node includes a field for indicating whether the first switching node is connected to a multicast source and a field for indicating whether the first switching node is connected to a multicast destination; The control information sent by the first switching node indicates that the first switching node is connected to a multicast source, and the first switching node obtains multicast data, including: The first switching node receives notification information sent by the second switching node, where the notification information instructs the first switching node to obtain the multicast data from the multicast source; The first switching node sends a data read request to the multicast source according to the address information; The first switching node receives a read response returned by the multicast source to obtain the multicast data, wherein the read response includes the multicast data, and the multicast data is part or all of the data to be multicast indicated by the control information sent by the multicast source.

4. The method according to claim 1, characterized in that: The distributed computing system further includes a second switching node, the second switching node being connected to the first switching node, and the method further includes: The first switching node sends control information to the second switching node, where the control information sent by the first switching node includes a field for indicating whether the first switching node is connected to a multicast source and a field for indicating whether the first switching node is connected to a multicast destination; The control information sent by the first switching node indicates that the first switching node is not connected to a multicast source, and the first switching node obtains multicast data, including: The first switching node receives the multicast data sent by the second switching node, where the multicast data is sent to the second switching node by other first switching nodes connected to a multicast source.

5. The method according to any one of claims 2 to 4, characterized in that: The first switching node includes a processing unit and a plurality of ports, and the plurality of ports form a chain path.

6. The method according to claim 5, characterized in that The sending the multicast data to the at least one computing node according to the multicast task includes: The processing unit sends the multicast data to a first port of the chain path, the first port being one of the plurality of ports; The first port is a target port, and the first port copies the multicast data to a cache corresponding to the first port; wherein the target port is a port for sending the multicast data indicated by the multicast destination information; The first port sends the multicast data to a computing node connected to the first port.

7. The method according to claim 6, characterized in that The method further includes: the first port sending the multicast data to a next port of the chain path.

8. The method according to claim 5, characterized in that The sending the multicast data to the at least one computing node according to the multicast task includes: The processing unit transmits the multicast data to a first port of the chain path, the first port being one of the plurality of ports; The first port is not a target port, and the first port sends the multicast data to the next port of the chain path; wherein the target port is the port for sending the multicast data indicated by the multicast destination information.

9. The method according to claim 6 or 7, characterized in that: The multicast task also includes address information of each multicast destination; the method also includes: The processing unit generates a plurality of message headers according to the multicast task, wherein each message header includes address information of a multicast destination, and the address information of the multicast destinations in the message headers is different; The processing unit sends the multiple message headers to the target port through the cross unit xbar, wherein one target port corresponds to one message header; The first port sending the multicast data to a computing node connected to the first port includes: The first port obtains a target message according to the message header obtained by the first port and the multicast data, and sends the target message to a computing node connected to the first port.

10. The method according to claim 9, characterized in that The message header includes a first label, and the multicast data includes a second label; The processing unit sends the multicast data to the first port of the chain path, further comprising: When the first tag and the second tag are the same, the first port determines that the first port is the target port.

11. The method according to any one of claims 2 to 10, characterized in that: The control information sent by the multicast destination also includes first quantity information, where the first quantity information is used to indicate the number of multicast destinations connected to the first switching node; The first switching node sends a data read request to the multicast source according to the address information, including: After receiving the control information of the quantity indicated by the first quantity information, the first switching node sends the data reading request to the multicast source according to the address information of the multicast data.

12. The method according to claim 3, characterized in that The control information sent by the multicast destination further includes first quantity information, where the first quantity information is used to indicate the quantity of multicast destinations connected to the first switching node; The first switching node sending control information to the second switching node includes: After receiving the control information of the quantity indicated by the first quantity information, the first switching node sends control information to the second switching node.

13. The method according to claim 12, characterized in that The control information sent by the first switching node also includes second quantity information, and the second quantity information is used to indicate the number of first switching nodes connected to the second switching node; the notification information is sent by the second switching node to the first switching node connected to the multicast source after receiving the control information of the number indicated by the second quantity information.

14. The method according to any one of claims 1 to 13, characterized in that: The multicast destination information includes port information, which indicates a port at which the first switching node receives control information sent by a computing node and is used to indicate that the first switching node needs to send the multicast data through the port indicated by the port information.

15. The method according to any one of claims 1 to 14, characterized in that: The multicast source and the multicast destination are a central processing unit CPU, a graphics processor GPU, a neural network processor NPU, a tensor processor TPU or a dedicated artificial intelligence AI processing chip, and the switching node is a switching chip or a switching device with a switching function.

16. A switching node, characterized in that: The switching node comprises a processing unit and a plurality of ports, wherein the plurality of ports form a chain path, wherein: The processing unit is configured to send multicast data to a first port of the chain path, wherein the first port is one of the plurality of ports; The first port is used to copy the multicast data to a cache corresponding to the first port; wherein the first port belongs to a target port, and the target port includes one or more ports that need to send the multicast data; The first port is also used to send the multicast data to the computing node connected to the first port.

17. The switching node according to claim 16, characterized in that: The first port is also used to send the multicast data to the next port of the chain path.

18. The switching node according to claim 16 or 17, characterized in that: The switching node also includes a second port; The second port is used to send the multicast data to the next port of the second port in the chain path after acquiring the multicast data; wherein the second port does not belong to the target port.

19. The switching node according to any one of claims 16 to 18, characterized in that: The multicast task also includes address information of each multicast destination, and the multicast destination includes at least one first computing node; The processing unit is further used to generate a plurality of message headers according to the multicast task, wherein each message header includes address information of a multicast destination, and the address information in each message header is different; The processing unit is further configured to send the multiple message headers to the target port through the cross unit xbar, wherein one target port corresponds to one message header; The first port is specifically used for: A target message is obtained according to the message header obtained by the first port and the multicast data, and the target message is sent to a computing node connected to the first port.

20. The switching node according to claim 19, characterized in that: The message header includes a first label, and the multicast data includes a second label; The first port is further used to determine that the first port is a target port when the first tag and the second tag are the same.

21. The switching node according to any one of claims 16 to 20, characterized in that: The switching node is a switching chip or a switching device with a switching function, and the switching node has a transmission layer.

22. A distributed computing system, characterized in that: The data processing system includes multiple computing nodes and at least one first switching node, each of the at least one first switching node is connected to some or all of the multiple computing nodes, wherein each computing node is used to send control information to the first switching node, and each first switching node is used to execute the method described in any one of claims 1-15.

Citation Information

Cited By

  • Data processing method, switching node, and related system

    EP4716180A1

  • Data processing method, switching node, and related system

    WO2025002161A1