Distributed system, data transmission method and device and storage medium

By introducing multicast network and traffic alarm mechanisms into distributed systems, the problem of not streamlining the amount of synchronized data and time in distributed training networks is solved, and a more efficient model synchronization process is achieved.

CN119788687AInactive Publication Date: 2025-04-08CHANGSHA XINGRONG METADATA TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411593392.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-08
Publication Date
2025-04-08
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

In the process of synchronizing model data between different processing nodes in existing distributed training networks, the amount of data synchronized and the time spent on synchronization are not streamlined enough.

Method used

A distributed system is proposed, including multiple processing nodes, data incoming queues, data outgoing queues and multicast networks. The data packets that each data queued are copied through the multicast network and send the data packets to at least one data queue. In addition, the excessive traffic alarm mechanism for processing nodes and queues is used to streamline synchronous traffic and time.

Benefits of technology

Through the multicast network data packet replication and the traffic alarm mechanism of processing nodes, the amount and time of data during synchronization is significantly reduced, and the efficiency of distributed training is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119788687A_ABST
    Figure CN119788687A_ABST
Patent Text Reader

Abstract

The invention provides a distributed system, a data transmission method, equipment and a storage medium. The distributed system comprises a plurality of processing nodes, a plurality of data input queues, a plurality of data output queues and a multicast network, each data in-queue is used for caching a data packet sent by the corresponding processing node and sending the data packet to the multicast network; each data output queue is used for caching a data packet sent by the multicast network and sending the data packet copied from the multicast network to the corresponding processing node; and the multicast network is used for copying the data packet of each data in queue and synchronizing any data packet to at least one data out queue. According to the embodiment of the invention, the data packets of the plurality of data in queues are copied through the multicast network, the data packets are sent to the at least one data out queue, and an alarm mechanism for the processing nodes and the in-queue overproof traffic is added, so that highly credible simplification of intelligent calculation model training synchronization traffic and synchronization time can be realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of artificial intelligence technology, and specifically relates to a distributed system, a data transmission method, a device and a storage medium. Background Art

[0002] When the training model is relatively large or the amount of data in the training data set is relatively large, it will bring greater training pressure to the training equipment, causing the training process to be lengthy and affecting the application of the model.

[0003] In the face of the above situation, a distributed training network can generally be used to train the above training model, that is, to disperse the training tasks of the training model to different nodes of the distributed training network, and complete the training process by synchronizing model data between different processing nodes. Distributed training networks can significantly accelerate the training process of the model, and distributed training network splits the data and model of the training set and distributes them on different processing nodes, and completes the training process by synchronizing model data between different processing nodes, so that it can handle large-scale data sets and complex models that exceed the computing power and memory capacity limitations of a single processing node.

[0004] However, in the process of synchronizing model data between different processing nodes in the distributed training network in the related art, the amount of synchronized data and the time spent on synchronization are not streamlined enough. Summary of the invention

[0005] The present application proposes a distributed system, a data transmission method, a device and a storage medium, which can solve the technical problems in the related art that the amount of data required to be synchronized and the time spent on synchronization are not streamlined enough during the process of synchronizing model data between different processing nodes in a distributed training network.

[0006] The first embodiment of the present application provides a distributed system, including:

[0007] A plurality of processing nodes, a plurality of data in-queues, a plurality of data out-queues, and a multicast network, wherein the plurality of processing nodes correspond one-to-one to the plurality of data in-queues, and the plurality of processing nodes correspond one-to-one to the plurality of data out-queues;

[0008] Each data entry queue is used to cache data packets sent by the corresponding processing node, send the data packets to the multicast network, and determine the data volume corresponding to each processing node based on the processing node identifiers corresponding to the multiple data packets; if the data volume corresponding to the first processing node is greater than the first data volume threshold corresponding to the first processing node, generate a first prompt message; send the first prompt message to the first processing node; if the data volume corresponding to the first processing node is greater than the second data volume threshold of the processing node corresponding to the data entry queue, discard the data packets exceeding the second data volume threshold; generate a second prompt message; send the second prompt message to the processing node corresponding to the data entry queue, and the second prompt message is used to prompt the processing node corresponding to the data entry queue to resend the discarded data packets; the first processing node is any processing node among the processing nodes; the first prompt message is used to prompt the first processing node to slow down or stop sending data packets;

