Online computing data acquisition method and related device

By using dynamic routing control and multi-path forwarding, the problem of poor network flexibility caused by static path configuration in distributed computing is solved, and more efficient data processing and resource utilization are achieved.

CN120956653APending Publication Date: 2025-11-14HUAWEI TECH CO LTD
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202410591558.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-05-13
Publication Date
2025-11-14

AI Technical Summary

Technical Problem

In distributed computing scenarios, the static configuration of data forwarding paths between computing nodes in existing technologies leads to poor network flexibility. When the network changes, it needs to be reconfigured, which consumes a lot of effort and is prone to network congestion and rollback.

Method used

Dynamic routing control is adopted, and multi-path forwarding is achieved through the collaborative work between access layer switches and upper layer switches, reducing the number of backoffs and the probability of network congestion.

Benefits of technology

It improves network flexibility and stability, reduces network congestion and rollback frequency, and optimizes resource allocation and data processing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120956653A_ABST
    Figure CN120956653A_ABST
Patent Text Reader

Abstract

A data acquisition method for online computing and a related device are applied to the technical field of online computing, and according to the method, a computing device is replaced by an access layer switch to realize a multi-path forwarding capability, so that quick switching recovery when a network path fails is ensured, and the failure recovery time and the backspacing frequency are reduced. And meanwhile, dynamic mapping of paths and data storage addresses is realized by applying a relative index technology, and the flexibility and efficiency of data access are improved. The access layer switch intelligently records and analyzes network requests and data forwarding conditions, and the problem of data inconsistency is solved. The upper layer switch intelligently adjusts the data processing flow according to the data forwarding amount, and network resource utilization is optimized. By adopting the method, the stability and availability of a system related to online computing are improved, and an efficient, reliable and flexible data acquisition scheme is provided for online computing.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of online computing technology, and in particular to a data acquisition method and related apparatus for online computing. Background Technology

[0002] In distributed computing scenarios, multiple computing nodes communicate with each other to exchange data, thereby enabling the execution of the same computing task across multiple nodes. Furthermore, to improve the execution efficiency of computing tasks, the same on-network computing task can be distributed to non-computing nodes, i.e., forwarding devices, for execution. In other words, the forwarding device further performs computation or processing on the data while forwarding it between different computing nodes; this technology is known as on-network computing technology.

[0003] In related technologies, different computing nodes typically exchange data through one or more forwarding devices. In this scenario, the underlying forwarding device connected to the computing node processes the data sent by the computing node and then forwards the processed message using a path that is pre-configured statically by the computing node that sent the data. This ensures that different underlying forwarding devices forward processed data packets belonging to the same on-network computing to the same upper-layer forwarding device, so that the upper-layer forwarding device can continue to process different on-network computing data packets belonging to the same on-network computing, thus satisfying the path consistency characteristic of on-network computing technology.

[0004] In the above methods, when the network in a distributed computing scenario changes, the computing nodes need to be reconfigured statically, which requires a lot of effort. Therefore, this method of forwarding packets is not very flexible. Summary of the Invention

[0005] This application provides a data acquisition method and related apparatus for on-network computing, which transforms pre-configured static routes into dynamic route control, precisely controls the transmission path of data packets, and reduces the number of backoffs and the probability of network congestion.

[0006] In a first aspect, this application provides a data acquisition method for network computing, the method being applied to a first forwarding device, the method comprising: receiving first request information sent by a second forwarding device, wherein the first request information is used to request a data block at a first address, the first address being the address of the first forwarding device; sending second request information to at least one computing device according to the first request information, wherein the second request information is used to request a data block at a second address, the second address being the address of the computing device; receiving a data block sent by at least one computing device; processing the data block from at least one computing device to obtain a processed first data block; and sending the processed first data block to a third forwarding device.

[0007] In this embodiment, the first forwarding device can be a switch capable of sending, receiving, and processing data, and thus possessing certain computing capabilities, directly connected to a computing device; therefore, it is also called an access layer switch. The second forwarding device can be a switch connected to the access layer switch, capable of sending, receiving, and processing data, and possessing certain computing capabilities; therefore, it is also called an upper-layer switch. Upper-layer switches are typically not directly connected to computing devices. Exemplarily, the switch network composed of the first and second forwarding devices can be a leaf spine architecture, where the upper-layer switches are spine switches and the access layer switches are leaf switches. Spine switches can be high-port-density switches, while leaf switches, as the access layer, can provide network connections to computing devices such as terminals and servers, and simultaneously connect to spine switches.

[0008] Furthermore, the third forwarding device is a certain upper-layer switch. This means that the third forwarding device can be the upper-layer switch (second forwarding device) that sent the first request information, or it can be another upper-layer switch. If the third forwarding device is the upper-layer switch (second forwarding device) that sent the first request information, it means that the route has not been switched, and the first forwarding device sends the processed first data block to the second forwarding device that sent the first request information. If the third forwarding device is another upper-layer switch (not the second forwarding device that sent the first request information), it means that the communication connection between the first forwarding device (access layer switch) and the second forwarding device (upper-layer switch) may be under special circumstances such as network congestion or network disconnection, or the route has been switched for load balancing. The first forwarding device sends the processed first data block to another upper-layer switch, which is responsible for processing the first data block. This reduces the number of rollbacks due to network problems and achieves load balancing through multi-path forwarding, reducing the probability of network congestion.

[0009] In one possible implementation of the first aspect, the processed first data block is carried in a first message, which also includes data forwarding volume information to characterize the number of processed first data blocks contained in the first message. In this scenario, considering that the first forwarding device needs to send related identification or indication information in addition to sending the processed first data block to the second / third forwarding device, optionally, the first data block is stored in a first field of the message, and other fields in the message are used to add identification or indication information.

[0010] For example, the indication information is stored in the second field of the first message. The indication information includes data forwarding volume information. By adding data forwarding volume information to the message, the receiver can understand the forwarding status of the data, which helps to optimize subsequent data processing and resource allocation. Especially in scenarios where the message forwarding path may be switched, the upper-layer switch is unaware of the path switch. Through the data forwarding volume information, the upper-layer switch receiving the message can be aware of the status of the data message and know whether the message forwarding path has been switched. It also makes it easier for the upper-layer switch and the access layer switch to count the forwarding status of the data message. For example, if the third forwarding device is an upper-layer switch that did not send the first request information, after receiving the first message, it can determine by counting the forwarding volume information that the number of data blocks requested by the sent request information is inconsistent with the number of data blocks received, thereby sensing that the message forwarding path has been switched.

[0011] In yet another possible implementation of the first aspect, the first message further includes a third address of the computing device that sent the data block.

[0012] The first request message requests a data block at a first address, and the second request message requests a data block at a second address. This achieves partial isolation between the upper-layer switch and the computing device. This embodiment, by including the third address of the computing device sending the data block in the message, enables the upper-layer switch to clearly perceive the source of the data after receiving the message data. This facilitates the second forwarding device in processing the data block and distributing the data. Specifically, during downlink data transmission, the processed data block can be accurately distributed to the computing device that sent the data. This also enhances data traceability and security, helping to prevent data tampering and forgery. Optionally, this third address is stored in the third field of the first message.

[0013] In another possible implementation of the first aspect, the third forwarding device is different from the second forwarding device, and the method further includes: sending a second message to the second forwarding device, the second message including data forwarding volume information, the data forwarding volume information being used to indicate that the second message does not carry a data block.

[0014] Considering that during path switching, the first forwarding device processes the data block and sends the resulting first data block to the third forwarding device (not the second forwarding device that sent the first request information), the second forwarding device, which sent the first request information, is unaware of the path switch. Therefore, an empty data link will occur on this path. To address the discrepancy between the number of requested and returned data blocks on the original path between the first and second forwarding devices, after the first packet is sent to the third forwarding device, a data packet (the second packet) without a data block is sent to the second forwarding device. After the route switch, the first forwarding device forwards the first packet, originally belonging to the second forwarding device, to the third forwarding device. Then, by sending a packet containing data forwarding volume information, which indicates that the packet does not carry a data block, the second forwarding device can detect the route switch and adjust resources or take other measures in a timely manner, thus improving the system's responsiveness and flexibility.

[0015] In another possible implementation of the first aspect, the first forwarding device determines which path is missing data packets by determining the number of data blocks requested and returned by the request information on each path. Specifically, the first forwarding device has a first forwarding record table, which records the number of first data blocks requested by the first request information from the second forwarding device and the number of processed first data blocks sent to the second forwarding device. The method further includes determining a first difference between the number of processed first data blocks sent to the second forwarding device and the number of first data blocks requested by the first request information from the second forwarding device, wherein the number of second packets is the first difference.

[0016] The first forwarding record table records the number of data blocks requested and the number of first data blocks returned for each path. In this embodiment, when it is determined that there is a mismatch between the number of requested data blocks and the number of first data blocks sent in the path between the second forwarding device and the first forwarding device, it is determined that the data packets in that path have been forwarded to other paths. Accordingly, a second packet is returned to that path. It can be understood that if the number of requested data blocks differs from the number of sent data blocks by multiples, the corresponding number of second packets is returned.

[0017] This embodiment, by setting up a forwarding record table, enables the first forwarding device to record in real time the number of data request messages, the number of data blocks requested by the request messages, and the number of returned data packets forwarded, providing data support for optimizing resource allocation and adjusting data forwarding strategies.

[0018] Secondly, this application provides a data acquisition method for on-network computing, the method being applied to a second forwarding device, the method comprising: sending a first request message to a first forwarding device, wherein the first request message is used to request a data block at a first address, the first address being the address of the first forwarding device; and receiving a processed first data block sent by the first forwarding device, the processed first data block being a data block obtained by processing data blocks from at least one computing device.

[0019] Based on the above description of the second forwarding device, it can be an upper-layer switch connected to the access layer switch (first forwarding device) and possessing computing capabilities. At the start of network computing, after receiving the identifier indicating the start of network computing from the access layer switch, the second forwarding device sends a pull request (first request information) to the first forwarding device. In this embodiment, the pull request sent by the second forwarding device to the first forwarding device indexes the relative address (first address) of the first forwarding device. The first address is not equivalent to the second address (absolute storage address of the data). After processing the data block sent by the computing device, the first forwarding device stores the processed first data block at the first address. In a scenario where routing does not switch, the second forwarding device can receive the requested processed first data block. However, in a scenario where routing switches, the first forwarding device forwards the first data block stored at the first address to other upper-layer switches, and the second forwarding device cannot receive the requested processed first data block. Based on the above, the first forwarding device is enabled to implement multi-path routing switching, thereby reducing the number of backoffs and the probability of network congestion, without affecting the normal data flow in scenarios where routing does not switch.

[0020] In one possible implementation of the second aspect, after the second forwarding device receives the first message, the method further includes: processing the processed first data block to obtain a processed second data block.

[0021] The aforementioned processing includes operations such as splicing, aggregation, or splitting. In a multi-layered architecture, the second forwarding device is responsible for processing the final data block. After receiving the first data block belonging to the same on-network computing task, it processes the first data block to obtain the processed second data block. The processed second data block is then returned along the original path to the computing device that provided the data block to complete the on-network computing task.

[0022] In another possible implementation of the second aspect, the second forwarding device determines whether there is an empty data link by counting the number of first request messages sent to the first forwarding device and the number of first messages carrying first data blocks received. Specifically, after receiving the processed first data block sent by the first forwarding device, the method further includes: adjusting resources according to the relationship between a first quantity and a second quantity, wherein the first quantity is the number of first data blocks requested by the first request messages sent to the first forwarding device, the second quantity is the number of processed first data blocks received, and the resources include memory resources and / or computing resources.

[0023] Based on the number of data blocks requested and the number of data packets received, the second forwarding device can dynamically adjust resources to ensure effective resource utilization and improve system stability and reliability.

[0024] In another possible implementation of the second aspect, resources are adjusted according to the relationship between the first quantity and the second quantity. The method includes: if the first quantity is greater than the second quantity, releasing the first resource, which is a pre-planned resource used in the computational processing of the unreceived first data block.