[0009] Each data out-queue is used to cache the data packets sent by the multicast network, send the data packets copied from the multicast network to the corresponding processing node, and determine the data volume of the data packets in the current queue; determine the data volume corresponding to each in-queue based on the in-queue identifiers corresponding to the multiple data packets; if the data volume of the data packets in the first in-queue is greater than the third data volume threshold of the first in-queue, generate a third prompt message; send the third prompt message to the first in-queue, and the third prompt message is used to prompt the data in-queue to slow down or stop sending data packets;

[0010] The multicast network is used to replicate each data packet in the data in-queue and synchronize any data packet to at least one data out-queue.

[0011] An embodiment of a second aspect of the present application provides a data transmission method, which is applied to a multicast network in the distributed system of the first aspect, and the method includes:

[0012] Copying a data packet of each data entry queue, wherein each data packet of each data entry queue is sent by a processing node corresponding to each data entry queue;

[0013] Any data packet is synchronized to at least one data out-queue, so that each of the data out-queues buffers the data packets sent by the multicast network, and sends the data packets copied from the multicast network to the corresponding processing node.

[0014] An embodiment of the third aspect of the present application provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the method described in the second aspect above.

[0015] An embodiment of the fourth aspect of the present application provides a computer-readable storage medium on which a computer program is stored, and the program is executed by a processor to implement the method described in the second aspect above.

[0016] The technical solution provided in the embodiments of the present application has at least the following technical effects or advantages:

[0017] The present application proposes a distributed system, a data transmission method, a device and a storage medium, including: multiple processing nodes, multiple data entry queues, multiple data exit queues and a multicast network, wherein the multiple processing nodes correspond one-to-one to the multiple data entry queues, and the multiple processing nodes correspond one-to-one to the multiple data exit queues; each data entry queue is used to cache the data packets sent by the corresponding processing node and send the data packets to the multicast network; each data exit queue is used to cache the data packets sent by the multicast network and send the data packets copied from the multicast network to the corresponding processing node; the multicast network is used to copy the data packets of each data entry queue and synchronize any data packet to at least one data exit queue. The embodiment of the present application copies the data packets of multiple data entry queues through the multicast network and sends the data packets to at least one data exit queue, and adds an alarm mechanism for the processing nodes and the excessive traffic of the entry queue, so as to achieve the high-reliability simplification of the synchronization traffic and synchronization time of the artificial intelligence model.

[0018] Additional aspects and advantages of the present application will be given in part in the description below, and in part will become apparent from the description below, or will be learned through the practice of the present application. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] By reading the detailed description of the preferred embodiment below, various other advantages and benefits will become clear to those of ordinary skill in the art. The accompanying drawings are only used for the purpose of illustrating the preferred embodiment and are not considered to be limitations of the present application. In addition, the same reference symbols are used to represent the same components throughout the accompanying drawings.

[0020] In the attached picture:

[0021] Figure 1 A schematic diagram of the structure of a distributed system provided by the related art is shown;

[0022] Figure 2 A schematic diagram of the structure of a distributed system provided by an embodiment of the present application is shown;

[0023] Figure 3 A flow chart of a data transmission method provided by an embodiment of the present application is shown;

[0024] Figure 4 A schematic diagram of the structure of an electronic device provided by an embodiment of the present application is shown;

[0025] Figure 5 A schematic diagram of a storage medium provided in an embodiment of the present application is shown. DETAILED DESCRIPTION

[0026] The exemplary embodiments of the present application will be described in more detail below with reference to the accompanying drawings. Although the exemplary embodiments of the present application are shown in the accompanying drawings, it should be understood that the present application can be implemented in various forms and should not be limited by the embodiments described herein. On the contrary, these embodiments are provided in order to enable a more thorough understanding of the present application and to fully convey the scope of the present application to those skilled in the art.

[0027] It should be noted that, unless otherwise specified, the technical terms or scientific terms used in this application should have the common meanings understood by technicians in the field to which this application belongs.

[0028] Based on the above background technology, the current distributed training system is as follows Figure 1 As shown in the figure, each server in an area will have multiple parallel processing nodes, and also includes a built-in high-bandwidth switch chip to interconnect the processing nodes in the same server. The industry generally calls this a scale-up network. In addition, there are multiple track switches in each area, and each track switch can connect the processing nodes of the same track in different servers. For example, the track 1 switch is used to connect the first processing node in each server, and the track 2 switch is used to connect the second processing node, and so on. These track switches form what the industry calls a scale-out network. If you need to build a larger training network, you can interconnect multiple areas through a cross-region switch cluster on the next level. The main function of the vertical expansion network plus the horizontal network is to synchronize the model iterations, number of layers, or tensor parameters in each processing node during the distributed intelligent computing training process.

[0029] The distributed training system can use a ring architecture to complete the synchronization of model parameters of each processing node during the distributed training process. In a horizontal expansion network with N processing nodes, the synchronization traffic required for each processing node in this ring architecture is equal to (N-1) times the parameter traffic, and the synchronization time is equal to (N-1)*the transmission time of sending 1 parameter traffic.

[0030] The distributed training system can also use a fully connected architecture to complete the synchronization of model parameters of each processing node during the distributed training process. Because the horizontal expansion network cannot support high-reliability full broadcast or multicast functions, each processing node can only choose to send the synchronization parameters to other processing nodes one by one in the form of unicast. Therefore, the synchronization traffic required by each processing node is also equal to (N-1) times the parameter volume synchronization, and the time required is also equal to (N-1)*the transmission time of sending 1 parameter traffic.

[0031] In order to maximize the optimization of the communication loss for distributed intelligent training, in an ideal architecture horizontal expansion network with N processing nodes for training system, the synchronization traffic required by each processing node should be equal to 1 times the parameter traffic, while the time required for synchronization is only the transmission time of sending 1 parameter traffic.

[0032] Therefore, in the process of synchronizing model parameter data in the distributed training system of the above architecture, the amount of data required to be synchronized and the synchronization time are not concise enough.

[0033] In order to solve the above technical problems, the present application proposes a distributed system, a data transmission method, a device and a storage medium, including: multiple processing nodes, multiple data entry queues, multiple data exit queues and a multicast network, multiple processing nodes correspond one-to-one to multiple data entry queues, and multiple processing nodes correspond one-to-one to multiple data exit queues; each data entry queue is used to cache data packets sent by the corresponding processing node and send the data packets to the multicast network; each data exit queue is used to cache data packets sent by the multicast network, and send data packets copied from the multicast network to the corresponding processing node; the multicast network is used to copy the data packets of each data entry queue and synchronize any data packet to at least one data exit queue. The embodiment of the present application copies the data packets of multiple data entry queues through the multicast network, and sends the data packets to at least one data exit queue, and adds an alarm mechanism for excessive traffic at the processing node, so as to achieve high-reliability simplification of synchronization traffic and synchronization time.

[0034] A distributed system proposed according to an embodiment of the present application is described below with reference to the accompanying drawings.

[0035] like Figure 2 As shown, the distributed system includes: multiple processing nodes, multiple data in-queues, multiple data out-queues and a multicast network, the multiple processing nodes correspond one-to-one to the multiple data in-queues, and the multiple processing nodes correspond one-to-one to the multiple data out-queues.

[0036] Each data in-queue is used to cache data packets sent by the corresponding processing node and send the data packets to the multicast network; each data out-queue is used to cache data packets sent by the multicast network and send data packets copied from the multicast network to the corresponding processing node; the multicast network is used to copy the data packets of each data in-queue and synchronize any data packet to at least one data out-queue.

[0037] Among them, the processing node can be a graphics processing unit (GPU), a central processing unit (CPU), a tensor processing unit (TPU), etc.