[0025] In this scenario, if the first quantity is greater than the second quantity, it means that the number of data blocks requested by the second forwarding device to the first forwarding device is greater than the number of first data blocks received from the first forwarding device. This means that there are request messages that have not been responded to by the first forwarding device. After waiting for a preset time, it is determined that the route has been switched, and the first data block requested by itself is forwarded to other upper-layer switches. Therefore, the resources of the first data block are released to achieve dynamic resource adjustment and avoid resource waste.

[0026] In another possible implementation of the second aspect, adjusting resources according to the size relationship between the first quantity and the second quantity includes: when the first quantity is less than the second quantity, requesting a second resource, the second resource being used to perform computational processing on the additional first data block received.

[0027] In this scenario, if the first quantity is less than the second quantity, it means that due to the routing switch, the second forwarding device received the first data block requested by other upper-layer switches. Therefore, the second forwarding device requests the resources required for computing the first data block, such as computing resources and / or memory resources, in order to complete the on-network computing task.

[0028] In another possible implementation of the second aspect, the processed first data block is carried in a first message, and the first message also includes data forwarding volume information, which is used to characterize the number of processed first data blocks contained in the first message.

[0029] In another possible implementation of the second aspect, the method further includes: receiving a third message sent by a first forwarding device, the third message including data forwarding volume information, the data forwarding volume information being used to characterize the number of processed first data blocks contained in the third message; adjusting resources according to the data forwarding volume information in the third message, wherein the resources include memory resources and / or computing resources.

[0030] In one scenario, the third message includes a first data block requested by other upper-layer switches. In this case, the second forwarding device requests resources for the first data block. However, considering that the value of the data forwarding volume information carried in the message is the same as that of other normal requests and the data forwarding volume information carried in the reply messages, for example, the value of the data forwarding volume information is 1, the second forwarding device can determine whether there is an unexpected first data block based on the data forwarding volume information and the number of request messages sent in the scenario of sending multiple request messages, and then adjust the resources accordingly.

[0031] In another scenario, the third message is the second message, which belongs to the message data of the first data block not carrying the request of the second forwarding device. In this case, the second forwarding device determines that the message does not carry the requested first data block based on the data forwarding volume information in the third message, and then deletes the resources of the first data block to avoid resource waste.

[0032] In another possible implementation of the second aspect, adjusting computing resources based on data forwarding volume information includes:

[0033] If the value of the data forwarding volume information in the third message is zero, the first computing resource is released. The first computing resource is a pre-planned computing resource for processing the unreceived first data result.

[0034] In another possible implementation of the second aspect, the first message further includes a third address of the computing device that sent the data block.

[0035] In another possible implementation of the second aspect, sending a first request message to the first forwarding device includes:

[0036] Based on the total amount and granularity of aggregated data, a first request message is sent to the first forwarding device.

[0037] In this embodiment, before the second forwarding device sends the first request information, each second forwarding device knows its own aggregated data volume. Therefore, data segmentation is performed at the first forwarding device or computing device. For example, the starting base address of the upper-layer switch and the total aggregated data volume subDataLen for each path are determined on the access layer switch. Specifically, assuming that the number of next-hop multi-paths is N and the total data volume to be aggregated by the access layer switch / computing device is DataLen, when multi-path on-network computing is enabled, the access layer switch / computing device calculates the total data volume to be aggregated on each path, subDataLen = DataLen / N, to make the data volume on each path as similar as possible, thus meeting the load balancing requirements. Furthermore, since the total aggregated data volume is evenly distributed on each path, the workload undertaken by a single path is basically consistent, thereby improving the timeliness, accuracy, and effectiveness of data requests and reducing unnecessary data transmission and processing costs.

[0038] Thirdly, this application provides a data acquisition method for network computing, the method being applied to a computing device, the method comprising: receiving second request information sent by a first forwarding device, wherein the second request information is used to request a data block at a second address, the second address being an address of the computing device; sending a data block to the first forwarding device, wherein the destination address of the data block is a first address of the first forwarding device, the first forwarding device being connected to the computing device, and the data block being processed by the first forwarding device and then sent to a second forwarding device for further processing.

[0039] The computing device responds to the request of the first forwarding device by sending corresponding data blocks to participate in the on-network computing task. In the architecture provided in this application embodiment, on-network computing distributes computing tasks to the first and second forwarding devices, providing data support for on-network computing. In this application embodiment, the computing device is only responsible for interacting with the connected access layer switch, which can both meet the task requirements of on-network computing and enable the access layer switch to make routing decisions, reducing the number of data fallbacks.

[0040] Furthermore, through standardized data transmission and processing procedures, computing devices can communicate and collaborate efficiently with other devices, improving the overall system's data processing capabilities. This also helps reduce the maintenance costs of computing devices and increase their operational efficiency.

[0041] Fourthly, this application provides a data acquisition device for online computing, the device comprising a first communication unit and a first processing unit;

[0042] The first communication unit is used to receive a first request information sent by the second forwarding device, wherein the first request information is used to request a data block at a first address, and the first address is the address of the first forwarding device;

[0043] The first communication unit is further configured to send a second request message to at least one computing device according to the first request message, wherein the second request message is used to request a data block at a second address, and the second address is the address of the computing device;

[0044] The first communication unit is also used to receive data blocks sent by at least one computing device;

[0045] The first processing unit is used to process data blocks from at least one computing device to obtain a processed first data block;

[0046] The first communication unit is also used to send the processed first data block to the third forwarding device.

[0047] Fifthly, this application provides a data acquisition device for online computing, the device including a second communication unit;

[0048] The second communication unit is used to send a first request message to the first forwarding device, wherein the first request message is used to request a data block at a first address, and the first address is the address of the first forwarding device;

[0049] The second communication unit is also used to receive a processed first data block sent by the first forwarding device, wherein the processed first data block is a data block obtained by processing a data block from at least one computing device.

[0050] This device is used to implement the method described in the second aspect or any embodiment of the second aspect.

[0051] Sixthly, this application provides a data acquisition device for online computing, the device including a third communication unit;

[0052] The third communication unit is used to receive the second request information sent by the first forwarding device, wherein the second request information is used to request a data block at a second address, and the second address is the address of the computing device;

[0053] The third communication unit is also used to send a data block to the first forwarding device, wherein the destination address of the data block is the first address of the first forwarding device, the first forwarding device is connected to the computing device, and the data block is used to be processed by the first forwarding device and then sent to the second forwarding device for processing.

[0054] This device is used to implement the method described in the third aspect or any of the embodiments of the third aspect.

[0055] In a seventh aspect, embodiments of this application provide a first forwarding device, which may be a single device, a cluster of multiple devices, or a component within a single device. The first forwarding device includes at least one processor and a communication interface; the communication interface is used to receive and / or send data, and / or to provide input and / or output to the processor; the at least one processor is used to execute computer instructions to cause the first forwarding device to perform the method described in any of the preceding first aspects.

[0056] It should be noted that the processor included in the first forwarding device described in the seventh aspect above may be a processor specifically designed to execute these methods (referred to as a dedicated processor for easy distinction), or a processor that executes these methods by calling a computer program, such as a general-purpose processor. Optionally, at least one processor may include both dedicated processors and general-purpose processors.

[0057] Optionally, the aforementioned computer program can be stored in memory. For example, the memory can be a non-transitory memory, such as read-only memory (ROM), which can be integrated with the processor on the same device or disposed on different devices. This application does not limit the type of memory or the arrangement of the memory and processor.

[0058] In one possible implementation, the at least one memory is located outside the first forwarding device.

[0059] In yet another possible implementation, the at least one memory is located within the first forwarding device.

[0060] In another possible implementation, a portion of the memory of the at least one memory is located within the first forwarding device, and another portion of the memory is located outside the first forwarding device.

[0061] In this application, the processor and memory may also be integrated into a single device, that is, the processor and memory can be integrated together.

[0062] Eighthly, embodiments of this application provide a second forwarding device, which may be a single device, a cluster of multiple devices, or a component within a single device. The second forwarding device includes at least one processor and a communication interface; the communication interface is used to receive and / or transmit data, and / or to provide input and / or output to the processor; the at least one processor is used to execute computer instructions to cause the second forwarding device to perform the method described in any of the preceding second aspects.

[0063] It should be noted that the processor included in the second forwarding device described in the eighth aspect above can be a processor specifically designed to execute these methods (referred to as a dedicated processor for easy distinction), or a processor that executes these methods by calling a computer program, such as a general-purpose processor. Optionally, at least one processor may include both dedicated and general-purpose processors.

[0064] Optionally, the aforementioned computer program can be stored in memory. For example, the memory can be a non-transitory memory, such as read-only memory (ROM), which can be integrated with the processor on the same device or disposed on different devices. This application does not limit the type of memory or the arrangement of the memory and processor.

[0065] In one possible implementation, the at least one memory is located outside the second forwarding device.

[0066] In yet another possible implementation, the at least one memory is located within the second forwarding device.

[0067] In another possible implementation, a portion of the memory of the at least one memory is located within the second forwarding device, while another portion of the memory is located outside the second forwarding device.

[0068] In this application, the processor and memory may also be integrated into a single device, that is, the processor and memory can be integrated together.

[0069] Ninthly, embodiments of this application provide a computing device, which may be a single device, a cluster of multiple devices, or a component within a single device. The computing device includes at least one processor and a communication interface; the communication interface is used to receive and / or transmit data, and / or to provide input and / or output to the processor; the at least one processor is used to execute computer instructions to cause the computing device to perform the methods described in any of the preceding third aspects.

[0070] It should be noted that the processor included in the computing device described in the ninth aspect above may be a processor specifically designed to execute these methods (referred to as a dedicated processor for easy distinction), or a processor that executes these methods by calling a computer program, such as a general-purpose processor. Optionally, at least one processor may include both dedicated processors and general-purpose processors.

[0071] Optionally, the aforementioned computer program can be stored in memory. For example, the memory can be a non-transitory memory, such as read-only memory (ROM), which can be integrated with the processor on the same device or disposed on different devices. This application does not limit the type of memory or the arrangement of the memory and processor.

[0072] In one possible implementation, the at least one memory is located outside the computing device.

[0073] In yet another possible implementation, the at least one memory is located within the computing device.

[0074] In another possible implementation, a portion of the memory of the at least one memory is located within the computing device, while another portion of the memory is located outside the computing device.

[0075] In this application, the processor and memory may also be integrated into a single device, that is, the processor and memory can be integrated together.

[0076] The aforementioned computing device may be a graphics processing unit (GPU), an eXtensible processing unit (XPU), a neural network processing unit (NPU), a tensor processing unit (TPU), or a dedicated AI processing chip, etc.; the aforementioned first forwarding device and second forwarding device may be a switching chip or a switching device with switching function.

[0077] In a tenth aspect, embodiments of this application provide a computer-readable storage medium storing instructions that, when executed by a computing device (or a cluster of computing devices), cause the computing device (or cluster of computing devices) to implement the methods described in any of the first, second, or third aspects above.

[0078] In the eleventh aspect, this application provides a computer program product, which includes computer instructions that, when executed by a computing device (or a cluster of computing devices), implement the methods described in any of the first, second, or third aspects above.

[0079] Optionally, the computer program product can be a software installation package or an image file. When the aforementioned method is required, the computer program product can be obtained and executed on a computing device.

[0080] In a twelfth aspect, this application provides a chip comprising: a processor coupled to a memory for storing a program or instructions, wherein when the program or instructions are executed by the processor, a first forwarding device performs the method described in any of the preceding first aspects, and / or a second forwarding device performs the method described in any of the preceding second aspects, and / or a computing device performs the method described in any of the preceding third aspects.

[0081] In a thirteenth aspect, this application provides a distributed computing system, which includes at least one computing device, one or more first forwarding devices, and one or more second forwarding devices. The at least one computing device is connected to at least one first forwarding device, each first forwarding device is connected to one or more second forwarding devices, each first forwarding device is used to perform the method described in any of the first aspects, each second forwarding device is used to perform the method described in any of the second aspects, and each computing device is used to perform the method described in any of the third aspects.