[0038] It is understandable that multiple processing nodes in a distributed system need to synchronize data to complete corresponding training tasks, and the data packets sent by the processing nodes may be data packets formed by segmenting the synchronized data.

[0039] In order to control congestion, a corresponding data entry queue may be established for each processing node to cache data packets sent by the processing node so as to gradually synchronize the data packets to other processing nodes.

[0040] Furthermore, in order to reduce the processing pressure of the processing node, a corresponding data queue can be established for each processing node to cache data packets sent by the multicast network, thereby avoiding the processing node from processing too much data at the same time and reducing the processing pressure of the processing node.

[0041] The multicast network can replicate each data packet in the data in-queue, which is the data packet at the front end of the data in-queue, and can further synchronize the data packet to the data out-queue of at least one processing node corresponding to the data packet.

[0042] The present application proposes a distributed system, including: multiple processing nodes, multiple data entry queues, multiple data exit queues and a multicast network, wherein the multiple processing nodes correspond one-to-one to the multiple data entry queues, and the multiple processing nodes correspond one-to-one to the multiple data exit queues; each data entry queue is used to cache data packets sent by the corresponding processing node and send the data packets to the multicast network; each data exit queue is used to cache data packets sent by the multicast network and send data packets copied from the multicast network to the corresponding processing node; the multicast network is used to copy data packets of each data entry queue and synchronize any data packet to at least one data exit queue. The embodiment of the present application copies data packets of multiple data entry queues through a multicast network and sends the data packets to at least one data exit queue, thereby streamlining synchronization traffic and synchronization time.

[0043] In some embodiments, in order to give priority to important or urgent tasks and ensure that critical tasks can be completed in a timely manner, each data enqueue may be provided with sub-data enqueues with different priorities.

[0044] Furthermore, each data in-queue is also used to determine the priorities of the multiple data packets sent by the corresponding processing node; based on the priorities of the multiple data packets, the multiple data packets are cached in the sub-data in-queues of the corresponding priorities.

[0045] In some embodiments, based on the same principle, each data out-queue includes sub-data out-queues with different priorities, including: each data out-queue is also used to determine the priorities corresponding to each of the multiple data packets sent by the multicast network; based on the priorities corresponding to each of the multiple data packets, the multiple data packets are cached in the sub-data out-queues of the corresponding priorities.

[0046] In some embodiments, the data packet includes a processing node identifier, including:

[0047] Each data out-queue is also used to determine the data volume corresponding to each in-queue based on the in-queue identifiers corresponding to the multiple data packets; if the data volume of the data packets in the first in-queue is greater than the third data volume threshold of the first in-queue, a third prompt message is generated; the third prompt message is sent to the first in-queue, and the third prompt message is used to prompt the data in-queue to slow down or stop sending data packets.

[0048] like Figure 2 As shown, the data out-queue will also be provided with a flow alarm mechanism for the in-queue, that is, each data out-queue will be provided with a data volume threshold value corresponding to each data in-queue, and each data out-queue will monitor the data volume corresponding to each data in-queue in real time. When it is determined that the data volume of a certain data in-queue is greater than the data volume threshold value corresponding to the data in-queue, a prompt message is generated, that is, a flow control warning is sent to the data in-queue, so as to slow down or stop the flow of the excessive data in-queue sent to the multicast network until the data volume in the out-queue of the processing node is lower than its corresponding data volume threshold value.

[0049] In some embodiments, the data enqueue is also used to determine the data volume corresponding to each processing node based on the processing node identifiers corresponding to the multiple data packets; if the data volume corresponding to the first processing node is greater than the first data volume threshold corresponding to the first processing node, a first prompt message is generated; the first prompt message is sent to the first processing node; if the data volume corresponding to the first processing node is greater than the second data volume threshold of the processing node corresponding to the data enqueue, the data packets exceeding the second data volume threshold are discarded; a second prompt message is generated; the second prompt message is sent to the processing node corresponding to the data enqueue, and the second prompt message is used to prompt the processing node corresponding to the data enqueue to resend the discarded data packets; the first processing node is any processing node among the processing nodes; the first prompt message is used to prompt the first processing node to slow down or stop sending data packets.