[0082] The beneficial effects of the technical solutions provided in aspects four to thirteen of this application can be referred to the beneficial effects of the technical solutions in aspects one, two or three, and will not be repeated here. Attached Figure Description

[0083] Figure 1a This is an example diagram of a single-layer aggregation in an aggregation scenario;

[0084] Figure 1b This is an example diagram of a two-layer aggregation in an aggregation scenario;

[0085] Figure 2 This is a schematic diagram of the architecture of a distributed computing system provided in an embodiment of this application;

[0086] Figure 3 This is a flowchart of a data acquisition method for online computing provided in an embodiment of this application;

[0087] Figure 4 A schematic diagram of the address mapping of an index data block of a second forwarding device provided in an embodiment of this application;

[0088] Figure 5 A schematic diagram illustrating the process of a second forwarding device performing an on-network computing task, provided in an embodiment of this application;

[0089] Figure 6This is a schematic diagram of the structure of a data acquisition device for online computing provided in an embodiment of this application;

[0090] Figure 7 A schematic diagram of the structure of another data acquisition device for online computing provided in this application embodiment;

[0091] Figure 8 A schematic diagram of the structure of another data acquisition device for online computing provided in this application embodiment;

[0092] Figure 9 This is a schematic diagram of the structure of a first forwarding device provided in an embodiment of this application;

[0093] Figure 10 This is a schematic diagram of the structure of a second forwarding device provided in an embodiment of this application;

[0094] Figure 11 This is a schematic diagram of the structure of a computing device provided in an embodiment of this application. Detailed Implementation

[0095] Currently, an increasing number of network applications rely on large-scale computing, such as artificial intelligence, the Internet of Things, and cloud computing. To achieve large-scale computing, distributed computing can be employed, using multiple nodes to collaboratively compute, providing high-performance computing for applications. However, because distributed computing involves multiple computing devices, network transmission becomes a performance bottleneck when distributed applications involve large amounts of data transmission.

[0096] Aggregate communication is the most important communication method in distributed deep learning training, and it is one of the ways to synchronize data during training. It mainly includes operations such as aggregation / global reduction (Allreduce), barriers, and broadcasts. Because these aggregation communication operations involve the entire system, they often have a significant impact on the parallel efficiency of the application.

[0097] On-the-net computing can significantly reduce aggregation communication time and greatly improve the speed of distributed deep learning training. The following explanation of on-the-net computing techniques uses aggregation communication operations as an example; it should be understood that this is only one example and is equally applicable to other on-the-net computing operations. In traditional software-based aggregation communication operations, the computing device is blocked until the operation is completed after initiating the aggregation communication operation. This makes it difficult to achieve overlap between computation and communication, resulting in a waste of computing resources; at the same time, as the amount of communication data increases, the computational burden on the computing device in aggregation communication operations becomes increasingly heavy. Compared to software implementations, on-the-net computing completely offloads aggregation operations to the forwarding device (network interface card or switch), which further accelerates the execution speed of aggregation operations, changes the existing aggregation form, and effectively shortens training time.

[0098] On-the-Network computing (OTN) technology offloads some computational tasks to forwarding devices within the network, such as switches with computing capabilities. Since some computation is performed by the forwarding devices, the load on the central processing unit (CPU) of the computing device is reduced. The following explanation uses aggregation computing as an example of this offloaded computation task. OTN technology enables aggregation computing by having the forwarding devices compress multiple data streams from different computing devices into a single stream, thus saving network bandwidth and accelerating data transmission time. For example, high-performance computing (HPC) tasks involve data aggregation across multiple computing devices, and AI training also requires parameter aggregation across multiple computing devices. Regardless of the type of task, OTN technology can reduce task completion time.

[0099] Before the introduction of on-network computing in communication systems, aggregation tasks were performed by individual computing devices within the system. With the introduction of on-network computing, a forwarding device with computing capabilities is added. This forwarding device aggregates the data sent by the participating computing devices, generates an aggregation result, and sends the result back to each computing device. For example, at the start of the aggregation operation, each participating computing device has its own copy of the data; at the end of the aggregation operation, each node receives a result, which is obtained by processing the data that all nodes initially possessed. The execution process of aggregation tasks differs across architectures. The following two examples illustrate on-network computing technology and its specific implementation process.

[0100] Example 1, see below Figure 1a As shown, Figure 1a This is an example diagram of a single-layer aggregation in an aggregation scenario. Single-layer aggregation means aggregation is performed through one type of forwarding device. It can be understood that a single-layer aggregation only includes forwarding device 0 for performing aggregation calculations and multiple computing devices. Figure 1a In the above, it is assumed that computing devices 1 to 4 participate in aggregation; computing device 1 sends its data A0 to forwarding device 0, computing device 2 sends its data A1 to forwarding device 0, computing device 3 sends its data A2 to forwarding device 0, and computing device 4 sends its data A3 to forwarding device 0; forwarding device 0 aggregates data A0 to data A3, generates aggregation results, and then sends the aggregation results to computing devices 1 to 4 respectively.

[0101] Example 2, see Figure 1b As shown, Figure 1bThis is an example diagram of two-layer aggregation in an aggregation scenario. Two-layer aggregation involves aggregation through two types of forwarding devices, which can be divided into first forwarding devices and second forwarding devices. The first forwarding device can be a switch that can directly connect to computing devices, send and receive data, process data, and has a certain computing capability; therefore, it can also be called an access layer switch. The second forwarding device can be a switch connected to the access layer switch, which can also send and receive data, process data, and has a certain computing capability; therefore, it can also be called an upper-layer switch. Upper-layer switches are usually not directly connected to computing devices. For example, the switch network composed of the first and second forwarding devices in two-layer aggregation is a leaf spine architecture, where the upper-layer switches are spine switches and the access layer switches are leaf switches. Spine switches can be high-port-density switches, while leaf switches, as the access layer, can provide network connections to computing devices such as terminals and servers, and also connect to spine switches. Figure 1b In this scenario, computing devices 1 and 2, connected to the first forwarding device 1, and computing devices 5 and 6, connected to the first forwarding device 2, participate in aggregation. Computing device 1 sends its data block 1 to the first forwarding device 1, and computing device 2 sends its data block 2 to the first forwarding device 1. The first forwarding device 1 aggregates data blocks 1 and 2 to generate a first data block 1, and sends the first data block 1 to the second forwarding device. Computing device 5 sends its data block 5 to the first forwarding device 2, and computing device 6 sends its data block 6 to the first forwarding device 2. The first forwarding device 2 aggregates data blocks 5 and 6 to generate a first data block 2, and sends the first data block 2 to the second forwarding device. When the second forwarding device receives the first data block 1 and the first data block 2, it aggregates the first data block 1 and the first data block 2 to generate a second data block, and sends the second data block to computing devices 1 and 2 through the first forwarding device 1, and then to computing devices 5 and 6 through the first forwarding device 2.

[0102] Furthermore, aggregation can be limited to single-layer or two-layer aggregation, and can also involve more than two layers. In multi-layer aggregation, the second forwarding device can be connected to the computing device, the first forwarding device, or other second forwarding devices; the first forwarding device connects the second forwarding devices and the computing device. It is understood that, in the specific aggregation process, the first forwarding device still sends its aggregated first data block to the second forwarding device, which then completes the aggregation to obtain the second data block, which is then sent to the first forwarding device and / or the computing device.

[0103] Regardless of whether it's a single-layer, two-layer, or multi-layer aggregation, during the execution of business operations, when data aggregation is required, each computing device sends control information to the connected first forwarding device. This control information instructs the first forwarding device to begin on-network computing tasks and indexes the data blocks used for these tasks. In a single-layer aggregation scenario, after receiving the control information from the computing device, the first forwarding device sends a request to the computing device to index the data stored within it for on-network computing. In a two-layer aggregation scenario, the first forwarding device forwards the control information to the connected second forwarding device. Upon receiving a response from the second forwarding device indicating that on-network computing is possible, the first forwarding device forwards the response to the computing device, clarifying that both devices are involved in the on-network computing task. The computing device then sends corresponding control information from the first forwarding device to the second forwarding device, prompting the second forwarding device to issue a request and execute the on-network computing task. Based on the above, it can be seen that routing decisions during on-network computing are completed on the computing device side. That is, at the start of the on-network computing task, the data transmission path is determined through one or more control information, constituting deterministic multipathing.

[0104] However, deterministic multipathing is not flexible enough in the event of unforeseen circumstances, especially when data is transmitted between the first and second forwarding devices. If a network link fails, the data can only be backed up to the computing device for processing, and fault repair based on network multipathing is not possible. This also increases the complexity of data processing logic in on-network computing. Furthermore, because the computing device is not directly connected to the upper-layer switch (second forwarding device) in the multi-layer aggregation architecture, there is no global task information, so load balancing among the forwarding devices cannot be guaranteed.

[0105] Based on the problems caused by setting routing decisions on the computing device side in the above-mentioned network computing, this application provides a data acquisition method for network computing. For ease of subsequent understanding, the overall concept of this application embodiment will be explained first.

[0106] (1) The access layer switch (first forwarding device) enables the multi-path forwarding capability of the access layer switch in pull mode by remapping the path and data storage address. When a network path fails, the access layer switch (first forwarding device) can perform path switching to achieve fault recovery and reduce the number of backoffs. The access layer switch can achieve load balancing through multi-path forwarding and reduce the probability of network congestion.

[0107] (2) The request information sent by the upper-layer switch (second forwarding device) requests data from an address that is the data memory address exposed by the access layer switch, not the absolute storage address of the data stored by the computing device. By using relative indexing technology, the access layer switch is enabled to remap the relationship between the path and the absolute storage address of the data.

[0108] (3) The access layer switch detects empty data links by recording the number of received and sent request messages, the corresponding upper-layer switch information, and the number of data blocks sent. It then replies with empty data packets to ensure that the number of packets / data blocks on the link is equal to the number of requested data blocks. This solves the problem of discrepancies between the number of requested data blocks and the number of returned data blocks on the original path after data blocks are forwarded to a new path.

[0109] (4) The upper-layer switch determines the next data processing flow (e.g., normal aggregation, aggregation for requesting new resources, and non-aggregation for deleting resources) by using the data forwarding volume information sent along with the first data block. This resolves the issue of discrepancies between the number of data blocks requested and the number of data blocks returned on the new path after the first data block is forwarded to the new path.

[0110] The system architecture involved in the embodiments of this application will be explained below.

[0111] A distributed computing system enabling on-network computing may include at least one computing device, one or more first forwarding devices, and one or more second forwarding devices. The at least one computing device is connected to at least one first forwarding device, and each first forwarding device is connected to one or more second forwarding devices. See details below. Figure 2 , Figure 2 This is a schematic diagram of the architecture of a distributed computing system provided in an embodiment of this application.

[0112] like Figure 2 As shown, this distributed computing system typically includes six computing devices, a first-layer forwarding network, and a second-layer forwarding network. Among them, Figure 2 The six computing devices were labeled w1 to w6. Additionally, as... Figure 2 As shown, the first-layer forwarding network example includes two forwarding devices, labeled L1 and L2 respectively. These two forwarding devices can be used as access layer devices in this system architecture. The second-layer forwarding network example includes two forwarding devices, labeled S1 and S2 respectively. These two forwarding devices can be used as upper layer devices in this system architecture.

[0113] The forwarding device involved in this application has a certain computing capability and can share the computing load of the network system. The forwarding device can be various types of switches (e.g., rack switches), switching chips, other switching equipment, various types of routers, nodes integrating host channel adapters (HCAs), smart network interface cards (NICs), distributed processing unit (DPU) cards, or other network devices, or one of the devices within the aforementioned network devices. For example, the first forwarding device and / or the second forwarding device can be a programmable switch. Programmable switches are the underlying forwarding devices in the entire network, typically deployed in data center networks, responsible for forwarding traffic throughout the network, and can be reconfigured according to specific application scenarios. Based on the characteristics of programmable switches, in this application, the programmable switch can be configured internally to implement processing logic such as receiving / sending request information and data blocks, performing on-network computing-related processing on the data blocks, switching data transmission paths, and determining empty data links to meet data consistency requirements.