[0050] like Figure 2 As shown, the data entry queue will also be provided with a flow alarm mechanism and a packet loss notification mechanism for the processing node, that is, the data entry queue is also used to determine the data volume of the data packets in the current queue; if the data volume of the data packets in the current queue is greater than the corresponding first data volume threshold of the entry queue, the data entry queue will generate a first prompt message and send the first prompt message to the corresponding processing node, and the first prompt message is used to prompt the processing node to slow down or stop sending the data packets; if the data volume of the data packets in the current queue is greater than the corresponding second data volume threshold of the entry queue, the entry queue will discard the data packets exceeding the second data volume threshold, and generate a second prompt message; and send the second prompt message to the processing node corresponding to the data entry queue. The second prompt message is used to prompt the corresponding processing node of the data entry queue to resend the discarded data packets.

[0051] Among them, it can be understood that if the data out-queue determines that the data volume of a certain data in-queue is greater than the data volume threshold corresponding to the data in-queue, a prompt message is generated, that is, a flow control warning is sent to the data in-queue to slow down or stop the excessive data in-queue from sending data packets to the multicast network.

[0052] Since the data entry queue slows down or stops sending data packets to the multicast network, and the data entry queue continues to receive data packets sent by the corresponding processing node, the data volume of the data packets in the data queue will gradually exceed the first data volume threshold of the corresponding processing node, and the data entry queue will generate a first prompt message and send the first prompt message to the corresponding processing node. The first prompt message is used to prompt the processing node to slow down or stop sending data packets, but at this time due to network delays and other reasons, the corresponding processing node will still send data packets to the data entry queue, which will cause the data volume of the data packets in the front queue to be greater than the second data volume threshold of the corresponding entry queue. The entry queue will discard the data packets that exceed the second data volume threshold; and generate a second prompt message; and send the second prompt message to the processing node corresponding to the data entry queue. The second prompt message is used to prompt the corresponding processing node of the data entry queue to resend the discarded data packets.

[0053] Among them, the first data volume threshold, the second data volume threshold and the third data volume threshold can be flexibly set based on actual conditions, and the first data volume threshold is smaller than the second data volume threshold.

[0054] In some embodiments, the processing node is further configured to slow down or stop sending data packets when receiving the first prompt information.

[0055] In some embodiments, the processing node is further configured to resend the discarded data packet upon receiving the second prompt information.

[0056] In some embodiments, the data packet includes at least one destination processing node identifier;

[0057] The multicast network is specifically used to send the data packet to a data out queue of a processing node corresponding to at least one destination processing node identifier based on at least one destination processing node identifier included in the data packet.

[0058] It is understandable that a data packet sent by a processing node does not need to be synchronized to all other processing nodes in the system, and may only need to be synchronized to one or some of the processing nodes. Therefore, the multicast network is specifically used to send the data packet to the data out queue of the processing node corresponding to at least one destination processing node identifier based on at least one destination processing node identifier included in the data packet, thereby synchronizing the data packet to at least one processing node that needs to be synchronized.

[0059] In summary, in a normal working scenario, the traffic consumed by the synchronization process of each processing node is only the traffic of sending one parameter, and the time consumed is only the transmission time of sending one parameter;

[0060] In the scenario where the synchronization traffic exceeds the standard slightly, that is, when the data entering the queue determines that the data volume of a certain processing node is greater than the first data volume threshold corresponding to the processing node, the traffic consumed in the synchronization process of each processing node is still the traffic of sending one parameter, and the time consumed is the transmission time of sending one parameter + the time of traffic stopping or slow transmission;

[0061] In the scenario where the synchronization traffic seriously exceeds the limit, that is, when the data entry queue determines that the data volume of a certain processing node is greater than the second data volume threshold corresponding to the processing node, the traffic consumed in the synchronization process of each processing node is the traffic of sending 1 parameter + the traffic of packet loss and retransmission, and the time consumed is the transmission time of sending 1 parameter + the time of traffic stop, slow delivery and packet loss and retransmission.