[0114] The internal processing logic of a programmable switch is written in P4Lang, a domain-specific language used to program the packet forwarding pipeline of data plane devices. P4Lang can be used to program switches based on Protocol Independent Switching Architecture (PISA). In this architecture, packet formats and packet processing behaviors can be defined through a series of matching operation tables. These tables are allocated to different processing stages in the forwarding pipeline based on hardware resources. For example, the matching operation tables include a first forwarding record table that records the number of first data blocks requested by a first request information from a second forwarding device, and the number of processed first data blocks sent to the second forwarding device.

[0115] The names of various relay devices are used for illustrative purposes and do not constitute a limitation of this application.

[0116] The computing device involved in this application, in a network system, at least has the ability to send and receive data. The computing device can be a personal computer, a PC, or other computing device, or a server, such as an edge server, or a server cluster. Furthermore, the aforementioned computing device can also be a Graphics Processing Unit (GPU), an eXtensible Processing Unit (XPU), a Neural Network Processing Unit (NPU), a Tensor Processing Unit (TPU), or a dedicated AI processing chip, etc.

[0117] It's important to note that on-grid computing technology can be deeply integrated with in-vehicle computing platforms, roadside computing devices, and edge computing clouds to form a multi-level hybrid distributed computing system. This helps compress data traffic, shorten communication latency, and improve real-time processing. In the vehicle-to-everything (V2X) scenario, machine learning and deep learning algorithms can achieve functions such as environmental perception, precise positioning, decision-making and planning, and control and execution. These algorithms need to process large amounts of real-time data, including image and signal information from in-vehicle sensors (such as LiDAR, cameras, ultrasonic sensors, and millimeter-wave radar), enabling vehicles to perform basic functions such as lane keeping, automatic braking, and pedestrian detection. Furthermore, in complex road environments, vehicles need to make immediate judgments and avoidance maneuvers for unexpected situations, placing extremely high demands on the high degree of coordination between people, vehicles, roads, networks, and the cloud. In this scenario, computing devices can also be in-vehicle equipment, such as in-vehicle chips, to utilize on-grid computing for data processing and aggregation, reducing transmission load, simplifying cloud processing workflows, lowering latency, and avoiding potential risks caused by network transmission delays.

[0118] It should be understood that the above combination Figure 2 The described topology is merely an example of the distributed computing system topology provided in this application and should not be construed as a specific limitation. The distributed computing system can also have other topologies. The computing devices and forwarding devices in the above-described distributed computing system can belong to different devices, for example, the various devices in a distributed network architecture can also belong to the same device, such as a chip system, where the aforementioned devices are installed in a chip-controlled device. For example, the computing devices and forwarding devices mentioned above both belong to a supercomputer.

[0119] Furthermore, this application embodiment does not limit the number of layers in the forwarding device. Figure 2 This example uses a two-layer forwarding network. The embodiments of this application do not limit the number of forwarding nodes or computing devices included in each layer of the forwarding network. Figure 2This example illustrates the concept of a forwarding network with two forwarding devices per layer. Correspondingly, the execution logic of on-network computation differs depending on the number of layers in the forwarding devices.

[0120] based on Figure 2 The distributed computing system shown below provides an explanation of a data acquisition method for online computing based on an embodiment of this application.

[0121] Figure 3 This is a flowchart illustrating a data acquisition method for online computing provided in an embodiment of this application. Figure 3 As shown, the method includes the following steps S301 to S308.

[0122] Step S301: The second forwarding device sends a first request message to the first forwarding device.

[0123] The first relay device can be, for example, a... Figure 2 The system architecture shown includes L1 or L2. The second forwarding device can, for example, be L1 or L2. Figure 2 In the system architecture shown, S1 or S2 will be used in subsequent sections for different forwarding devices. Figure 2 The markings on the relay devices distinguish different relay devices.

[0124] Furthermore, the method provided in this application embodiment is adapted to the pull mode in network computing. For the push mode in network computing, the forwarding device can forward messages or data in the normal forwarding manner. If this method is to be applied in the push mode, the execution logic of the method needs to be adapted, which differs to some extent from the method provided in this application embodiment.

[0125] For example, pull mode is a message passing pattern where the client actively pulls data from the server, rather than the server pushing messages to the client. That is, the second forwarding device actively pulls data from the first forwarding device, and the first forwarding device actively pulls data from the computing device. Push mode is a message passing pattern in a message queue system where messages are actively pushed to the client by the server, without the client actively requesting the message, but rather waiting for it to arrive. It can be understood that in the push mode of network computing, the second forwarding device does not need to send a first request message to the first forwarding device, but instead waits for the first forwarding device to push data.

[0126] In this embodiment of the application, the first request information is used to request a data block at a first address, where the first address is the address of the first forwarding device.

[0127] The first address can be either a storage address or an IP address of the first forwarding device. If the first address is a storage address, it is the address actively exposed by the first forwarding device for the second forwarding device. The first address exposed by the first forwarding device for different second forwarding devices is different. For example, the first forwarding device includes multiple storage spaces, namely a first storage space and a second storage space. The first storage space is used to store the data block requested by the second forwarding device S1, and the second storage space is used to store the data block requested by the second forwarding device S2. See [link to relevant documentation] for details. Figure 4 , Figure 4 This is a schematic diagram of the address mapping of an index data block of a second forwarding device provided in an embodiment of this application.

[0128] exist Figure 4 In the process, the second forwarding device S1 sends a first request message 1 to request the data block stored in the first storage space in the first forwarding device, and the second forwarding device S2 sends a first request message 2 to request the data block stored in the second storage space in the first forwarding device. However, the process is still in the data uplink stage, and the first and second storage spaces do not yet contain the data block required by the second forwarding device.

[0129] The first forwarding device sends request information to computing devices w1, w2, w5, and w6 to request the data block requested by the second forwarding device. After receiving the data block, the first forwarding device stores it in the corresponding storage space, or processes the data block and then stores it in the corresponding storage space.

[0130] In one optional implementation, to improve data transmission reliability, the first request information can be a message from Remote Direct Memory Access over Converged Ethernet (RoCE). That is, RoCE is used to transmit on-network computation message information within the network.

[0131] RoCE is a Remote Direct Memory Access (RDMA) protocol based on converged Ethernet. RoCE allows remote hosts to directly access each other's memory over a network. The following example uses RoCEv2 (RoCE version 2) as an example to illustrate RoCE-based message delivery. RoCEv2 is a network layer protocol; RoCEv2 messages (i.e., RoCEv2 packets) carry routing information in their headers, allowing a second forwarding device to forward them. Therefore, RoCEv2 is widely used in distributed computing applications (such as HPC and AI applications). The request information provided in this embodiment can, for example, be a RoCEv2 message.

[0132] To facilitate data traceability, for the continuous aggregation process in a single online computing task, the first forwarding device stores all data blocks requested by the second forwarding device S1 in the first storage space. Of course, all the data blocks are not stored directly in the first storage space all at once, but are continuously added to the first storage space by the second forwarding device S1 continuously sending the first request information.

[0133] To improve the convenience of data transmission and avoid the second forwarding device indexing duplicate data, the first request information includes an address offset. This address offset is used to characterize the degree of offset of the first request information in a specific memory address. The initial address offset is 0. It can be understood that in the scenario where the second forwarding device sends the first request information to the first forwarding device for the first time, the first request information indexes the starting address in the first storage space. In subsequent transmissions of the first request information, the offset carried increases continuously. For example, each time the size of a data block is increased. For instance, if the size of a data block is 4kb, when the second forwarding device sends the first request information to the first forwarding device for the second time, the address offset carried is 0+4kb, thereby avoiding duplicate forwarding of data.

[0134] When the first address is an IP address, the second forwarding device maintains a communication connection with the first forwarding device through the first address to ensure the accuracy of information and data transmission.

[0135] In one optional implementation, the data block may be data generated by the first forwarding device itself, data received by the first forwarding device, or data received and processed by the first forwarding device. For example, the data block requested by the first request information is a data block sent by the computing device to the first forwarding device and processed by the first forwarding device.

[0136] In an optional implementation, to ensure load balancing, before the second forwarding device sends the first request information, each second forwarding device knows the total amount of data it needs to aggregate in this on-network computing task. When sending the first request information, the second forwarding device sends the first request information to the first forwarding device based on the total amount of aggregated data and the data granularity. In this embodiment, before the second forwarding device sends the first request information, each second forwarding device knows its own aggregated data volume. Therefore, data segmentation is performed at the first forwarding device or computing device. For example, assuming that the number of next-hop multi-paths of the second forwarding device is N, and the total amount of data that needs to be aggregated in this on-network computing task is DataLen, when multi-path on-network computing is enabled, the first forwarding device / computing device / second forwarding device calculates the total amount of data to be aggregated on each path, subDataLen = DataLen / N. When requesting or sending data, the amount of data on each path is made as similar as possible to meet the load balancing requirements. Furthermore, since the total amount of aggregated data is evenly distributed on each path, the workload of a single path is basically consistent, thus improving the timeliness, accuracy, and effectiveness of data requests and reducing unnecessary data transmission and processing costs.

[0137] In one optional implementation, before the second forwarding device sends the first request information, the computing device sends a notification message to the first forwarding device and a notification message from the first forwarding device to the second forwarding device, so that the forwarding device can be aware of the total amount of data it needs to aggregate in this on-network computing task. The notification message includes a communication task ID and a first data length; wherein the first data length is used to indicate the length of data read by the first forwarding device this time.

[0138] In an optional implementation, to improve the perception capability of the second forwarding device in a route switching scenario, the second forwarding device is equipped with a second forwarding record table. This second forwarding record table is used to record the number of first request messages on each path, the number of data blocks requested by the first request messages, the number of data blocks returned by the first request messages, and the address offset corresponding to each request message. The second forwarding device can determine whether a route switching has occurred through the data recorded in the second forwarding record table. The relevant details will be explained in detail in subsequent step S307, and will not be elaborated here.

[0139] In practical applications, when the network computing task begins, the second forwarding device updates the information in the second forwarding record table. For example, when each first request message is sent, the second forwarding record table updates the relevant entries for the number of first request messages on each path, the number of data blocks requested by the first request message, and the address offset.

[0140] In this embodiment, the path refers to the path between the second forwarding device and the first forwarding device. If the second forwarding device is connected to two first forwarding devices, the second forwarding record table records the relevant information on these two paths.

[0141] It should be noted that the method provided in the embodiments of this application is applicable to Figure 2 The diagram illustrates a two-layer aggregation architecture. However, the execution logic of this method adapts to different system architectures. In another embodiment, a three-layer aggregation architecture is used, meaning that in addition to the first and second forwarding devices, there is a third-layer forwarding device. The third-layer forwarding device is communicatively connected to the second forwarding device. In this case, step S301 adapts to the third-layer forwarding device sending a request message to the second forwarding device to request a data block. At this time, the second forwarding device functions similarly to the first forwarding device, acting as an intermediate forwarding device between the computing device and the third-layer forwarding device, performing on-network computing tasks. Optionally, in architectures with more than two layers of aggregation, the second forwarding device, like the first forwarding device, also possesses the ability to perform route switching.

[0142] In one optional implementation, to facilitate route switching and reduce the number of information / data rollbacks, the second forwarding record table also records identification information. This identification information is the task identifier of the second forwarding device in this on-network computing task. This identification information is related to routing, and the first forwarding device can determine the various network nodes participating in this on-network computing task based on this identification information. The first request information issued by the second forwarding device carries this identification information.

[0143] Step S302: The first forwarding device receives the first request information sent by the second forwarding device.

[0144] In one optional embodiment, the first forwarding device includes a first forwarding record table. This first forwarding record table records data related to request information received by the forwarding device. For example, to avoid empty data links, the first forwarding device records the number of first data blocks requested by the first request information from the second forwarding device, and the number of processed first data blocks sent to the second forwarding device. Optionally, the first forwarding device also records the address information of the second forwarding device, which may be a memory address or an IP address.