[0062] The following is a description of a data transmission method proposed according to an embodiment of the present application in conjunction with the accompanying drawings. The method is applied to Figure 1 Multicast network in .

[0063] like Figure 3 As shown, the method comprises the following steps:

[0064] S301, copy each data packet entering the queue.

[0065] The data packet of each data entry queue is sent by the processing node corresponding to each data entry queue;

[0066] S302: Synchronize any data packet to at least one data out-queue, so that each data out-queue buffers data packets sent by the multicast network, and sends data packets copied from the multicast network to a corresponding processing node.

[0067] The multicast network can copy the data packet in each data in-queue, which is the data packet at the front end of the data in-queue, and can further synchronize the data packet to the data out-queue of at least one processing node corresponding to the data packet, so that each data out-queue caches the data packets sent by the multicast network and sends the data packets copied from the multicast network to the corresponding processing node.

[0068] The present application also provides an electronic device to perform the above data transmission method. Figure 4 It shows a schematic diagram of an electronic device provided by some embodiments of the present application. Figure 4 As shown, the electronic device 7 includes: a processor 700, a memory 701, a bus 702 and a communication interface 703, and the processor 700, the communication interface 703 and the memory 701 are connected via the bus 702; the memory 701 stores a computer program that can be run on the processor 700, and when the processor 700 runs the computer program, it executes the data transmission method provided in any of the aforementioned embodiments of the present application.

[0069] The memory 701 may include a high-speed random access memory (RAM), and may also include a non-volatile memory, such as at least one disk storage. The communication connection between the device network element and at least one other network element is realized through at least one communication interface 703 (which may be wired or wireless), and the Internet, wide area network, local area network, metropolitan area network, etc. may be used.

[0070] The bus 702 may be an ISA bus, a PCI bus, or an EISA bus, etc. The bus may be divided into an address bus, a data bus, a control bus, etc. The memory 701 is used to store programs, and the processor 700 executes the program after receiving an execution instruction. The data transmission method disclosed in any implementation of the aforementioned embodiment of the present application may be applied to the processor 700, or implemented by the processor 700.

[0071] The processor 700 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit or software instructions in the processor 700. The above processor 700 can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a readily available programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor to be executed, or the hardware and software modules in the decoding processor can be executed. The software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory 701, and the processor 700 reads the information in the memory 701 and completes the steps of the above method in combination with its hardware.

[0072] The electronic device provided in the embodiment of the present application and the data transmission method provided in the embodiment of the present application are based on the same inventive concept and have the same beneficial effects as the methods adopted, operated or implemented therein.

[0073] The present application also provides a computer-readable storage medium corresponding to the data transmission method provided in the above embodiment. Figure 5 The computer-readable storage medium shown is a CD 30 on which a computer program (ie, a program product) is stored. When the computer program is run by a processor, the data transmission method provided by any of the aforementioned embodiments will be executed.

[0074] It should be noted that examples of computer-readable storage media may also include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other optical or magnetic storage media, which are not listed here one by one.

[0075] The computer-readable storage medium provided in the above-mentioned embodiments of the present application and the data transmission method provided in the embodiments of the present application are based on the same inventive concept and have the same beneficial effects as the methods adopted, run or implemented by the application programs stored therein.

[0076] It should be noted that:

[0077] In the description provided herein, a large number of specific details are described. However, it is understood that the embodiments of the present application can be practiced without these specific details. In some instances, well-known structures and technologies are not shown in detail so as not to obscure the understanding of this description.

[0078] Similarly, it should be understood that in order to streamline the present application and help understand one or more of the various inventive aspects, in the above description of the exemplary embodiments of the present application, the various features of the present application are sometimes grouped together into a single embodiment, figure, or description thereof. However, the disclosed method should not be interpreted as reflecting the following schematic diagram: the claimed application requires more features than the features clearly stated in each claim. More specifically, as reflected in the claims below, the inventive aspects are less than all the features of the single embodiment disclosed above. Therefore, the claims following the specific embodiment are hereby expressly incorporated into the specific embodiment, wherein each claim itself serves as a separate embodiment of the present application.