[0145] In another optional implementation, if the first address is the memory address of the first forwarding device, the first forwarding record table also records the address offset carried in the first request information, the first request information with the same address offset, and the number of first request information with the same address offset (pull-counter). The first forwarding device realizes the batch forwarding of first request information with the same address offset by counting the address offset carried in the first request information and the first request information with the same address offset. Each time the first request information is forwarded (which is actually sending the second request information), the pull-counter is decremented by 1 until the pull-counter is 0, ensuring that the information is forwarded in sufficient quantity.

[0146] Optionally, the first request messages with the same address offset are sent by multiple second forwarding devices. Although these first request messages carry the same address offset, the addresses indexed by these first request messages are actually different.

[0147] In one optional implementation, the first forwarding device updates the first forwarding record table in real time. For example, each time a first request message is received, the first forwarding record table is updated, and the pull-counter corresponding to the address offset is increased by 1.

[0148] In an optional implementation, since the first forwarding device may be connected to multiple second forwarding devices, for example, L1 is connected to both S1 and S2, the first forwarding device L1 is provided with a first forwarding record table belonging to different second forwarding devices. Each first forwarding record table is only used to record the information data of the corresponding second forwarding device.

[0149] In an optional implementation, after receiving the first request information sent by the second forwarding device, the first forwarding device identifies and analyzes the first request information to determine the computing device mapped to the data block requested by the first request information, thereby proceeding to step S303. Optionally, the first request information includes identification information, which is the task identifier of the second forwarding device in this on-network computing task. This identification information is related to routing. The first forwarding device determines the computing device participating in this on-network computing task based on the identification information, that is, the computing device storing the data block requested by the first request information. The specific determination process is as follows.

[0150] The first forwarding device has a node routing table. When the first request information arrives at the first forwarding device, the first forwarding device determines whether the identification information carried in the first request information exists in the node routing table. For example, if the identification information in the first request information is not included in the node routing table, it means that the first forwarding device has not previously received a first request information requiring the execution of the computation task; if the identification information in the first request information is included in the node routing table, it means that the first forwarding device has previously received a first request information requiring the execution of the computation task.

[0151] If the identification information in the first request information is not included in the node routing table, the address of the computing device carrying the data block is calculated and determined. The first forwarding device performs a hash calculation on the identification information to obtain a hash value, retrieves the address of the computing device corresponding to the hash value from the hash routing table based on the hash value, and updates the node routing table with the hash value and the corresponding computing device address. When performing a hash calculation on the identification information, the hash length of the hash calculation is the number of computing devices in the distributed network.

[0152] For example, the hash calculation formula is: id = Hash(taskID) mod node_num;

[0153] Where taskID is the identifier information in the first request information, and node_num is the number of computing devices in the distributed computing system, for example... Figure 2 The number of computing devices is 6, and the number of computing devices is equal to the number of rows in the hash routing table.

[0154] If the identification information in the first request information is included in the node routing table, the first forwarding device obtains the address of the computing device corresponding to the identification information through the node routing table.

[0155] Step S303: The first forwarding device sends a second request to at least one computing device based on the first request information.

[0156] The second request information is used to request a data block at a second address, which is the address of the computing device. The second address can be a memory address of the computing device or an IP address of the computing device.

[0157] In the prior art, the second request information sent by the first forwarding device to the computing device is the same as the first request information. It can be understood that the first forwarding device forwards the first request information from the second forwarding device to the computing device. Therefore, both the first and second request information index data blocks stored in the computing device. However, in this embodiment, the second request information is not entirely the same as the first request information. Although both request data blocks required for on-network computing tasks, the first request information indexes the first address of the first forwarding device, while the second request information indexes the second address of the computing device, achieving partial isolation between the second forwarding device and the computing device. This implements the first forwarding device as an intermediate layer forwarding device between the second forwarding device and the computing device, enabling multipath forwarding and providing the basis for route switching. It should be noted that in this embodiment, the data blocks requested by the first request information and the data blocks requested by the second request information are different. The data block requested by the first request information is a data block sent by the computing device and processed by the first forwarding device, while the data block requested by the second request information is a data block stored in the computing device. In other embodiments, considering that the first forwarding device may only need to forward data, the data block requested by the first request information may be the same as the data block in the second request information.

[0158] In one optional implementation, the process of the first forwarding device sending the second request information to at least one computing device according to the first request information includes: the first forwarding device determining the data block requested by the first request information according to the first request information, and then determining one or more computing devices storing the data block by means of table lookup or the like, and sending the second request information to the one or more computing devices.

[0159] Step S304: The computing device receives the second request information sent by the first forwarding device.

[0160] Step S305: The computing device sends a data block to the first forwarding device.

[0161] The destination address of the data block is the first address of the first forwarding device, which is connected to the computing device. The data block is processed by the first forwarding device and then sent to the second forwarding device for further processing.

[0162] The data block can be a single data point or a combination of multiple data points. The composition of the data block varies in different on-net computing tasks. For example, the data block can consist of four vectors.

[0163] Step S306: The first forwarding device receives a data block sent by at least one computing device.

[0164] Step S307: The first forwarding device processes the data block from at least one computing device to obtain a processed first data block.

[0165] The above-mentioned processing characterizes the processing operations of the first forwarding device on data blocks in this on-network computing task, including splicing, aggregation, or splitting. The above content mainly uses aggregation processing as an example to explain the on-network computing process. The following is a detailed explanation of the possible implementation processes involved in the processing operations.

[0166] Case 1: If the processing refers to concatenation, it means that the first forwarding device concatenates data blocks from the computing device. For example, if the first forwarding device L1 receives data blocks sent by computing devices w1, w2, and w5 respectively, namely data block 1, data block 2, and data block 5, then it performs a concatenation operation on data blocks 1, 2, and 5 to obtain a single data block composed of data blocks 1, 2, and 5, namely the first data block 1. Similarly, if the first forwarding device L2 receives data blocks sent by computing devices w3, w4, and w6 respectively, namely... Data blocks 3, 4, and 6 are then concatenated to form a single data block, namely the first data block 2. In subsequent operations, the second forwarding device S1 receives the first data block 1 and the first data block 2 sent by the first forwarding devices L1 and L2, and performs concatenation on them. After processing, the final concatenated data block is returned to the sender (computing devices w1, w2, w3, w4, w5, and w6).

[0167] Case 2: If the processing refers to aggregation processing, it means that the first forwarding device aggregates the data blocks from the computing devices. For example, if the first forwarding device L1 receives a data block each from computing devices w1, w2, and w5, namely data block 1, data block 2, and data block 5, then it performs an aggregation operation on data blocks 1, 2, and 5 to obtain aggregated data block 1, aggregated data block 2, and aggregated data block 5. Aggregated data block 1, aggregated data block 2, and aggregated data block 5 are called the processed first data block, i.e., first data block 1. If the first forwarding device L2 receives a data block each from computing devices w3, w4, and w6, namely data block 3... Data blocks 4 and 6 are then aggregated to obtain aggregated data blocks 3, 4, and 6. These aggregated data blocks are called the processed first data blocks, i.e., first data block 2. In subsequent method execution, the second forwarding device S1 receives the first data blocks 1 and 2 sent by the first forwarding devices L1 and L2, and performs aggregation processing on them to obtain aggregated data blocks 1, 2, 3, 4, 5, and 6. These aggregated data blocks are then returned to the sender.

[0168] As can be seen from the above examples, the composition and quantity of the first data block differ in different on-network computing tasks. This application does not limit the composition or actual quantity of the first data block. Furthermore, the processing operations may differ in different on-network computing tasks, and this application does not impose any limitations on this.

[0169] Step S308: The first forwarding device sends the processed first data block to the third forwarding device.

[0170] In one optional implementation, the processed first data block is carried in a first message, which represents a message carrying the processed first data block. For example, the first message includes multiple fields, and the processed first data block is stored in a first field of the first message. Other fields in the message can also be used to store indication information or the aforementioned indication information. The indication information includes data forwarding volume information, which represents the number of processed first data blocks contained in the first message. By adding data forwarding volume information to the message, the receiver can understand the data forwarding status, which helps optimize subsequent data processing and resource allocation. Especially in scenarios where the message forwarding path may switch, the second forwarding device is unaware of the path switch. The data forwarding volume information allows the upper-layer switch receiving the message to perceive the data message status and understand whether the message forwarding path has switched. It also allows the second and first forwarding devices to easily track the forwarding status of statistical data messages.

[0171] For example, if the third forwarding device is the second forwarding device S2 that did not send the first request information, after receiving the first message, it can determine by statistical data forwarding information that the number of data blocks requested by the sent request information is inconsistent with the number of data blocks received, thereby sensing that the message forwarding path has been switched.

[0172] In an optional implementation, the first message further includes a third address of the computing device that sent the data block, enabling the second forwarding device to clearly perceive the source of the data after receiving the message data, thereby enhancing data traceability and security and helping to prevent data tampering and forgery. Optionally, the third address is stored in a third field of the first message.

[0173] The receiver of the processed first data block can be divided into two cases: the receiving third forwarding device can be the second forwarding device that sent the first request information, or another forwarding device. The following is a detailed explanation of the two cases.

[0174] Scenario 1: If the third forwarding device is the second forwarding device that sent the first request information, it means that there is no fault in the path between the first forwarding device and the second forwarding device, and the first forwarding device has not performed a route switch.

[0175] Scenario 2: If the third forwarding device is not the second forwarding device that sent the first request information, but another forwarding device, it indicates that the path between the first and second forwarding devices may be faulty, and the first forwarding device has performed a route switch. For example, the second forwarding device that sent the first request information is the second forwarding device S1. Due to a link failure between the first and second forwarding devices S1, the first forwarding device sends the first data block belonging to the second forwarding device S1 to the second forwarding device S2, whose link is functioning normally. That is, the second forwarding device S2 is the aforementioned third forwarding device.

[0176] It should be noted that in scenario 2 above, the first forwarding device switched routes due to a communication link failure between the first forwarding device and the second forwarding device S1. In practical applications, the first forwarding device may switch routes for various reasons, including communication congestion, communication failure, device node failure, etc. It may also be based on load balancing considerations. For example, in addition to participating in the current on-network computing task, the second forwarding device S1 also needs to undertake data forwarding operations for other tasks. As the resource proportion of data forwarding operations for other tasks increases sharply, the load on the second forwarding device S1 increases. After sensing this situation, the first forwarding device switched routes based on load balancing considerations.

[0177] Furthermore, in scenario 2 above, since the first data block requested by the second forwarding device S1 is forwarded to the second forwarding device S2, and the second forwarding device S1 does not receive the requested first data block, an idle data link exists between the first forwarding device and the second forwarding device S1, resulting in resource waste. In an optional embodiment, the first forwarding device sends a second message to the second forwarding device S1 to fill the idle data link. The second message is used to represent a message that does not carry the first data block. In this embodiment, the second message is used to represent a message that does not carry the first data block requested by the second forwarding device S1.

[0178] Optionally, the second message includes data forwarding volume information. This data forwarding volume information is generally used to characterize the number of data blocks carried by the message. Since the second message is used to characterize a message that does not carry the first data block, the data forwarding volume information carried by the second message is used to indicate to the second forwarding device that the number of processed first data blocks carried in the second message is 0. For ease of understanding, the data forwarding volume information can also be used to characterize that the second message does not carry any data blocks. This means that the second forwarding device S1 can detect the route switch through the second message to perform subsequent operations.

[0179] In one alternative implementation, in the same on-network computing task, the second forwarding device may send multiple first request messages to the first forwarding device. As a result, the first forwarding device may send the processed first data block to the second forwarding device, but there may still be an empty data link. The first forwarding device determines the empty data link by determining the number of data blocks requested and the number of data blocks returned by the first request messages received on a single path (e.g., the communication path between the first forwarding device L1 and the second forwarding device S1). The empty data link is due to the requested data blocks being forwarded to other forwarding devices (e.g., the processed first data block 1 requested by the second forwarding device S1 is forwarded by the first forwarding device L1 to the second forwarding device S2. In this scenario, the second forwarding device S2 is the third forwarding device, i.e., the above-mentioned case 2).

[0180] Optionally, the first forwarding device determines an empty data link through a first forwarding record table. The first forwarding device has a first forwarding record table. In this embodiment, the first forwarding record table records the number of first data blocks requested by first request information from the second forwarding device, and the number of processed first data blocks sent to the second forwarding device. It should be noted that the aforementioned multiple first request messages may be used to request processed first data blocks with the same address offset, or they may be used to request processed first data blocks with different address offsets; this application does not impose any limitations on this.

[0181] Optionally, the first forwarding device determines a first difference between the number of processed first data blocks sent to the second forwarding device and the number of first data blocks requested by the first request information from the second forwarding device, wherein the number of second packets is the first difference. This means that the number of the first difference is the same as the number of empty data links, so the first forwarding device sends a second packet to the second forwarding device with a number equal to the first difference. For example, if the first forwarding device determines that the number of processed first data blocks sent to the second forwarding device S1 is 1, the number of first data blocks requested by the first request information from the second forwarding device S1 is 3, and the first difference is 2, then the first forwarding device sends two second packets to the second forwarding device S1 to fill the empty data links and avoid resource waste.

[0182] In the specific implementation process, the first forwarding device updates the first forwarding record table once for each first data block sent. For example, the relevant entries in the first forwarding record table for sending the first data block are updated once for each first data block sent by the first forwarding device.

[0183] In one optional implementation, after the first data block requested by the first request information with the same address offset has been sent, the first forwarding device determines whether an empty data link exists by looking up a table or other means. In this implementation, the first forwarding device updates the first forwarding record table after sending each processed first data block; for example, the pull-counter in the first forwarding record table is decremented by 1.

[0184] In an alternative implementation, the aforementioned route switching is achieved by the first forwarding device using a hash routing algorithm.

[0185] In this embodiment of the application, in order to forward data and / or messages belonging to the same on-network computing task to the same second forwarding device for continued on-network computing processing, the first forwarding device forwards the first data block based on the identification information using a hash routing algorithm.

[0186] In some embodiments, for the identification information carried by the data block sent by the computing device, a hash factor is first determined, which includes the on-network computing identification information corresponding to the data block; a first routing identifier is determined based on the hash factor using a hash routing algorithm, which indicates a forwarding path; and the first data block is forwarded based on the first routing identifier.

[0187] When the network computing identifier information corresponding to the data block sent by the computing device is used as a hash factor for routing, for two different first data blocks processed by two different first forwarding devices, regardless of where the source data block of the first data block comes from, as long as the network computing identifier information corresponding to the different first data blocks is the same, based on the hash routing algorithm, both first forwarding devices will forward their processed first data blocks to the same next hop, thereby ensuring the path consistency of the network computing flow.

[0188] For ease of understanding, the first data block or other information sent by the first forwarding device to the second forwarding device is represented in message form. Please refer to [link to relevant documentation]. Figure 5 , Figure 5 This is a flowchart illustrating the execution of an on-network computing task by a second forwarding device, as provided in an embodiment of this application. Specifically, it includes:

[0189] Step S501: The second forwarding device receives the message data sent by the first forwarding device.

[0190] The message data can be a first message, a second message, or a third message. The first message is used to represent a message that carries a request for a first data block with request information, and the second message is used to represent a message that does not carry a request for a first data block. For a detailed description of the first message and the second message, please refer to the relevant descriptions above, which will not be repeated here.

[0191] In one alternative implementation, the third message is a message carrying the first data block, but the first data block is not requested by the second forwarding device itself. For example, the second forwarding device S1 sends a first request message to the first forwarding device to request the first data block 1, and the third message is a message carrying the first data block 2, which is the data block requested by the second forwarding device S2.

[0192] Based on the above, it can be seen that the message data received by the second forwarding device is divided into three types. Correspondingly, the second forwarding device has different processing logic when receiving message data in different situations. The following describes the scenarios related to the three types of message data.

[0193] Scenario 1: The message data received by the second forwarding device is the first message.

[0194] In Scenario 1, the first message is a message carrying a first data block requested by the second forwarding device. After receiving the first message, the second forwarding device processes the first data block carried in the first message using pre-allocated resources to obtain a processed second data block. These resources include memory resources and computing resources. Optionally, the first message includes a third address of the computing device that sent the data block, and the second forwarding device records this third address for later data tracing.

[0195] Scenario 2: The message data received by the second forwarding device is the second message.

[0196] In scenario 2, when the second forwarding device determines that the number of requested data blocks does not match the number of received data blocks by looking up a table, it determines that the route has been switched, and the first data block it requested is sent to another second forwarding device. To avoid wasting resources, the resources corresponding to the unreceived data blocks are deleted.

[0197] Scenario 3: The message data received by the second forwarding device is the third message.

[0198] In scenario 3, the third message carries the first data block, but this first data block is not the data block requested by the second forwarding device itself. The second forwarding device, similarly, determines that the route has been switched and that it has received a first data block belonging to another second forwarding device by checking tables or other methods when the number of requested data blocks does not match the number of received data blocks. It should be noted that there are multiple first data blocks here, sent by multiple first forwarding devices. The second forwarding device requests resources for the first data block in the third message to process it and complete the on-network computing task.

[0199] Step S502: The second forwarding device adjusts the resources according to the relationship between the first quantity and the second quantity.

[0200] Wherein, the first quantity is the number of first data blocks requested by the second forwarding device from the first request information sent to the first forwarding device, the second quantity is the number of first messages containing the first data blocks received by the second forwarding device, and the resources include memory resources and / or computing resources.

[0201] If the first quantity equals the second quantity, corresponding to scenario 1, proceed to step S503. If the first quantity is greater than the second quantity, proceed to step S504. If the first quantity is less than the second quantity, proceed to step S505, and then proceed to step S503.

[0202] Step S503: The second forwarding device processes the first data block to obtain the processed second data block.

[0203] The processing operations include splicing, aggregation, and splitting. For details on splicing and aggregation, please refer to the explanations in Case 1 and Case 2 above. This section specifically describes the splitting processing operation. When the processing operation is splitting, the second forwarding device receives a data block of 8 units from one or more computing devices. During the downlink data transmission, these 8 units are distributed to the 4 computing devices participating in this on-network computing task, with each computing device receiving 2 units of data.

[0204] Step S504: The second forwarding device releases the first resource.

[0205] When the first quantity is greater than the second quantity, the first resource is a pre-planned resource used in the calculation and processing of the unreceived first data block, realizing dynamic resource adjustment and avoiding resource waste. Optionally, when the first quantity is greater than the second quantity, the second forwarding device also deletes entries related to the first data block, such as entries related to the request information for the first data block.

[0206] Step S505: The second forwarding device requests the second resource.

[0207] If the first quantity is less than the second quantity, a second resource is requested, which is used to perform computational processing on the additional first data block received.

[0208] In an optional implementation, to maintain the accuracy of the entries and facilitate subsequent traceability of the processing, the second forwarding device sends a first request message to the first forwarding device when it determines that the first quantity is less than the second quantity. This first request message differs from the aforementioned first request message in two ways: firstly, the timing is different; this first request message is sent after receiving a first data block that is not requested by itself; secondly, its function is different; this first request message does not require the first forwarding device to resend the additional received first data block. For example, if the first data block 2 received by the second forwarding device S1 is requested by the second forwarding device S2, then the second forwarding device S1 sends a first request message requesting the first data block 2 to the first forwarding device to complete the task execution flow. Correspondingly, after receiving the first request message requesting the first data block 2 sent by the second forwarding device S1, the first forwarding device updates the relevant entries, for example, by deleting the relevant entries of the first request message requesting the first data block 2 sent by the second forwarding device S2.

[0209] In one optional implementation, after receiving the message data, the second forwarding device updates the address offset and the total aggregate data range (subDataLen) for each path. For example, if this is the second forwarding device's first index, after receiving the message data, the second forwarding device determines that the data block with an address offset of 0 has been indexed. If the data block size is 4kb, the address offset is updated to 0+4kb. The updated address offset is carried in the subsequently sent first request information. Here, "message data" specifically refers to the first message.

[0210] The data acquisition method for network computing provided in this application offers several advantages. First, by leveraging the multi-path forwarding capability of the first forwarding device, rapid path recovery is achieved during network path failures, significantly reducing recovery time and the number of backoffs, thus ensuring high network availability and stability. This design not only optimizes network performance but also enhances user experience, making it particularly suitable for applications with extremely high network continuity requirements. Second, this method utilizes relative indexing technology to achieve dynamic mapping between paths and data storage addresses, making data access more flexible and efficient. This innovative design breaks the limitations of data access in traditional network architectures, bringing greater flexibility and scalability to network data processing. Furthermore, the first forwarding device can intelligently record and analyze network requests and data forwarding, detect empty data links, and promptly reply with empty data packets, effectively resolving potential data inconsistency issues during data forwarding. This function greatly enhances the accuracy and reliability of network data transmission. Finally, through the intelligent judgment and processing of data forwarding volume by the second forwarding device, dynamic adjustments to the data processing flow are achieved, further improving network resource utilization and data processing efficiency. This characteristic enables the network system to respond flexibly to the actual situation, making optimal decisions whether it is normal aggregation, requesting new resources for aggregation, or deleting resources without aggregation.

[0211] In summary, the method of this application not only improves the stability and availability of the online computing system, but also optimizes the allocation of network resources through intelligent data processing, providing an efficient, reliable and flexible data acquisition solution for online computing.

[0212] The methods of the embodiments of this application have been described in detail above. Based on the same technical concept, the embodiments of this application also provide a data acquisition device for network computing, used to execute the method executed by the first forwarding device in the above embodiments.

[0213] Please see Figure 6 , Figure 6 This is a schematic diagram of the structure of a data acquisition device for online computing provided in an embodiment of this application.

[0214] like Figure 6 As shown, the data acquisition device 60 for online computing may include a first processing unit 601 and a first communication unit 602. The first processing unit 601 and the first communication unit 602 may be software, hardware, or a combination of software and hardware.

[0215] The first communication unit 602 can implement sending and / or receiving functions. The first communication unit 602 can also be a unit integrating an acquisition unit and a sending unit, wherein the acquisition unit is used to implement the receiving function, and the sending unit is used to implement the sending function. Optionally, the first communication unit 602 can be used to receive information sent by other devices, and can also be used to send information to other devices.

[0216] The first processing unit 601 can be used to perform operations such as calculation, judgment, and data processing in the aforementioned data acquisition method for online computing, and / or to support other processes for the technology described herein, such as processing data blocks. The first processing unit 601 can also be replaced by at least one processor, and the at least one processor can be used to support other processes for the technology described in the aforementioned method.

[0217] In one possible design, the data acquisition device 60 for online computing may correspond to the above. Figure 3 and Figure 5 The first forwarding device in the illustrated method embodiment, such as the data acquisition device 60 for on-network computing, can be either the first forwarding device itself or a chip within the first forwarding device. The data acquisition device 60 for on-network computing may include components for performing the above-described... Figure 3 and Figure 5 The unit performing the operation by the first forwarding device in the method embodiment shown, and each unit in the data acquisition device 60 for network computing, is respectively for implementing the above. Figure 3 and Figure 5 The operation performed by the first forwarding device in the illustrated method embodiment is described below:

[0218] The first communication unit 602 is used to receive a first request information sent by the second forwarding device, wherein the first request information is used to request a data block at a first address, and the first address is the address of the first forwarding device;

[0219] The first communication unit 602 is further configured to send a second request message to at least one computing device according to the first request message, wherein the second request message is used to request a data block at a second address, and the second address is the address of the computing device;

[0220] The first communication unit 602 is also configured to receive data blocks sent by at least one computing device;

[0221] The first processing unit 601 is used to process data blocks from at least one computing device to obtain a processed first data block;

[0222] The first communication unit 602 is also used to send the processed first data block to the third forwarding device.