[0079] In addition, those skilled in the art will appreciate that, although some embodiments herein include certain features included in other embodiments but not other features, the combination of features of different embodiments is meant to be within the scope of the present application and form different embodiments. For example, in the claims below, any one of the claimed embodiments may be used in any combination.

[0080] The above are only preferred specific implementations of the present application, but the protection scope of the present application is not limited thereto. Any changes or substitutions that can be easily thought of by a person skilled in the art within the technical scope disclosed in the present application should be included in the protection scope of the present application. Therefore, the protection scope of the present application shall be based on the protection scope of the claims.

Claims

1. A distributed system, characterized in that: include: A plurality of processing nodes, a plurality of data in-queues, a plurality of data out-queues, and a multicast network, wherein the plurality of processing nodes correspond one-to-one to the plurality of data in-queues, and the plurality of processing nodes correspond one-to-one to the plurality of data out-queues; Each data entry queue is used to cache data packets sent by a corresponding processing node, send the data packets to a multicast network, and determine the data volume corresponding to each processing node based on the processing node identifiers corresponding to each of the multiple data packets; if the data volume corresponding to a first processing node is greater than a first data volume threshold corresponding to the first processing node, generate a first prompt message; send the first prompt message to the first processing node; if the data volume corresponding to the first processing node is greater than a second data volume threshold of the processing node corresponding to the data entry queue, discard the data packets exceeding the second data volume threshold; Generate a second prompt message; send the second prompt message to the processing node corresponding to the data entry queue, the second prompt message is used to prompt the processing node corresponding to the data entry queue to resend the discarded data packet; the first processing node is any processing node among the processing nodes; The first prompt information is used to prompt the first processing node to slow down or stop sending data packets; Each data out-queue is used to cache the data packets sent by the multicast network, send the data packets copied from the multicast network to the corresponding processing node, and determine the data volume of the data packets in the current queue; determine the data volume corresponding to each in-queue based on the in-queue identifiers corresponding to the multiple data packets; if the data volume of the data packets in the first in-queue is greater than the third data volume threshold of the first in-queue, generate a third prompt message; send the third prompt message to the first in-queue, and the third prompt message is used to prompt the data in-queue to slow down or stop sending data packets; The multicast network is used to replicate each data packet in the data in-queue and synchronize any data packet to at least one data out-queue.

2. The system according to claim 1, characterized in that Each data entry queue is also used to determine the priorities corresponding to the multiple data packets sent by the corresponding processing node; Based on the priorities corresponding to the multiple data packets, the multiple data packets are cached in sub-data queues corresponding to the priorities.

3. The system according to claim 1, characterized in that Each of the data out-queues includes sub-data out-queues of different priorities, including: Each of the data out-queues is also used to determine the priorities corresponding to the multiple data packets sent by the multicast network; Based on the priorities corresponding to the multiple data packets, the multiple data packets are cached in the sub-data out-queues of the corresponding priorities.

4. The system according to claim 1, characterized in that The processing node is further configured to slow down or stop sending data packets when receiving the first prompt information.

5. The system according to claim 1, characterized in that The processing node is further configured to resend the discarded data packet upon receiving the second prompt information.

6. A data transmission method, characterized in that: A multicast network applied to the system according to any one of claims 1 to 5, the method comprising: Copying a data packet of each data entry queue, wherein each data packet of each data entry queue is sent by a processing node corresponding to each data entry queue; Any data packet is synchronized to at least one data out-queue, so that each of the data out-queues buffers the data packets sent by the multicast network, and sends the data packets copied from the multicast network to the corresponding processing node.

7. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: The processor executes the computer program to implement the method according to claim 6.

8. A computer-readable storage medium having a computer program stored thereon, characterized in that: The program is executed by a processor to implement the method according to claim 6.

Citation Information

Cited By

  • Flow processing method based on PCIE and Scale-up network architecture

    CN120811988A