[0223] In one possible implementation, the processed first data block is carried in a first message, and the first message further includes data forwarding volume information, which is used to characterize the number of processed first data blocks contained in the first message.

[0224] In one possible implementation, the first message may also include a third address of the computing device that sent the data block.

[0225] In one possible implementation, the third forwarding device differs from the second forwarding device. The first communication unit 602 is further configured to send a second message to the second forwarding device. The second message includes data forwarding volume information, which is used to indicate that the second message does not carry a data block.

[0226] In one possible implementation, the first forwarding device is provided with a first forwarding record table, which records the number of first data blocks requested from the second forwarding device by the first request information, and the number of processed first data blocks sent to the second forwarding device.

[0227] The first processing unit 601 is further configured to determine a first difference between the number of processed first data blocks sent to the second forwarding device and the number of first data blocks requested from the first request information of the second forwarding device, wherein the number of the second messages is the first difference.

[0228] This application also provides a data acquisition device for network computing, used to execute the method executed by the second forwarding device in the above embodiments.

[0229] Please see Figure 7 , Figure 7 This is a schematic diagram of another data acquisition device for online computing provided in an embodiment of this application.

[0230] like Figure 7 As shown, the data acquisition device 70 for online computing may include a second communication unit 701. The second communication unit 701 may be software, hardware, or a combination of both.

[0231] The second communication unit 701 can implement sending and / or receiving functions. The second communication unit 701 can also be a unit integrating an acquisition unit and a sending unit, wherein the acquisition unit is used to implement the receiving function, and the sending unit is used to implement the sending function. Optionally, the second communication unit 701 can be used to receive information sent by other devices, and can also be used to send information to other devices.

[0232] In one possible design, the data acquisition device 70 for online computing may correspond to the above. Figure 3 and Figure 5 The second forwarding device in the illustrated method embodiment, such as the data acquisition device 70 for on-network computing, can be a second forwarding device or a chip within the second forwarding device. The data acquisition device 70 for on-network computing may include components for performing the above-described... Figure 3 and Figure 5 The unit performing the operation by the second forwarding device in the method embodiment shown, and each unit in the data acquisition device 70 for network computing, is respectively for implementing the above. Figure 3 and Figure 5 The operation performed by the second forwarding device in the illustrated method embodiment is described below:

[0233] The second communication unit 701 is used to send a first request message to the first forwarding device, wherein the first request message is used to request a data block at a first address, and the first address is the address of the first forwarding device;

[0234] The second communication unit 701 is further configured to receive a processed first data block sent by the first forwarding device, wherein the processed first data block is a data block obtained by processing a data block from at least one computing device.

[0235] In one possible implementation, the on-net computing data acquisition device 70 further includes a second processing unit 702, which processes the first data block to obtain a processed second data block.

[0236] In one possible implementation, the second processing unit 702 is further configured to adjust resources according to the relationship between a first quantity and a second quantity, wherein the first quantity is the number of first data blocks requested by the first request information sent to the first forwarding device, the second quantity is the number of first messages containing the first data blocks received, and the resources include memory resources and / or computing resources.

[0237] In one possible implementation, the processed first data block is carried in a first message, and the first message further includes data forwarding volume information, which is used to characterize the number of processed first data blocks contained in the first message.

[0238] In one possible implementation, the second communication unit 701 is further configured to receive a third message sent by the first forwarding device, the third message including data forwarding volume information, the data forwarding volume information being used to characterize the number of processed first data blocks contained in the first message;

[0239] The second processing unit 702 is further configured to adjust resources based on the data forwarding volume information in the third message, wherein the resources include internal.

[0240] In one possible implementation, the first message may also include a third address of the computing device that sent the data block.

[0241] This application also provides a data acquisition device for online computing, used to execute the method executed by the computing device in the above embodiments.

[0242] Please see Figure 8 , Figure 8 This is a schematic diagram of another data acquisition device for online computing provided in an embodiment of this application.

[0243] like Figure 8 As shown, the data acquisition device 80 for online computing includes at least a third communication unit 801. The third communication unit 801 can be software, hardware, or a combination of both.

[0244] The third communication unit 801 can implement sending and / or receiving functions. The third communication unit 801 can also be a unit integrating an acquisition unit and a sending unit, wherein the acquisition unit is used to implement the receiving function, and the sending unit is used to implement the sending function. Optionally, the third communication unit 801 can be used to receive information sent by other devices, and can also be used to send information to other devices.

[0245] In one possible design, the data acquisition device 80 for online computing may correspond to the above. Figure 3 and Figure 5 The computing device in the illustrated method embodiment, such as the data acquisition device 80 for online computing, can be a computing device or a chip within the computing device. The data acquisition device 80 for online computing may include components for performing the above-described... Figure 3 and Figure 5 The unit in the method embodiment shown is the one that performs the operation by the computing device, and each unit in the data acquisition device 80 for online computing is respectively for implementing the above. Figure 3 and Figure 5 The operations performed by the computing device in the illustrated method embodiment are as follows: The descriptions of each unit are as follows:

[0246] The third communication unit 801 is used to receive a second request information sent by the first forwarding device, wherein the second request information is used to request a data block at a second address, and the second address is the address of the computing device;

[0247] The third communication unit 801 is further configured to send a data block to the first forwarding device, wherein the destination address of the data block is the first address of the first forwarding device, the first forwarding device is connected to the computing device, and the data block is used to be processed by the first forwarding device and then sent to the second forwarding device for processing.

[0248] In one possible design, the data acquisition device 60, the data acquisition device 70, and the data acquisition device 80 for network computing belong to the same device, such as a supercomputer.

[0249] Please see Figure 9 , Figure 9 This is a schematic diagram of the structure of a first forwarding device provided in an embodiment of this application.

[0250] The first forwarding device 90 is a device with certain computing capabilities that can share the computing load of the network system. The first forwarding device 90 can be various types of switches (such as rack switches), switching chips, other switching equipment, various types of routers, nodes integrating host channel adapters (HCAs), smart network cards, distributed processing unit (DPU) cards, or other network devices, or one of the devices within the aforementioned network devices.

[0251] Optionally, the first relay device 90 is Figure 2 Either of the first relay devices L1 and L2 shown.

[0252] The first forwarding device 90 may include at least one processor 901 and a communication interface 902. Optionally, it may also include at least one memory 903. Further optionally, it may also include a connection line 904, wherein the processor 901, the communication interface 902, and / or the memory 903 are connected via the connection line 904, and communicate with each other to transmit control and / or data signals.

[0253] (1) The processor 901 is a module that performs arithmetic and / or logical operations, and may specifically include one or more of the following modules: central processing unit (CPU), application processor (AP), microcontroller unit (MCU), electronic control unit (ECU), microprocessor unit (MPU), application specific integrated circuit (ASIC), image signal processor (ISP), digital signal processor (DSP), field programmable gate array (FPGA), complex programmable logic device (CPLD), or coprocessor, etc.

[0254] (2) The communication interface 902 can be used to provide information input or output to at least one processor 901. In some possible scenarios, the communication interface 902 may include interface circuitry. And / or, the communication interface 902 can be used to receive data transmitted externally and / or transmit data externally. For example, the communication interface 902 may include a wired link interface such as an Ethernet cable, or a wireless link interface (Wi-Fi, Bluetooth, general wireless transmission, vehicular short-range communication technology, or other short-range wireless communication technology, etc.). Optionally, the communication interface 902 may also include a transmitter (such as an RF transmitter or antenna, etc.) coupled to the interface, or a receiver, etc.

[0255] Optionally, if the first forwarding device 90 is a standalone device, the communication interface 902 may include a receiver and a transmitter. The receiver and transmitter may be the same component or different components. When the receiver and transmitter are the same component, this component may be referred to as a transceiver.

[0256] Optionally, if the first forwarding device 90 is a chip or circuit, the communication interface 902 may include an input interface and an output interface. The input interface and the output interface may be the same interface or they may be different interfaces.

[0257] Alternatively, the functionality of the communication interface 902 can be implemented using transceiver circuitry or a dedicated transceiver chip. The processor 901 can be implemented using a dedicated processing chip, processing circuitry, processor, or general-purpose chip.

[0258] (3) The memory 903 is used to provide storage space, in which data such as the operating system and computer programs can be stored. The memory 903 can be one or a combination of random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), or compact disc read-only memory (CD-ROM), etc.

[0259] The functions and actions of each module or unit in the first forwarding device 90 listed above are merely illustrative examples.

[0260] Optionally, processor 901 may be a processor specifically designed to perform the aforementioned methods (for ease of distinction, referred to as a dedicated processor), or a processor that performs the aforementioned methods by calling a computer program (for ease of distinction, referred to as a dedicated processor). Optionally, at least one processor may include both dedicated processors and general-purpose processors.

[0261] Optionally, if the computing device includes at least one memory 903, and the processor 901 implements the aforementioned method by calling a computer program, the computer program may be stored in the memory 903.

[0262] Each functional unit in the first forwarding device 90 can be used to implement the steps performed on the first forwarding device side in the aforementioned data acquisition method for on-network computing, for example... Figure 3 and Figure 5 The method described on the first forwarding device side of the illustrated embodiment. The processor 901 in the first forwarding device 90 is used to perform the following operations:

[0263] Receive a first request message sent by a second forwarding device, wherein the first request message is used to request a data block at a first address, and the first address is the address of the first forwarding device;

[0264] A second request message is sent to at least one computing device according to the first request message, wherein the second request message is used to request a data block at a second address, and the second address is the address of the computing device;

[0265] Receive data blocks sent by at least one computing device;

[0266] The data block from at least one computing device is processed to obtain a processed first data block;

[0267] The processed first data block is sent to the third forwarding device.

[0268] In one possible implementation, the processor 901 is further configured to:

[0269] A second message is sent to the second forwarding device. The second message includes data forwarding volume information, which is used to indicate that the second message does not carry a data block.

[0270] In one possible implementation, the first forwarding device includes a first forwarding record table, which records the number of first data blocks requested by the second forwarding device for a first request information, and the number of processed first data blocks sent to the second forwarding device. The processor 901 is further configured to:

[0271] A first difference is determined between the number of processed first data blocks sent to the second forwarding device and the number of first data blocks requested from the first request information of the second forwarding device, wherein the number of the second messages is the first difference.

[0272] Please see Figure 10 , Figure 10 This is a schematic diagram of the structure of a second forwarding device provided in an embodiment of this application.

[0273] The second forwarding device 100 is a device with certain computing capabilities that can share the computing load of the network system. The first forwarding device 90 can be various types of switches (e.g., rack switches), switching chips, other switching equipment, various types of routers, nodes integrating host channel adapters (HCAs), smart network interface cards (NICs), distributed processing unit (DPU) cards, or other network devices, or devices within the aforementioned network devices. The second forwarding device 100 may include at least one processor 1001 and a communication interface 1002. Optionally, it may also include at least one memory 1003. Further optionally, it may also include a connection line 1004, wherein the processor 1001, communication interface 1002, and / or memory 1003 are connected via the connection line 1004, communicating with each other and transmitting control and / or data signals. For a description of the processor 1001, communication interface 1002, and memory 1003, please refer to the foregoing descriptions of the processor, memory, and communication interface.

[0274] Optionally, the second relay device 100 is Figure 2 Either of the second relay devices S1 and S2 shown.

[0275] Each functional unit in the second forwarding device 100 can be used to implement the steps performed on the second forwarding device side in the aforementioned data acquisition method for on-network computing, for example... Figure 3 and Figure 5 The method described on the second relay device side of the illustrated embodiment will not be repeated here.

[0276] The processor 1001 in the second forwarding device 100 is used to perform the following operations:

[0277] Send a first request message to the first forwarding device, wherein the first request message is used to request a data block at a first address, and the first address is the address of the first forwarding device;

[0278] The system receives a processed first data block sent by the first forwarding device, wherein the processed first data block is a data block obtained by processing a data block from at least one computing device.

[0279] In one possible implementation, the processor 1001 is further configured to:

[0280] The first data block is processed to obtain the processed second data block.

[0281] In one possible implementation, the processor 1001 is further configured to:

[0282] Resources are adjusted according to the relationship between a first quantity and a second quantity, wherein the first quantity is the number of first data blocks requested by the first request information sent to the first forwarding device, the second quantity is the number of first messages containing the first data blocks received, and the resources include memory resources and / or computing resources.

[0283] In one possible implementation, the processor 1001 is further configured to:

[0284] The third message sent by the first forwarding device is received. The third message includes data forwarding volume information, which is used to characterize the number of processed first data blocks contained in the first message.

[0285] Based on the data forwarding volume information in the third message, resources are adjusted, wherein the resources include memory resources and / or computing resources.

[0286] Please see Figure 11 , Figure 11 This is a schematic diagram of the structure of a computing device provided in an embodiment of this application.

[0287] The computing device 110 is the computing device involved in this application, and in a network system, it has at least the ability to send and receive data. The computing device 110 can be a personal computer, a computer, or other computing device, or it can be a server, such as an edge server, or a server cluster. In addition, the aforementioned computing device can also be a graphics processing unit (GPU), an eXtensible processing unit (XPU), a neural network processing unit (NPU), a tensor processing unit (TPU), or a dedicated AI processing chip, etc.

[0288] It should be noted that on-grid computing technology can be deeply integrated with in-vehicle computing platforms, roadside computing devices, and edge computing clouds to form a multi-level hybrid distributed computing system. This helps to compress data traffic, shorten communication latency, and improve the real-time performance of processing. In the vehicle-to-everything (V2X) scenario, machine learning and deep learning algorithms can achieve functions such as environmental perception, precise positioning, decision-making and planning, and control and execution. These algorithms need to process large amounts of real-time data, including image and signal information from in-vehicle sensors (such as LiDAR, cameras, ultrasonic sensors, millimeter-wave radar, etc.), enabling vehicles to have basic functions such as lane keeping, automatic braking, and pedestrian detection. At the same time, in complex road environments, vehicles need to make judgments and avoidance actions on sudden situations in real time, which places very high demands on the high degree of coordination between people, vehicles, roads, networks, and the cloud. In this scenario, the computing device 110 can also be an in-vehicle device, such as an in-vehicle chip, to utilize on-grid computing for data processing and aggregation, reduce transmission load, simplify cloud processing processes, reduce latency, and avoid potential risks caused by network transmission delays.

[0289] When the computing device 110 is implemented by a server, it may contain one or more servers (such as a server cluster). A virtual machine is a virtualized computing module. The cloud is a software platform that uses application virtualization technology, enabling one or more software applications to be developed and run in an independent virtualized environment. Optionally, the cloud may be deployed on a public cloud, private cloud, or hybrid cloud. The cloud may include cloud servers and / or cloud virtual machines. The computing device 110 may include at least one processor 1101 and a communication interface 1102. Optionally, it may also include at least one memory 1103. Further optionally, it may also include a connection line 1104, wherein the processor 1101, the communication interface 1102, and / or the memory 1103 are connected through the connection line 1104, and communicate with each other through the connection line 1104 to transmit control and / or data signals.

[0290] Each functional unit in the computing device 110 can be used to implement the steps performed on the computing device side in the aforementioned data acquisition method for online computing, for example... Figure 3 The method described on the computing device side of the illustrated embodiment will not be repeated here.

[0291] This application provides a chip comprising: a processor coupled to a memory for storing programs or instructions, wherein when the processor executes the programs or instructions, a first forwarding device is executed. Figure 3 and Figure 5 The method on one side of the first relay device, and / or, causes the second relay device to perform Figure 3 and Figure 5 The method on the first relay device side, and / or causing the computing device to perform Figure 3 The method on the first relay device side.

[0292] It should be understood that embodiments of this application may be provided as methods, systems, or computer program products. Therefore, this application may take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0293] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means that implement the functions specified in one or more flowcharts and / or one or more block diagrams.

[0294] These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process, such that the instructions, which execute on the computer or other programmable apparatus, provide steps for implementing the functions specified in one or more flowcharts and / or one or more block diagrams.

[0295] In this application, the terms "exemplarily" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design described as "exemplarily" or "for example" in this application should not be construed as being more preferred or advantageous than other embodiments or designs. Specifically, the use of the terms "exemplarily" or "for example" is intended to present the relevant concepts in a specific manner.

[0296] In this application, "at least one" in the embodiments refers to one or more items, and "more than one" refers to two or more items. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can represent: a, b, c, (a and b), (a and c), (b and c), or (a and b and c), where a, b, and c can be single or multiple. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, and B alone, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship.

[0297] Furthermore, unless otherwise stated, the use of ordinal numbers such as "first" and "second" in the embodiments of this application is for distinguishing multiple objects and is not for limiting the order, sequence, priority, or importance of multiple objects. For example, "first device" and "second device" are only for ease of description and do not indicate that the first device and the second device are different in structure, importance, etc. In some embodiments, the first device and the second device may also be the same device.

[0298] In the above embodiments, the term "when..." can be interpreted, depending on the context, as meaning "if...", "after...", "in response to determining...", or "in response to detecting...". The above descriptions are merely optional embodiments of this application and are not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the concept and principles of this application should be included within the protection scope of this application.

[0299] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.

Claims

1. A method for acquiring data in online computing, characterized in that, The method is applied to a first forwarding device, and the method includes: Receive a first request message sent by a second forwarding device, wherein the first request message is used to request a data block at a first address, and the first address is the address of the first forwarding device; A second request message is sent to at least one computing device according to the first request message, wherein the second request message is used to request a data block at a second address, and the second address is the address of the computing device; Receive data blocks sent by at least one computing device; The data block from at least one computing device is processed to obtain a processed first data block; The processed first data block is sent to the third forwarding device.

2. The method according to claim 1, characterized in that, The processed first data block is carried in a first message, which also includes data forwarding volume information, which is used to characterize the number of processed first data blocks contained in the first message.

3. The method according to claim 2, characterized in that, The first message also includes a third address of the computing device that sent the data block.

4. The method according to claim 2, characterized in that, The third forwarding device differs from the second forwarding device, and the method further includes: A second message is sent to the second forwarding device. The second message includes data forwarding volume information, which is used to indicate that the second message does not carry a data block.

5. The method according to any one of claims 1-4, characterized in that, The first forwarding device includes a first forwarding record table, which records the number of first data blocks requested by the second forwarding device for a first request information, and the number of processed first data blocks sent to the second forwarding device. The method further includes: A first difference is determined between the number of processed first data blocks sent to the second forwarding device and the number of first data blocks requested from the first request information of the second forwarding device, wherein the number of the second messages is the first difference.

6. A method for acquiring data in online computing, characterized in that, The method is applied to a second forwarding device, and the method includes: Send a first request message to the first forwarding device, wherein the first request message is used to request a data block at a first address, and the first address is the address of the first forwarding device; The system receives a processed first data block sent by the first forwarding device, wherein the processed first data block is a data block obtained by processing a data block from at least one computing device.

7. The method according to claim 6, characterized in that, The method further includes: The processed first data block is further processed to obtain the processed second data block.

8. The method according to claim 6, characterized in that, After receiving the processed first data block sent by the first forwarding device, the method further includes: Resources are adjusted according to the relationship between a first quantity and a second quantity, wherein the first quantity is the number of first data blocks requested by the first request information sent to the first forwarding device, the second quantity is the number of the processed first data blocks received, and the resources include memory resources and / or computing resources.

9. The method according to any one of claims 6-8, characterized in that, The processed first data block is carried in a first message, which also includes data forwarding volume information, which is used to characterize the number of processed first data blocks contained in the first message.

10. The method according to claim 9, characterized in that, The method further includes: The third message sent by the first forwarding device is received. The third message includes data forwarding volume information, which is used to characterize the number of processed first data blocks contained in the third message. Based on the data forwarding volume information in the third message, resources are adjusted, wherein the resources include memory resources and / or computing resources.

11. The method according to claim 9, characterized in that, The first message also includes a third address of the computing device that sent the data block.

12. A method for acquiring data in online computing, characterized in that, The method is applied to a computing device, and the method includes: The system receives a second request message sent by a first forwarding device, wherein the second request message is used to request a data block at a second address, and the second address is the address of the computing device. A data block is sent to the first forwarding device, wherein the destination address of the data block is the first address of the first forwarding device, the first forwarding device is connected to the computing device, and the data block is used to be processed by the first forwarding device and then sent to the second forwarding device for processing.

13. A data acquisition device for network computing, characterized in that, The device includes a first communication unit and a first processing unit; The first communication unit is used to receive a first request information sent by the second forwarding device, wherein the first request information is used to request a data block at a first address, and the first address is the address of the first forwarding device; The first communication unit is further configured to send a second request message to at least one computing device according to the first request message, wherein the second request message is used to request a data block at a second address, and the second address is the address of the computing device; The first communication unit is also configured to receive data blocks sent by at least one computing device; The first processing unit is used to process the data block from at least one computing device to obtain a processed first data block; The first communication unit is also used to send the processed first data block to the third forwarding device.

14. A data acquisition device for network computing, characterized in that, The device includes a second communication unit; The second communication unit is used to send a first request message to the first forwarding device, wherein the first request message is used to request a data block at a first address, and the first address is the address of the first forwarding device; The second communication unit is further configured to receive a processed first data block sent by the first forwarding device, wherein the processed first data block is a data block obtained by processing a data block from at least one computing device.

15. A data acquisition device for network computing, characterized in that, The device includes a third communication unit; The third communication unit is used to receive a second request information sent by the first forwarding device, wherein the second request information is used to request a data block at a second address, and the second address is the address of the computing device; The third communication unit is further configured to send a data block to the first forwarding device, wherein the destination address of the data block is the first address of the first forwarding device, the first forwarding device is connected to the computing device, and the data block is processed by the first forwarding device and then sent to the second forwarding device for further processing.

16. A first relay device, characterized in that, Includes at least one processor and a communication interface; The communication interface is used to receive and / or send data, and / or the communication interface is used to provide input and / or output to the processor; The at least one processor is configured to execute computer instructions to cause the first forwarding device to implement the method of any one of claims 1-5.

17. A second relay device, characterized in that, Includes at least one processor and a communication interface; The communication interface is used to receive and / or send data, and / or the communication interface is used to provide input and / or output to the processor; The at least one processor is configured to execute computer instructions to cause the second forwarding device to implement the method of any one of claims 6-11.

18. A computing device, characterized in that, Includes at least one processor and a communication interface; The communication interface is used to receive and / or send data, and / or the communication interface is used to provide input and / or output to the processor; The at least one processor is configured to execute computer instructions to cause the computing device to implement the method of claim 12.

19. A computer-readable storage medium, characterized in that, include: The computer-readable storage medium is used to store instructions or computer programs that, when executed, cause the method as described in any one of claims 1 to 5, 6 to 11, or 12 to be implemented.

20. A computer program product, characterized in that, include: Instructions or computer programs; When the instructions or the computer program are executed, the method as described in any one of claims 1 to 5, 6 to 11, or 12 is implemented.

21. A chip, characterized in that, include: A processor coupled to a memory for storing a program or instructions which, when executed by the processor, cause a first forwarding device to perform the method as described in any one of claims 1 to 5, and / or cause a second forwarding device to perform the method as described in any one of claims 6 to 11, and / or cause a computing device to perform the method as described in claim 12.

22. A distributed computing system, characterized in that, The distributed computing system includes at least one computing device, one or more first forwarding devices, and one or more second forwarding devices. The at least one computing device is connected to at least one first forwarding device, and each first forwarding device is connected to one or more second forwarding devices. Each first forwarding device is used to perform the method described in any one of claims 1-5, each second forwarding device is used to perform the method described in any one of claims 6-11, and each computing device is used to perform the method described in claim 12.

Citation Information

Cited By

  • Data processing method, data processing device, processing cluster and related products

    CN121728059A

  • Host, interconnection system, data processing method, equipment, medium and product

    CN122268806A