System for data routing between multiple computing nodes, method and apparatus

By nesting the topology structure of the surrounding network and fully interconnected network, the data routing of large-scale computing systems is optimized, the problems of network performance and energy consumption are solved, and efficient and low-latency communication is achieved.

WO2025001376A1PCT designated stage expired Publication Date: 2025-01-02HUAWEI TECH CO LTD

Patent Information

Application Number
PCT/CN2024/084596
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-08-30
Filing Date
2024-03-28
Publication Date
2025-01-02

AI Technical Summary

Technical Problem

The network performance, cost and power consumption of large-scale computing systems face challenges, especially in E-class supercomputing systems, where network bandwidth utilization is low and energy consumption is high, making it difficult to meet the needs of high bandwidth, low latency and high throughput.

Method used

Using nested topology structure, the first layer topology network is a surround network, and the second layer topology network is a fully interconnected network. Using the multi-path characteristics of the surrounding network and the global communication characteristics of the fully interconnected network, the node coordinates are determined and data routing is optimized. path to achieve efficient communication.

Benefits of technology

It reduces the physical cost and power consumption of networking, improves communication efficiency, reduces latency, and increases network throughput, which is suitable for large-scale networking requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024084596_02012025_PF_FP_ABST
    Figure CN2024084596_02012025_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the embodiments of the present disclosure are a data routing system, a method and an apparatus. A plurality of computing nodes are located in a communication network at least comprising first-layer topology networks and a second-layer topology network, the first-layer topology networks being nested in the second-layer topology network, each first-layer topology network being based on a ring network topology structure constituted by a first number of nodes, the first number of nodes constituting a first node group corresponding to the first-layer topology network, the second-layer topology network being based on a fully interconnected network topology structure constituted by a second number of first node groups, the second number of first node groups constituting a second node group corresponding to the second-layer topology network, and each node at least comprising a first port set corresponding to the first-layer topology network and a second port set corresponding to the second-layer topology network. Thus, the overall topology structure having ring networks nested in a fully interconnected network can provide large-scale networking suitable for high bandwidth, low delay and high throughput requirements.
Need to check novelty before this filing date? Find Prior Art

Description

System, method and apparatus for data routing between multiple computing nodes

[0001] This application claims priority to the Chinese invention patent application filed with the Patent Office of China on June 26, 2023, with application number 202310757984.7 and invention name “A network communication system”, and the Chinese invention patent application filed with the Patent Office of China on August 30, 2023, with application number 202311126196.4 and invention name “System, method and device for data routing between multiple computing nodes”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present disclosure generally relates to the field of computer network technology, and more particularly to a system, method, apparatus, computing device, computing device cluster, computer-readable storage medium, and computer program product for data routing between multiple computing nodes. Background Art

[0003] With technological advancements, applications such as artificial intelligence (AI), big data analytics, and high-performance computing are rapidly developing. In particular, the large-scale development of generative AI applications has greatly increased the demand for large-scale computing. For example, exascale (exaflops) supercomputers involve computing systems with tens of thousands of nodes, which places higher demands and greater challenges on the overall network performance, cost, and power consumption of computing systems.

[0004] For example, as computing system networks scale, the number of network hops increases, latency increases, and congestion intensifies, leading to a sharp decline in network bandwidth utilization. For example, network equipment in conventional data centers currently consumes 20%-30% of energy, and network costs account for 10%-20%. Furthermore, for computing systems supporting 10E-class supercomputers, the system scale will reach hundreds of thousands of nodes, and the network will need to provide 500,000 port access capabilities, with system energy consumption estimated to reach 50MW (megawatts). Therefore, network cost and power consumption pose significant challenges for large-scale computing systems, and how to effectively reduce network cost and power consumption has become a topic that requires further research.

[0005] Summary of the Invention

[0006] According to some embodiments of the present disclosure, a system, method, apparatus, computing device, computing device cluster, computer-readable storage medium, and computer program product for data routing between multiple computing nodes are provided.

[0007] In a first aspect of the present disclosure, a system for data routing between multiple computing nodes is provided. The multiple computing nodes are located in a communication network that includes at least a first-layer topology network and a second-layer topology network, wherein the first-layer topology network is nested in the second-layer topology network, the first-layer topology network is based on a surround network topology structure composed of a first number of nodes, the first number of nodes constitutes a first node group corresponding to the first-layer topology network, the second-layer topology network is based on a fully interconnected network topology structure composed of a second number of first node groups, the second number of first node groups constitutes a second node group corresponding to the second-layer topology network, wherein each of the multiple computing nodes includes at least a first port set corresponding to the first-layer topology network and a second port set corresponding to the second-layer topology network. According to an embodiment of the present disclosure, by nesting the surround network in the overall topology structure of the fully interconnected network, it is possible to utilize the multi-path characteristics of the surround network topology and the global communication characteristics of the fully interconnected network topology to provide a large-scale networking suitable for high bandwidth, low latency, and high throughput requirements.

[0008] In some embodiments, the first number of nodes are interconnected in the first layer topology network in a manner that adjacent nodes are interconnected to form the first layer topology network, and the second number of first node groups are interconnected in the second layer topology network in a manner that they are interconnected to form the second layer topology network, and the node coordinates of each of the multiple computing nodes in the communication network are determined based on the port number of the first port set and the port number of the second port set. According to an embodiment of the present disclosure, the node coordinates in the first layer topology network are determined by further utilizing the low-port router extension characteristics of the surround network topology, and the node coordinates in each layer are determined by the ports of each layer corresponding to the fully interconnected network topology, so as to simply determine the node coordinates of the node in the entire communication network, thereby being suitable for coordinate identification and path search in large-scale networking, thereby effectively reducing the physical cost and power consumption of the networking while greatly improving the networking communication efficiency, reducing communication delay, and increasing network throughput.

[0009] In some embodiments, the multiple computing nodes include source nodes and destination nodes, wherein: the source node includes a first source port set for the first layer topology network and a second source port set for the second layer topology network, wherein the first source port set includes multiple first source ports corresponding to the dimension of the first layer topology network, and the second source port set includes at least one second source port for connecting to nodes in the second layer topology network, wherein the first source port has a first source port number and the second source port has a second source port number; the destination node includes a first destination port set for the first layer topology network and a second destination port set for the second layer topology network, wherein the first destination port set includes multiple first destination ports corresponding to the dimension of the first layer topology network, and the second destination port set includes at least one second destination port for connecting to nodes in the second layer topology network, wherein the first destination port has a first destination port number and the second destination port has a second destination port number. The source node performs the following operations: obtaining a first source port number and a second source port number of the source node; obtaining a first destination port number and a second destination port number of the destination node; determining a data routing path from the source node to the destination node based on the first source port number, the second source port number, the first destination port number, and the second destination port number; and sending the data to the destination node based on the determined data routing path. According to the embodiments of the present disclosure, it is possible to utilize the low-port router expansion characteristics and multi-path characteristics of the surround network topology and the global communication characteristics of the fully interconnected network topology, and is suitable for the pipeline parallelism and data parallelism requirements of the Ring All-Reduce communication algorithm in the large-scale model. Therefore, for the scenario of large-scale networking, it is possible to effectively reduce the physical cost and power consumption of the network while significantly improving the network communication efficiency, reducing communication delay, and increasing network throughput.

[0010] In some embodiments, the node coordinates of the source node in the first layer topology network are indicated by a first source port number set, the first source port number set including the first source port and the first source port number corresponding to each dimension of the first layer topology network, the node coordinates of the destination node in the first layer topology network are indicated by a first destination port number set, the first destination port number set including the first destination port and the first destination port number corresponding to each dimension of the first layer topology network, the node coordinates of the source node in the multiple computing nodes are indicated by the first source port number set and the second source port number, wherein the second source port number is determined based on the first source port number of the first source port in the first source port set, and the node coordinates of the destination node in the multiple computing nodes are indicated by the first destination port number set and the second destination port number, wherein the second destination port number is determined based on the first destination port number of the first destination port in the first destination port set. According to an embodiment of the present disclosure, the node coordinates in the data communication system can be determined in a port manner to achieve a deterministic topology feature, thereby enabling the rapid calculation of the shortest route to effectively facilitate hardware implementation.

[0011] In some embodiments, determining the data routing path from the source node to the destination node includes: determining whether the source node and the destination node are in the same first node group based on the second source port number of the source node and the second destination port number of the destination node, wherein a plurality of nodes belonging to the first node group are in the same first layer topology network; if it is determined that the source node and the destination node are in the same first node group, performing a first data routing process for the first layer topology network; if it is determined that the source node and the destination node are not in the same first node group, performing a second data routing process for the second layer topology network. According to an embodiment of the present disclosure, for a data communication system based on a Torus network topology and a Full-mesh network topology, the shortest path routing from the source node to the destination node can be quickly determined to improve data routing efficiency.

[0012] In some embodiments, the multiple dimensions of the first layer topology network include a first dimension, a second dimension, and a third dimension, the first source port set includes a positive first source port and a negative first source port corresponding to the first dimension, the second dimension, and the third dimension, respectively, wherein the first data routing process includes: determining, for each of the first dimension, the second dimension, and the third dimension, an offset between a first source port number of the corresponding dimension of the source node and a first destination port number of the corresponding dimension of the destination node. If the offset is greater than or equal to a threshold value and the first source port number of the corresponding dimension of the source node is less than or equal to the first destination port number of the corresponding dimension of the destination node, then sending data from the negative first source port of the source node to the positive first source port of the destination node in the corresponding dimension; or, if the offset is greater than or equal to a threshold value and the first source port number of the corresponding dimension of the source node is greater than the first destination port number of the corresponding dimension of the destination node, then sending data from the positive first source port of the source node to the negative first destination port of the destination node in the corresponding dimension. Alternatively, if the offset is less than the threshold, and the first source port number of the corresponding dimension of the source node is less than or equal to the first destination port number of the corresponding dimension of the destination node, then data is sent from the positive first source port of the source node to the negative first destination port of the destination node on the corresponding dimension; or, if the offset is less than the threshold, and if the first source port number of the corresponding dimension of the source node is less than or equal to the first destination port number of the corresponding dimension of the destination node, then data is sent from the negative first source port of the source node to the positive first source port of the destination node on the corresponding dimension. According to an embodiment of the present disclosure, data routing can be implemented in a first-layer topology network directly based on the node coordinates corresponding to the port and dimension, so as to quickly achieve the shortest distance communication with the lowest communication delay.

[0013] In some embodiments, the plurality of computing nodes further include jump nodes, wherein the jump nodes include a first jump port set for a first layer topology network and a second jump port set for a second layer topology network, wherein the first jump port set includes a plurality of first jump ports corresponding to the dimensions of the first layer topology network, and the second jump port set includes at least one second jump port for connecting nodes in the second layer topology network, wherein the first jump port has a first jump port number and the second jump port has a second jump port number. The second data routing process includes: determining whether there is a direct link in the second layer topology network between the first node group to which the source node belongs and the first node group to which the destination node belongs. If there is a direct link in the second layer topology network, data is sent from the second source port of the source node to the second destination port of the destination node, and the first data routing process is performed between the first source port set of the source node and the first destination port set of the destination node. If there is no direct link in the second-layer topology network, data is sent from the second source port of the source node to the second jump port of the jump node in the second-layer topology network to forward the data from the second jump port of the jump node to the second destination port of the destination node, wherein a direct link in the second-layer topology network exists between the first node group to which the jump node belongs and the first node group to which the destination node belongs, and wherein the first data routing processing is performed between the first source port set of the source node and the first jump port set of the jump node and between the first jump port set of the jump node and the first destination port set of the destination node. According to an embodiment of the present disclosure, it is possible to implement data routing in each layer of topology network directly based on the node coordinates corresponding to the ports and different types of topology networks, across different types of topology networks, so as to quickly achieve the shortest distance communication with the lowest communication delay.

[0014] In some embodiments, the communication network also includes a third-layer topology network, wherein the second-layer topology network is nested in the third-layer topology network, and the third-layer topology network is based on a fully interconnected network topology structure composed of a third number of second node groups, and the third number of second node groups are interconnected in the third-layer topology network to form the third-layer topology network, wherein each of the multiple computing nodes includes at least a first port set corresponding to the first-layer topology network, a second port set corresponding to the second-layer topology network, and a third port set corresponding to the third-layer topology network, and the node coordinates of each of the multiple computing nodes in the communication network are determined based on the port number of the first port set, the port number of the second port set, and the port number of the third port set.

[0015] In some embodiments, the source node further includes a third source port set, the third source port set including at least one third source port for node connection in the third layer topology network, wherein the third source port has a third source port number, and the node coordinates of the source node in the plurality of computing nodes are indicated by the first source port number set, the second source port number, and the third source port number, wherein the third source port number is determined based on the first source port number of the first source port in the first source port set and the second source port number of the second source port in the second source port set, and the destination node further includes a third destination port set, the third destination port set including at least one third destination port for node connection in the third layer topology network, wherein the third destination The port has a third destination port number, and the node coordinates of the destination node in the multiple computing nodes are indicated by the first destination port number set, the second destination port number, and the third destination port number, wherein the third destination port number is determined based on the first destination port number of the first destination port in the first destination port set and the second destination port number of the second destination port in the second destination port set, and wherein determining the data routing path from the source node to the destination node further includes: determining the data routing path from the source node to the destination node based on the first source port number set, the second source port number, the third source port number, the first destination port number set, the second destination port number, and the third destination port number. According to the embodiments of the present disclosure, network expansion can be further achieved in a low-cost, low-power manner to cope with data routing systems of different network scales.

[0016] In some embodiments, determining the data routing path from the source node to the destination node further includes: determining whether the source node and the destination node are in the same second node group based on the third source port number of the source node and the third destination port number of the destination node, wherein a plurality of first node groups belonging to the second node group are in the same second-layer topology network; if it is determined that the source node and the destination node are not in the same second node group, performing a second data routing process for the second-layer topology network; if it is determined that the source node and the destination node are in the same second node group, performing a third data routing process for the third-layer topology network. According to an embodiment of the present disclosure, for a data communication system based on a Torus network topology and a multi-layer Full-mesh network topology, the shortest path routing from the source node to the destination node can be quickly determined to improve data routing efficiency.

[0017] In some embodiments, the jump node further includes a third jump port set, the third jump port including at least one third jump port for connecting nodes in the third layer topology network, wherein the third jump port has a third jump port number, and the third data routing process includes: determining whether there is a direct link in the third layer topology network between the second node group to which the source node belongs and the second node group to which the destination node belongs. If there is a direct link in the third layer topology network, data is sent from the third source port of the source node to the third destination port of the destination node, and based on the second source port number of the source node and the second destination port number of the destination node, it is determined whether the source node and the destination node are in the same first node group, so as to determine whether to perform the first data routing process for the first layer topology network or to perform the second data routing process for the second layer topology network. If there is no direct link in the third-layer topology network, data is sent from the third source port of the source node to the third jump port of the jump node of the third-layer topology network to forward the data from the third jump port of the jump node to the third destination port of the destination node, wherein a direct link in the third-layer topology network exists between the second node group to which the jump node belongs and the second node group to which the destination node belongs. In some embodiments, the plurality of computing nodes further include a ferry node, wherein the ferry node includes a first ferry port set for the first-layer topology network, a second ferry port set for the second-layer topology network, and a third jump port set for the third-layer topology network, wherein the first ferry port set includes a plurality of first ferry ports corresponding to the dimension of the first-layer topology network, the second ferry port set includes at least one second ferry port for connecting to nodes in the second-layer topology network, and the second ferry port includes at least one third ferry port for connecting to nodes in the third-layer topology network, wherein the first ferry port has a first ferry port number, the second ferry port has a second ferry port number, and the third ferry port has a third ferry port number. If there is no direct link in the third-layer topology network, the third data routing processing also includes: determining whether the jump node and the destination node are in the same first node group based on the second jump port number of the jump node and the second destination port number of the destination node; if it is determined that the jump node and the destination node are in the same first node group, executing the first data routing processing; if it is determined that the jump node and the destination node are not in the same first node group, determining whether there is a direct link in the second-layer topology network between the first node group to which the jump node belongs and the first node group to which the destination node belongs.If there is a direct link in the second-layer topology network, data is sent from the second jump port of the jump node to the second destination port of the destination node, and the first data routing process is performed between the first jump port set of the jump node and the first destination port set of the destination node. If there is no direct link in the second-layer topology network, data is sent from the second jump port of the jump node to the second ferry port of the ferry node in the second-layer topology network to forward the data from the second ferry port of the ferry node to the second destination port of the destination node, wherein a direct link in the second-layer topology network exists between the first node group to which the ferry node belongs and the first node group to which the destination node belongs, wherein the first data routing process is performed between the first jump port set of the jump node and the first ferry port set of the ferry node and between the first ferry port set of the ferry node and the first destination port set of the destination node. According to an embodiment of the present disclosure, the shortest path route from the source node to the destination node can be determined based on node coordinates with deterministic topological characteristics across different types of topology networks and different levels of topology networks to achieve the shortest distance communication with the lowest communication delay while effectively promoting hardware implementation.

[0018] In some embodiments, the positive first port and the negative first port corresponding to each of the multiple dimensions of the first layer topology network are configured with a first virtual channel and a second virtual channel. If the first source port number of the source node is less than or equal to the first destination port number of the destination node, data is sent from the first virtual channel of the positive first source port of the source node to the first virtual channel of the negative first destination port of the destination node. If the first port number of the source node is greater than the first port number of the destination node, data is sent from the second virtual channel of the positive first source port of the source node to the second virtual channel of the negative first destination port of the destination node. In some embodiments, the second port corresponding to the second layer topology network is configured with a third virtual channel and a fourth virtual channel, and the third port corresponding to the third layer topology network is configured with a fifth virtual channel and a sixth virtual channel. For global routing of the second layer topology network, data is sent from the third virtual channel of the second source port of the source node to the third virtual channel of the second destination port of the destination node. For the first global routing of the second layer topology network, data is sent from the fourth virtual channel of the second source port of the source node to the fourth virtual channel of the second destination port of the destination node. For global routing of the third-layer topology network, data is sent from the fifth virtual channel of the third source port of the source node to the fifth virtual channel of the third destination port of the destination node. For the first global routing of the third-layer topology network, data is sent from the sixth virtual channel of the third source port of the source node to the sixth virtual channel of the third destination port of the destination node. According to the embodiments of the present disclosure, port interleaving for data routing using virtual channels can effectively avoid the problem of communication dependency loops between nodes in each layer of topology network, thereby preventing the generation of deadlocks.

[0019] In some embodiments, the first layer topology network includes 27 nodes constituting a first node group, the second layer topology network includes 28 of the first node groups constituting a second node group, and the third layer topology network includes 757 of the second node groups. The first source port set includes six first source ports, the six first source ports including three positive first source ports and three negative first source ports corresponding to the three dimensions of the three-dimensional surround network topology, the second source port set includes one second source port for interconnection in a fully interconnected network topology, and the third source port set includes one third source port for interconnection in a fully interconnected network topology. The first destination port set includes six first destination ports, the six first destination ports including three positive first destination ports and three negative first destination ports corresponding to the three dimensions of the three-dimensional surround network topology, the second destination port set includes one second destination port for interconnection in a fully interconnected network topology, and the third destination port set includes one third destination port for interconnection in a fully interconnected network topology. According to the embodiments of the present disclosure, it is particularly suitable for the global communication of large AI models that adopt the Ring All-Reduce communication algorithm, so as to effectively meet the networking requirements of E-level supercomputers while effectively reducing the network diameter and communication delay.

[0020] In a second aspect of the present disclosure, a method for data routing between multiple computing nodes is provided. The multiple computing nodes include a source node and a destination node, wherein: the multiple computing nodes are located in a communication network that includes at least a first layer topology network and a second layer topology network, wherein the first layer topology network is nested in the second layer topology network, the first layer topology network is based on a surround network topology structure composed of a first number of nodes, the first number of nodes constitutes a first node group corresponding to the first layer topology network, the second layer topology network is based on a fully interconnected network topology structure composed of a second number of first node groups, the second number of first node groups constitutes a second node group corresponding to the second layer topology network, wherein each of the multiple computing nodes includes at least a first port set corresponding to the first layer topology network and a second port set corresponding to the second layer topology network, the source node includes a first source port set with a first source port number and a second source port set with a second source port number, and the destination node includes a first destination port set with a first destination port number and a second destination port set with a second destination port number. The method includes: the source node determines a data routing path from the source node to the destination node based on the first source port number, the second source port number, the first destination port number, and the second destination port number; the source node sends the data to the destination node based on the determined data routing path; and the destination node receives the data from the source node.

[0021] In some embodiments, the first number of nodes are interconnected in the first layer topology network in a manner that adjacent nodes are interconnected to form the first layer topology network, and the second number of first node groups are interconnected in the second layer topology network in a manner that each node is interconnected to form the second layer topology network, wherein the node coordinates of each of the multiple computing nodes in the communication network are determined based on the port number of the first port set and the port number of the second port set, wherein the first source port set includes multiple first source ports corresponding to the dimension of the first layer topology network, the second source port set includes at least one second source port for node connection in the second layer topology network, and the first destination port set includes multiple first destination ports corresponding to the dimension of the first layer topology network, and the second destination port set includes at least one second destination port for node connection in the second layer topology network.

[0022] In some embodiments, the node coordinates of the source node in the first layer topology network are indicated by a first source port number set, the first source port number set including the first source ports and the first source port numbers corresponding to each dimension of the first layer topology network respectively; the node coordinates of the destination node in the first layer topology network are indicated by a first destination port number set, the first destination port number set including the first destination ports and the first destination port numbers corresponding to each dimension of the first layer topology network respectively; the node coordinates of the source node in the multiple computing nodes are indicated by the first source port number set and the second source port number, wherein the second source port number is determined based on the first source port number of the first source port in the first source port set; the node coordinates of the destination node in the multiple computing nodes are indicated by the first destination port number set and the second destination port number, wherein the second destination port number is determined based on the first destination port number of the first destination port in the first destination port set.

[0023] In some embodiments, determining the data routing path from the source node to the destination node includes: determining whether the source node and the destination node are in the same first node group based on the second source port number of the source node and the second destination port number of the destination node, wherein a plurality of nodes belonging to the first node group are in the same first layer topology network; if it is determined that the source node and the destination node are in the same first node group, performing a first data routing processing for the first layer topology network; if it is determined that the source node and the destination node are not in the same first node group, performing a second data routing processing for the second layer topology network.

[0024] In some embodiments, the communication network also includes a third-layer topology network, wherein the second-layer topology network is nested in the third-layer topology network, and the third-layer topology network is based on a fully interconnected network topology structure composed of a third number of second node groups, and the third number of second node groups are interconnected in the third-layer topology network to form the third-layer topology network, wherein each of the multiple computing nodes includes at least a first port set corresponding to the first-layer topology network, a second port set corresponding to the second-layer topology network, and a third port set corresponding to the third-layer topology network, and the node coordinates of each of the multiple computing nodes in the communication network are determined based on the port number of the first port set, the port number of the second port set, and the port number of the third port set.

[0025] In some embodiments, the source node further includes a third source port set, the third source port set including at least one third source port for node connection in the third layer topology network, wherein the third source port has a third source port number, and the node coordinates of the source node in the plurality of computing nodes are indicated by the first source port number set, the second source port number, and the third source port number, wherein the third source port number is determined based on the first source port number of the first source port in the first source port set and the second source port number of the second source port in the second source port set, and the destination node further includes a third destination port set, the third destination port set including at least one third destination port for node connection in the third layer topology network, wherein the third destination The port has a third destination port number, and the node coordinates of the destination node in the multiple computing nodes are indicated by the first destination port number set, the second destination port number and the third destination port number, wherein the third destination port number is determined based on the first destination port number of the first destination port in the first destination port set and the second destination port number of the second destination port in the second destination port set, and wherein determining the data routing path from the source node to the destination node further includes: determining the data routing path from the source node to the destination node based on the first source port number set, the second source port number, the third source port number, the first destination port number set, the second destination port number and the third destination port number.

[0026] In a third aspect of the present disclosure, a device for data routing between a plurality of computing nodes is provided. The device corresponds to at least the source node, wherein: the plurality of computing nodes are located in a communication network comprising at least a first layer topology network and a second layer topology network, wherein the first layer topology network is nested within the second layer topology network, the first layer topology network is based on a surround network topology structure consisting of a first number of nodes, the first number of nodes constituting a first node group corresponding to the first layer topology network, the second layer topology network is based on a fully interconnected network topology structure consisting of a second number of first node groups, the second number of first node groups constituting a second node group corresponding to the second layer topology network, wherein each of the plurality of computing nodes comprises at least a first port set corresponding to the first layer topology network and a second port set corresponding to the second layer topology network, the source node comprises a first source port set having a first source port number and a second source port set having a second source port number, and the destination node comprises a first destination port set having a first destination port number and a second destination port set having a second destination port number. The device includes: a number acquisition module, which is configured to acquire a first source port number and a second source port number of the source node, and acquire a first destination port number and a second destination port number of the destination node; a path determination module, which is configured to determine a data routing path from the source node to the destination node based on the first source port number, the second source port number, the first destination port number, and the second destination port number; and a data transmission module, which is configured to send the data to the destination node based on the determined data routing path.

[0027] On another side of the third aspect of the present disclosure, there is provided a device for data routing between a plurality of computing nodes. The plurality of computing nodes include a source node and a destination node, and the device corresponds to at least the destination node, wherein: the plurality of computing nodes are located in a communication network including at least a first layer topology network and a second layer topology network, wherein the first layer topology network is nested in the second layer topology network, the first layer topology network is based on a surround network topology structure composed of a first number of nodes, the first number of nodes constitute a first node group corresponding to the first layer topology network, the second layer topology network is based on a fully interconnected network topology structure composed of a second number of first node groups, the second number of first node groups constitute a second node group corresponding to the second layer topology network, wherein each of the plurality of computing nodes includes at least a first port set corresponding to the first layer topology network and a second port set corresponding to the second layer topology network, the source node includes a first source port set having a first source port number and a second source port set having a second source port number, and the destination node includes a first destination port set having a first destination port number and a second destination port set having a second destination port number. The apparatus includes a data transmission module configured to receive data transmitted based on a data routing path from the source node to the destination node, wherein the data routing path is determined based on the first source port number, the second source port number, the first destination port number, and the second destination port number.

[0028] In a fourth aspect of the present disclosure, a computing device is provided, which is a source node for data routing among a plurality of computing nodes, and the plurality of computing nodes are located in a communication network including at least a first layer topology network and a second layer topology network, wherein the first layer topology network is nested in the second layer topology network, the first layer topology network is based on a surround network topology structure composed of a first number of nodes, the first number of nodes constitute a first node group corresponding to the first layer topology network, the second layer topology network is based on a fully interconnected network topology structure composed of a second number of first node groups, the second number of first node groups constitute a second node group corresponding to the second layer topology network, wherein each of the plurality of computing nodes includes at least a first port set corresponding to the first layer topology network and a second port set corresponding to the second layer topology network, the computing device includes a first source port set with a first source port number and a second source port set with a second source port number, and the destination node corresponding to the source node among the plurality of computing nodes includes a first destination port set with a first destination port number and a second destination port set with a second destination port number. The computing device includes: a processor; and a memory, wherein the memory stores instructions, and when the instructions are executed by the processor, the computing device performs the following operations: obtaining a first source port number and a second source port number of the source node, and obtaining a first destination port number and a second destination port number of the destination node; determining a data routing path from the source node to the destination node based on the first source port number, the second source port number, the first destination port number, and the second destination port number; and sending the data to the destination node based on the determined data routing path. In some embodiments, the computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.

[0029] On another side of the fourth aspect of the present disclosure, a computing device is provided, wherein the computing device is the destination node among a plurality of computing nodes including a source node and a destination node, and the plurality of computing nodes are located in a communication network including at least a first layer topology network and a second layer topology network, wherein the first layer topology network is nested in the second layer topology network, the first layer topology network is based on a surround network topology structure composed of a first number of nodes, the first number of nodes constitute a first node group corresponding to the first layer topology network, the second layer topology network is based on a fully interconnected network topology structure composed of a second number of first node groups, the second number of first node groups constitute a second node group corresponding to the second layer topology network, wherein each of the plurality of computing nodes includes at least a first port set corresponding to the first layer topology network and a second port set corresponding to the second layer topology network, the computing device includes a first source port set with a first source port number and a second source port set with a second source port number, and the destination node includes a first destination port set with a first destination port number and a second destination port set with a second destination port number. The computing device includes: a processor; and a memory storing instructions, which, when executed by the processor, cause the computing device to: receive data transmitted based on a data routing path from the source node to the destination node, wherein the data routing path is determined based on the first source port number, the second source port number, the first destination port number, and the second destination port number.

[0030] In a fifth aspect of the present disclosure, a computing device cluster is provided, characterized in that it includes at least one computing device according to the fourth aspect and another aspect of the present disclosure, each computing device includes a processor and a memory, and the processor of the at least one computing device is used to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster performs: obtaining a first source port number and a second source port number of a source node, and obtaining a first destination port number and a second destination port number of a destination node; determining a data routing path from the source node to the destination node based on the first source port number, the second source port number, the first destination port number, and the second destination port number; and sending the data from the source node to the destination node based on the determined data routing path, or receiving data transmitted based on the data routing path from the source node to the destination node. In some embodiments, the computing device cluster includes one computing device. In other embodiments, the computing device cluster includes multiple computing devices.

[0031] In a sixth aspect of the present disclosure, a computer-readable storage medium is provided, characterized in that the computer-readable storage medium stores instructions, which, when executed by a computing device according to the fourth aspect and another aspect of the present disclosure, cause the computing device to execute: obtaining a first source port number and a second source port number of a source node, and obtaining a first destination port number and a second destination port number of a destination node; determining a data routing path from the source node to the destination node based on the first source port number, the second source port number, the first destination port number, and the second destination port number; and sending the data from the source node to the destination node based on the determined data routing path, or receiving data transmitted based on the data routing path from the source node to the destination node. In some embodiments, the computer-readable storage medium may be non-transitory. Computer-readable storage media include, but are not limited to, volatile memory (e.g., random access memory), non-volatile memory (e.g., flash memory, hard disk (HDD), solid state drive (SSD), etc.).

[0032] In the seventh aspect of the present disclosure, a computer program product is provided, characterized in that the computer program product includes instructions, which, when executed by a computing device according to the fourth aspect and another aspect of the present disclosure, cause the computing device to execute: obtaining a first source port number and a second source port number of a source node, and obtaining a first destination port number and a second destination port number of a destination node; determining a data routing path from the source node to the destination node based on the first source port number, the second source port number, the first destination port number, and the second destination port number; and sending the data from the source node to the destination node based on the determined data routing path, or receiving data transmitted based on the data routing path from the source node to the destination node. In some embodiments, the program product may include one or more software installation packages. When it is necessary to use the method provided by the first aspect or its possible variations, the software installation package can be downloaded or copied and executed on a computing device.

[0033] It should be understood that the contents described in the Summary of the Invention section are not intended to limit the key or important features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become readily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0034] The accompanying drawings, which constitute a part of the specification, illustrate embodiments of the present disclosure and, together with the specification, are used to explain the principles of the present disclosure. The present disclosure can be more clearly understood from the following detailed description with reference to the accompanying drawings, in which:

[0035] FIG1A shows a schematic diagram of a data routing system according to an embodiment of the present disclosure;

[0036] FIG1B shows a schematic diagram illustrating an exemplary configuration structure of a node according to an embodiment of the present disclosure;

[0037] FIG2A shows a schematic diagram of a data routing process according to an embodiment of the present disclosure;

[0038] FIG2B shows an example flow chart of a data routing method according to an embodiment of the present disclosure;

[0039] FIG2C shows an example flow chart of a data routing path determination process according to an embodiment of the present disclosure;

[0040] FIG3A shows a schematic diagram of a data routing process according to an embodiment of the present disclosure;

[0041] FIG3B shows an example flow chart of a data routing path determination process according to an embodiment of the present disclosure;

[0042] FIG4A shows a further schematic example diagram of a data routing system according to an embodiment of the present disclosure;

[0043] FIG4B shows a further schematic example diagram of a data routing system according to an embodiment of the present disclosure;

[0044] FIG4C shows a schematic diagram of an exemplary node structure according to an embodiment of the present disclosure;

[0045] FIG4D shows another schematic diagram of a node structure according to an embodiment of the present disclosure;

[0046] FIG5 shows a further schematic flow chart of a data routing method according to an embodiment of the present disclosure;

[0047] FIG6A shows a schematic diagram of an exemplary deadlock avoidance method according to an embodiment of the present disclosure;

[0048] FIG6B shows a schematic diagram of an exemplary deadlock avoidance method according to an embodiment of the present disclosure;

[0049] FIG7 shows a schematic block diagram of a data routing device according to some embodiments of the present disclosure;

[0050] FIG8 shows a schematic block diagram of an example device that can be used to implement an example implementation of the present disclosure;

[0051] FIG9 illustrates a schematic block diagram of an example device cluster that may be used to implement example implementations of the present disclosure; and

[0052] FIG10 shows a schematic block diagram of another example device that can be used to implement example implementations of the present disclosure. DETAILED DESCRIPTION

[0053] The following describes embodiments of the present disclosure in more detail with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as limited to the embodiments described herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are for illustrative purposes only and are not intended to limit the scope of protection of the present disclosure.

[0054] In the description of the embodiments of the present disclosure, the term "including" and similar terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc. can refer to different or the same objects. The term "and / or" means at least one of the two items it is associated with. For example, "A and / or B" means A, B, or A and B. Other explicit and implicit definitions may also be included below.

[0055] It should be understood that in the technical solutions provided by the embodiments of the present application, some repetitions may not be repeated in the introduction of the following specific embodiments, but these specific embodiments should be regarded as having been referenced to each other and can be combined with each other.

[0056] For the network topology of a computing system used for large-scale computing, it is necessary to consider multiple network characteristics such as the access port scale, the number of switches, the number of links, the network diameter (for example, the number of hops), and business adaptability. In some specific implementations, when a tree network topology is adopted, as the system scale expands, the network cost and energy consumption increase linearly. In other specific implementations, when a fully interconnected network topology is adopted, the expansion of the system scale is limited by the switch specifications, and the number of ports on the switch is high, which cannot meet the networking requirements of computing systems used for E-class supercomputers, for example. In some other specific implementations, when a surround network topology is adopted, as the system scale expands, the communication delay increases linearly, resulting in poor global communication performance of the computing system.

[0057] The inventors of this disclosure discovered that the biggest challenges of large-scale networks involving multiple nodes lie in network scale and system energy consumption. This requires high-radix switches to provide high-bandwidth, low-latency communication capabilities during data routing. However, the network topology in the above-mentioned specific implementation is primarily limited by the power consumption and manufacturing process of high-radix switches. Therefore, the inventors of this disclosure considered providing a network topology that provides global communication performance suitable for large-scale networking. To this end, this disclosure provides a solution for data routing between multiple computing nodes. In the solution of the present disclosure, multiple computing nodes are located in a communication network that includes at least a first-layer topology network and a second-layer topology network, wherein the first-layer topology network is nested in the second-layer topology network, the first-layer topology network is based on a surround network topology structure composed of a first number of nodes (e.g., a Torus network), the first number of nodes constitute a first node group corresponding to the first-layer topology network, the second-layer topology network is based on a fully interconnected network topology structure composed of a second number of first node groups (e.g., a Full-mesh network), the second number of first node groups constitute a second node group corresponding to the second-layer topology network, wherein each of the multiple computing nodes includes at least a first port set corresponding to the first-layer topology network and a second port set corresponding to the second-layer topology network. According to an embodiment of the present disclosure, by nesting the surround network in the overall topology structure of the fully interconnected network, it is possible to utilize the multipath characteristics of the surround network topology and the global communication characteristics of the fully interconnected network topology to provide a large-scale networking suitable for high bandwidth, low latency, and high throughput requirements.

[0058] FIG1A shows a schematic diagram of a data routing system according to an embodiment of the present disclosure. For example, as shown in FIG1A , the data routing system 10 includes a plurality of nodes (hereinafter sometimes collectively referred to as “nodes 110”), wherein the plurality of nodes 110 are located in a communication network 140 that includes at least a first-layer topology network (e.g., 120-1, 120-2, ..., 120-Q, hereinafter sometimes collectively referred to as “first-layer topology network 120”) and a second-layer topology network 130. In an embodiment of the present disclosure, a first-layer topology network 120 is nested within a second-layer topology network 130, wherein the first-layer topology network 120 is based on a ring network topology structure composed of a first number of nodes (e.g., 110-1, 110-2, ..., 110-P, where P is a positive integer greater than 1), the first number of nodes constituting a first node group (e.g., 120-1, 120-2, ..., 120-Q, where Q is a positive integer greater than 1) corresponding to the first-layer topology network 120, and the second-layer topology network 130 is based on a fully interconnected network topology structure composed of a second number of first node groups, the second number of first node groups constituting a second node group corresponding to the second-layer topology network 130. In an embodiment of the present disclosure, each of the plurality of nodes 110 includes at least a first port set corresponding to the first-layer topology network 120 and a second port set corresponding to the second-layer topology network 130. It should be understood that in the embodiments of the present disclosure, as shown in FIG1A , each layer of topology network can be nested in the form of an N-layer topology network (where N is a positive integer greater than 1). For example, the second-layer topology network can be further nested in the third-layer topology network, and the third-layer topology network can be further nested in the fourth-layer topology network, and so on. In some embodiments, the first-layer topology network can be based on a surround network topology structure, and the second-layer topology network and the subsequent nested layers of topology networks can be based on a fully interconnected network topology structure. It should be understood that the number of networks in each layer of the N-layer topology network, such as the second-layer topology network and the third-layer topology network, is not particularly limited.

[0059] In an embodiment of the present disclosure, the node 110 can be implemented as a physical node or as a virtual node. In some embodiments, one or more of the multiple nodes 110 can be deployed on one or more physical nodes, or on one or more virtual nodes, or on any combination of physical nodes and virtual nodes. In an embodiment of the present disclosure, a node can also be referred to as a computing node. In some specific implementations, the node 110 can be a client device, a server device, a workstation, or a device that includes at least a hub, a switch, a router, etc. to be suitable for the data routing system of the present disclosure. It should be understood that the present disclosure does not limit the specific implementation of the node, as long as it has a certain computing power and data transmission capacity to implement all or part of the data routing system according to the embodiment of the present disclosure, or all or part of the driver. In an embodiment of the present disclosure, the communication network 140 for connecting the multiple nodes 110 of the data routing system 10 can include, for example, a local area network (LAN), a wide area network (WAN), the Internet, a virtual LAN (VLAN), an enterprise LAN, a layer 3 virtual private network (VPN), an intranet, or any combination thereof. It should be understood that the nodes in the data routing system 10 can communicate with each other directly via the communication network 140, or can communicate with each other indirectly via any node connected to the communication network 140, or of course, they can not communicate with each other. In an embodiment of the present disclosure, the multiple nodes 110 may include a source node and a target node, where the source node is the node that originates the data and the target node is the node that receives the data. In some embodiments, the data routing path from the source node to the target node may also include a jump node, where the jump node is a node for forwarding data. In some embodiments, the data routing path from the source node to the target node via the jump node may also include a ferry node, where the ferry node is a node for further forwarding data. It should be understood that the data routing path from the source node to the target node may also include more or fewer nodes, and the present disclosure does not impose any particular limitation on this. It should be understood that in an embodiment of the present disclosure, the data routed in the data routing system 10 can be exchanged between the nodes 110 of the communication network 140 using a predefined network communication protocol, such as certain known wired protocols, wireless protocols, PLC protocols, or other suitable data transmission protocols. The present disclosure does not impose any particular restrictions on this. According to the embodiments of the present disclosure, by nesting the surround network within the overall topology of the fully interconnected network, it is possible to utilize the multipath characteristics of the surround network topology and the global communication characteristics of the fully interconnected network topology to provide large-scale networking suitable for high bandwidth, low latency, and high throughput requirements.

[0060] In an embodiment of the present disclosure, the first number of nodes are interconnected in the first layer topology network 120 in a manner that adjacent nodes are interconnected, thereby forming the first layer topology network 120. In some embodiments, the second number of first node groups are interconnected in the second layer topology network 130 in a manner that they are interconnected, thereby forming the second layer topology network 130. In an embodiment of the present disclosure, the node coordinates of each of the plurality of nodes in the communication network 140 are determined based on the port number of the first port set and the port number of the second port set. Below, an example of a node configuration of an embodiment of the present disclosure is further described.

[0061] Figure 1B shows a schematic example diagram of the configuration structure of a node according to an embodiment of the present disclosure. For example, as shown in Figure 1B, node 110 may include multiple ports 111-1, 111-2, ..., 111-N (hereinafter sometimes collectively referred to as "port 111") for data routing of node 110 in the data routing system 10. In an embodiment of the present disclosure, port 111 may be configured to correspond to the topological network level where node 110 is located, for data transmission of node 110 in the topological network of the corresponding level. In an embodiment of the present disclosure, port 111 may be configured as different port sets corresponding to different topological network levels where node 110 is located. In some embodiments, the first-layer topological network where node 110 is located corresponds to a first port set of port 111, the second-layer topological network where node 110 is located corresponds to a second port set of port 111, the third-layer topological network where node 110 is located corresponds to a third port set of port 111, and so on. In an embodiment of the present disclosure, each port in port 111 has a corresponding port number, and the port number set of the corresponding ports in port 111 can be used to indicate the node coordinates of node 111 in the topological network of data routing system 10. In an embodiment of the present disclosure, when node 110 acts as a source node, port 111 can function as a source port for sending data, and when node 110 acts as a destination node, port 111 can function as a destination port for receiving data. In some embodiments, when node 110 acts as a jump node, port 111 can function as a jump port for forwarding data, and when node 110 acts as a ferry node, port 111 can function as a ferry port for further forwarding data. It should be understood that the operation or function of port 111 of node 110 is not particularly limited, and it can function synchronously or asynchronously as one or more of a source port, a destination port, a jump port, or a ferry port, and of course can also include other functions or other operations. In this way, by further utilizing the low-port router expansion characteristics of the surround network topology to determine the node coordinates in the first-layer topology network, and using the ports of each layer corresponding to the fully interconnected network topology to determine the node coordinates in each layer, the node coordinates in the entire communication network can be simply determined. This makes it suitable for coordinate identification and path search in large-scale networking, thereby effectively reducing the physical cost and power consumption of the network while greatly improving the network communication efficiency, reducing communication delays, and increasing network throughput.

[0062] FIG2A shows a schematic example diagram of a data routing process according to an embodiment of the present disclosure. As shown in FIG2A , the data routing system 10 includes at least a first-layer topology network L1 (e.g., corresponding to the first-layer topology network 120 shown in FIG1A ) and a second-layer topology network L2, wherein the first-layer topology network L1 is included in the second-layer topology network L2 (e.g., corresponding to the first-layer topology network 130 shown in FIG1A ) in a nested manner. In some embodiments, the first-layer topology network L1 is included in the second-layer topology network L2 in a nested manner. In the embodiment shown in FIG2A , the node 110-1 among the multiple nodes shown in FIG1A is, for example, a source node, and the node 110-2 is, for example, a destination node. In a specific example of the present disclosure, the source node 110-1 includes a first source port set 211 for the first layer topology network L1 and a second source port set 221 for the second layer topology network L2, wherein the first source port set 211 includes multiple first source ports 211-1, ..., 211-N corresponding to the dimensions of the first layer topology network L1, and the second source port set 221 includes at least one second source port 221-1, ..., 221-N for connecting to nodes in the second layer topology network L2, wherein the first source port has a first source port number and the second source port has a second source port number. In a specific example of the present disclosure, the destination node 110-2 includes a first destination port set 212 for the first layer topology network L1 and a second destination port set 222 for the second layer topology network L2, wherein the first destination port set 212 includes multiple first destination ports 212-1, ..., 212-N corresponding to the dimensions of the first layer topology network L1, and the second destination port set 222 includes at least one second destination port 222-1, ..., 222-N for connecting to nodes in the second layer topology network L2, wherein the first destination port has a first destination port number and the second destination port has a second destination port number. In an embodiment of the present disclosure, the node coordinates of the source node in the first layer topology network are indicated by a first source port number set, and the first source port number set includes first source port numbers and first source port numbers corresponding to each dimension of the first layer topology network, respectively. In some embodiments, the node coordinates of the destination node in the first layer topology network are indicated by a first destination port number set, and the first destination port number set includes first destination port numbers and first destination port numbers corresponding to each dimension of the first layer topology network, respectively. In some embodiments, the node coordinates of the source node in multiple computing nodes are indicated by a first source port number set and a second source port number, wherein the second source port number is determined based on the first source port number of the first source port in the first source port set, and the node coordinates of the destination node in multiple computing nodes are indicated by a first destination port number set and a second destination port number, wherein the second destination port number is determined based on the first destination port number of the first destination port in the first destination port set.In some embodiments, the node coordinates of the source node 110-1 in the topological network of the data routing system 10 can be, for example, {a sequence consisting of the second source port numbers of each second source port in the second source port set, and a sequence consisting of the first source port numbers of each first source port in the first source port set}, and the node coordinates of the destination node 110-2 in the topological network of the data routing system 10 can be, for example, {a sequence consisting of the second destination port numbers of each second destination port in the second destination port set, and a sequence consisting of the first destination port numbers of each first destination port in the first destination port set}.

[0063] FIG2B shows an example flow chart of a data routing method according to an embodiment of the present disclosure. As shown in FIG2B , at block 251, a first source port number and a second source port number of a source node are obtained. At block 253, a first destination port number and a second destination port number of a destination node are obtained. At block 255, a data routing path from the source node to the destination node is determined based on the first source port number, the second source port number, the first destination port number, and the second destination port number. At block 257, data is sent to the destination node based on the determined data routing path. In a specific implementation of the data routing process shown in FIG2A , for example, when source node 110-1 sends data to destination node 110-2, source node 110-1 obtains the first source port number of the first source port set 211 of source node 110-1 and the second source port number of the second source port set 221, and obtains the first destination port number of the first destination port set 212 and the second destination port number of the second destination port set 222 of destination node 110-2. Source node 110-1 determines a data routing path from source node 110-1 to destination node 110-2 based on the first source port number, the second source port number, the first destination port number, and the second destination port number. The data routing path may be implemented in a first-layer topology network L1, in a first-layer topology network L1 and a second-layer topology network L2, or in other layers of topology networks. Source node 110-1 then sends data to destination node 110-2 in data routing system 10 based on the determined data routing path. In an embodiment of the present disclosure, determining the data routing path from the source node to the destination node at block 255 shown in FIG. 2B may include further data routing path determination processing as shown in FIG. At block 270, based on the second source port number of source node 110-1 and the second destination port number of destination node 110-2, it is determined whether source node 110-1 and destination node 110-2 are in the same first node group, wherein the plurality of nodes belonging to the first node group are in the same first-layer topology network L1. If it is determined at block 270 that the source node 110-1 and the destination node 110-2 are in the same first node group, a first data routing process for the first layer topology network L1 is performed at block 271. If it is determined at block 271 that the source node 110-1 and the destination node 110-2 are not in the same first node group, a second data routing process for the second layer topology network L2 is performed at block 272.

[0064] In an embodiment of the present disclosure, the multiple dimensions of the first layer topology network L1 include a first dimension, a second dimension, and a third dimension, and the first source port set includes a positive first source port and a negative first source port corresponding to the first dimension, the second dimension, and the third dimension, respectively. In some embodiments, the first data routing process performed at block 271 shown in FIG. 2C may further include processing from blocks 2711 to 2713. For example, at block 2711, for each of the first, second, and third dimensions, an offset is determined between the first source port number of the corresponding dimension of source node 110-1 and the first destination port number of the corresponding dimension of destination node 110-2. If, at block 2711, the offset is determined to be greater than or equal to a threshold, and the first source port number of the corresponding dimension of source node 110-1 is less than or equal to the first destination port number of the corresponding dimension of destination node 110-2, then, at block 2712, data is sent from the negative first source port of source node 110-1 to the positive first destination port of destination node 110-2 in the corresponding dimension. If it is determined at block 2711 that the offset is greater than or equal to the threshold, and the first source port number of the corresponding dimension of the source node 110-1 is greater than the first destination port number of the corresponding dimension of the destination node 110-2, then at block 2713, data is sent from the positive first source port of the source node 110-1 to the negative first destination port of the destination node 110-2 in the corresponding dimension. If it is determined at block 2711 that the offset is less than the threshold, and the first source port number of the corresponding dimension of the source node 110-1 is less than or equal to the first destination port number of the corresponding dimension of the destination node 110-2, then at block 2713, data is sent from the positive first source port of the source node 110-1 to the negative first destination port of the destination node 110-2 in the corresponding dimension. If it is determined at box 2711 that the offset is less than the threshold, and if the first source port number of the corresponding dimension of the source node 110-1 is less than or equal to the first destination port number of the corresponding dimension of the destination node 110-2, then at box 2712, data is sent from the negative first source port of the source node 110-1 to the positive first source port of the destination node 110-2 on the corresponding dimension.

[0065] In an embodiment of the present disclosure, the plurality of computing nodes further include a jump node (not shown), wherein the jump node includes a first jump port set for the first layer topology network L1 and a second jump port set for the second layer topology network L2, wherein the first jump port set includes a plurality of first jump ports corresponding to the dimensions of the first layer topology network L1, and the second jump port set includes at least one second jump port for connecting to nodes in the second layer topology network L2, wherein the first jump port has a first jump port number and the second jump port has a second jump port number. In some embodiments, the second data routing process performed at block 272 shown in FIG. 2C includes the processes of blocks 2721 to 2723. For example, at block 2721, a determination is made as to whether a direct link in the second layer topology network L2 exists between the first node group to which the source node 110-1 belongs and the first node group to which the destination node 110-2 belongs. If it is determined at box 2721 that there is a direct link in the second layer topology network L2, then at box 2722, data is sent from the second source port of the source node 110-1 to the second destination port of the destination node 110-2, and a first data routing process is performed between the first source port set of the source node 110-1 and the first destination port set of the destination node 110-2. If it is determined at box 2721 that there is no direct link in the second layer topology network L2, then at box 2723, data is sent from the second source port of the source node 110-1 to the second jump port of the jump node in the second layer topology network L2 to forward the data from the second jump port of the jump node to the second destination port of the destination node 110-2, wherein there is a direct link in the second layer topology network L2 between the first node group to which the jump node belongs and the first node group to which the destination node 110-2 belongs, and wherein first data routing processing is performed between the first source port set of the source node 110-1 and the first jump port set of the jump node and between the first jump port set of the jump node and the first destination port set of the destination node 110-2.

[0066] FIG3A shows a schematic example diagram of a data routing process according to an embodiment of the present disclosure. As shown in FIG3A , the data routing system 10 includes at least a first-layer topology network L1, a second-layer topology network L2, and a third-layer topology network L3, wherein the first-layer topology network L1 is included in the second-layer topology network L2, and the second-layer topology network L2 is further included in the third-layer topology network L3. In the embodiment shown in FIG3A , the node 110-1 among the multiple nodes shown in FIG1A is, for example, a source node, and the node 110-2 is, for example, a destination node. In a specific example of the present disclosure, the source node 110-1 further includes a third source port set 231 based on the embodiment shown in FIG2A , and the third source port set 231 includes at least one third source port 231-1, ..., 231-N for connecting nodes in the third-layer topology network, wherein the third source port has a third source port number. In some embodiments, the node coordinates of the source node in the plurality of computing nodes are indicated by a first source port number set, a second source port number, and a third source port number, wherein the third source port number is determined based on the first source port number of the first source port in the first source port set and the second source port number of the second source port in the second source port set. In a specific example of the present disclosure, the destination node 110-2 further includes a third destination port set 232 based on the embodiment shown in FIG2A , and the third destination port set 232 includes at least one third destination port 232-1, ..., 232-N for connecting to nodes in the third layer topology network L2. In some embodiments, the third destination port has a third destination port number, and the node coordinates of the destination node in the plurality of computing nodes are indicated by the first destination port number set, the second destination port number, and the third destination port number, wherein the third destination port number is determined based on the first destination port number of the first destination port in the first destination port set and the second destination port number of the second destination port in the second destination port set.

[0067] In an embodiment of the present disclosure, determining a data routing path from source node 110-1 to destination node 110-2 may further include determining the data routing path from source node 110-1 to destination node 110-2 based on a first source port number set, a second source port number, a third source port number, a first destination port number set, a second destination port number, and a third destination port number. FIG3B illustrates further data routing path determination processing according to an embodiment of the present disclosure. As shown in FIG3B , at block 301, the first source port number, the second source port number, and the third source port number of source node 110-1 are obtained. At block 303, the first destination port number, the second destination port number, and the third destination port number of destination node 110-2 are obtained. At block 305, the data routing path from source node 110-1 to destination node 110-2 is determined based on the first source port number set, the second source port number, the third source port number, the first destination port number set, the second destination port number, and the third destination port number. At block 307, based on the third source port number of source node 110-1 and the third destination port number of destination node 110-2, a determination is made as to whether source node 110-1 and destination node 110-2 are in the same second node group, wherein the plurality of first node groups belonging to the second node group are in the same second-layer topology network L2. If it is determined at block 301 that source node 110-1 and destination node 110-2 are not in the same second node group, then at block 309, a second data routing process for the second-layer topology network L2 is performed. If it is determined at block 307 that source node 110-1 and destination node 110-2 are in the same second node group, then at block 311, a third data routing process for the third-layer topology network L2 is performed.

[0068] In an embodiment of the present disclosure, the jump node further includes a set of third jump ports, the third jump ports including at least one third jump port for connecting to nodes in the third layer topology network L2, wherein the third jump port has a third jump port number. In some embodiments, the third data routing process performed at block 311 may include blocks 3111 to 3118. For example, at block 3111, a determination is made as to whether a direct link in the third layer topology network L2 exists between the second node group to which the source node 110-1 belongs and the second node group to which the destination node 110-2 belongs. In some embodiments, if it is determined at box 3111 that there is a direct link in the third-layer topology network L2, then at box 3112, data is sent from the third source port of the source node 110-1 to the third destination port of the destination node 110-2, and based on the second source port number of the source node 110-1 and the second destination port number of the destination node 110-2, it is determined whether the source node 110-1 and the destination node 110-2 are in the same first node group to determine whether to perform the first data routing processing for the first-layer topology network L1 or to perform the second data routing processing for the second-layer topology network L2. In other embodiments, if it is determined at box 3111 that there is no direct link in the third-layer topology network L2, then at box 3113, data is sent from the third source port of the source node 110-1 to the third jump port of the jump node in the third-layer topology network L2 to forward the data from the third jump port of the jump node to the third destination port of the destination node 110-2, where there is a direct link in the third-layer topology network L2 between the second node group to which the jump node belongs and the second node group to which the destination node 110-2 belongs.

[0069] In an embodiment of the present disclosure, the plurality of computing nodes further include a ferry node (not shown), wherein the ferry node includes a first ferry port set for the first layer topology network L1, a second ferry port set for the second layer topology network L2, and a third jump port set for the third layer topology network L2, wherein the first ferry port set includes a plurality of first ferry ports corresponding to the dimensions of the first layer topology network L1, the second ferry port set includes at least one second ferry port for connecting nodes in the second layer topology network L2, and the third ferry port includes at least one third ferry port for connecting nodes in the third layer topology network L2, wherein the first ferry port has a first ferry port number, the second ferry port has a second ferry port number, and the third ferry port has a third ferry port number. If there is no direct link in the third layer topology network L2 at box 3111, then at box 3114, based on the second jump port number of the jump node and the second destination port number of the destination node 110-2, it is determined whether the jump node and the destination node 110-2 are in the same first node group. If it is determined at block 3114 that the jump node and the destination node 110-2 are in the same first node group, a first data routing process is performed at block 3115. If it is determined at block 3114 that the jump node and the destination node 110-2 are not in the same first node group, a determination is made at block 3116 whether a direct link in the second layer topology network L2 exists between the first node group to which the jump node belongs and the first node group to which the destination node 110-2 belongs. If it is determined at block 3116 that a direct link in the second layer topology network L2 exists, data is sent from the second jump port of the jump node to the second destination port of the destination node 110-2 at block 3117, and a first data routing process is performed between the first jump port set of the jump node and the first destination port set of the destination node 110-2. If it is determined at box 3116 that there is no direct link in the second layer topology network L2, then at box 3118, data is sent from the second jump port of the jump node to the second ferry port of the ferry node in the second layer topology network L2 to forward the data from the second ferry port of the ferry node to the second destination port of the destination node 110-2, wherein there is a direct link in the second layer topology network L2 between the first node group to which the ferry node belongs and the first node group to which the destination node 110-2 belongs, wherein a first data routing processing is performed between the first jump port set of the jump node and the first ferry port set of the ferry node and between the first ferry port set of the ferry node and the first destination port set of the destination node 110-2.

[0070] Figures 4A and 4B show further schematic example diagrams of a data routing system according to an embodiment of the present disclosure. The difference between Figures 4A and 4B lies in the specific configuration of the node structure. As an exemplary illustration, the data routing system 10 shown in Figures 4A and 4B includes at least a first-layer topology network L1 adopting a Torus topology structure, a second-layer topology network L2 adopting a Full-Mesh topology structure, and a third-layer topology network L3 adopting a Full-Mesh topology structure. In an embodiment of the present disclosure, the data routing system 10 based on the first-layer topology network L1, the second-layer topology network L2, and the third-layer topology network L3 includes 572,292 nodes, wherein every 756 nodes of the 572,292 nodes constitute a single second node group to form a total of 757 second node groups L3-0, L3-1, ..., L3-756. In a further embodiment, every 27 of the 756 nodes in a single second node group constitute a single first node group, to form a total of 28 first node groups L2-0, L2-1, ..., L2-27 in the single second node group, and the 28 first node groups constitute the second node group. In an embodiment of the present disclosure, the first-layer topology network L1 includes 27 nodes constituting the first node group, the second-layer topology network L2 includes 28 first node groups constituting the second node group, and the third-layer topology network L3 includes 757 second node groups. In an embodiment of the present disclosure, the first-layer topology network L1 adopts a three-dimensional Torus topology structure to define expansion in three dimensions: the first dimension (X dimension), the second dimension (Y dimension), and the third dimension (Z dimension).

[0071] According to the embodiments of the present disclosure, as described above, the inventors of the present disclosure have discovered through research that the Torus topology can be scaled based on low-port routers, offering low networking costs and multipath capabilities. On the other hand, for large-scale networks, due to the large physical diameter of the network, communication latency increases linearly with network size, easily leading to congested networks. Since typical high-performance applications generally have localized communication, communication typically occurs only between nearby nodes. For applications such as ocean current simulation and weather forecasting, their communication patterns are naturally compatible with the Torus topology. For example, in a 3D Torus topology network, communication routing can be provided in the X, Y, and Z dimensions, a total of six directions, effectively supporting near-neighbor communication. Therefore, for global communication in large AI models using the Ring All-Reduce communication algorithm, adopting pipeline parallelism and data parallelism across multiple dimensions in the Torus can effectively accelerate AI communication efficiency and improve computing performance. On the other hand, global communication in a Torus topology network is severely congested, with communication latency scaling linearly with network size. Even with high-dimensional Torus networks, global communication congestion and other issues remain. This can be addressed by further employing a Full-Mesh topology network nested within a network that provides high bisection bandwidth for global communication traffic. In the disclosed embodiments, the Torus topology network is expanded by employing a Full-Mesh topology network to effectively reduce network diameter and communication latency. This effectively reduces the congestion associated with global communication based on the Torus topology network through the Full-Mesh topology network's global links.

[0072] The inventors of the present disclosure have further discovered that, for the 500,000-port networking requirement of a 10E-class supercomputer network, if a Torus topology network is nested within a layer of a Full-Mesh topology network, the internal Torus network will still be too large and the network diameter will be too large, making it unable to meet the communication requirements of high-performance applications in a 10E-class supercomputer network. Therefore, the use of a multi-level nested Full-Mesh topology network can compress the Torus network scale, increase the network layer and reduce the network diameter, thereby reducing communication latency, improving communication performance, and increasing network throughput. In the embodiments of the present disclosure, a Full-Mesh topology network nested within a Torus topology network is further nested within a Full-Mesh topology network to achieve a three-tier topology network architecture, which can fully meet the communication requirements of a 10E-class supercomputer network.

[0073] FIG4C shows a schematic diagram of a node structure according to an embodiment of the present disclosure, specifically illustrating that a single node (N) in the data routing system 10 shown in FIG4A can include a processor (C) and a router (R) coupled to the processor (C). FIG4D shows another schematic diagram of a node structure according to an embodiment of the present disclosure, specifically illustrating that a single node in the data routing system 10 shown in FIG4B can be configured to integrate a routing engine within the processor. As shown in FIG4C , the router (R) can include one or more communication engines, a crossbar, and multiple ports. In the embodiment shown in FIG4C , the multiple ports of the router (R) may include a first port set of six first ports, a second port set including one second port (e.g., L-Link) for interconnection in a Full-Mesh topology, and a third source port set including one third source port (e.g., G-Link) for interconnection in a Full-Mesh topology, wherein the six first ports include three positive first ports (e.g., Link X+, Link Y+, Link Z+) and three negative first ports (e.g., Link X-, Link Y-, Link Z-) corresponding to the three dimensions of the three-dimensional torus topology, respectively. As shown in FIG4D , the processor of a single node includes a control unit, a logic operation unit, a storage unit, and a routing engine. In the embodiment shown in FIG4D , the routing engine may include one or more communication engines, a crossbar, and multiple ports, wherein the multiple ports may include a first port set of six first ports, a second port set including one second port (e.g., L-Link) for interconnection of a Full-Mesh topology, and a third source port set including one third source port (e.g., G-Link) for interconnection of a Full-Mesh topology, wherein the six first ports include three positive first ports (e.g., Link X+, Link Y+, Link Z+) and three negative first ports (e.g., Link X-, Link Y-, Link Z-) corresponding to the three dimensions of the three-dimensional Torus topology. According to an embodiment of the present disclosure, the node structure shown in FIG4D is compared to the node structure shown in FIG4C , because the routing engine is integrated into the processor, direct connection can be achieved without a switch, thereby further reducing cost and power consumption, making it more suitable for the overall cost and overhead of ultra-large-scale networking.

[0074] In some embodiments, a communication engine can be used for the communication between a port of a router or routing engine and a processor to realize operations such as direct memory access (DMA) operation, data read and write, and memory copy. In some embodiments, a crossbar switch matrix can be used for the communication between a port of a router or routing engine and a communication engine to realize internal data forwarding by a low port mode. It should be understood that the processor or router or routing engine of the present disclosure may include more or less components, functions, or modules. In some embodiments, the processor may also include components such as a bus or interface, a processor core, a resonant circuit, etc. that are interconnected with the routing engine, and may also be connected to external devices such as storage devices. In some embodiments, a router or routing engine may be any device that realizes data transmission, such as, may also be a network device such as a switch.

[0075] In an embodiment of the present disclosure, the node coordinates of a node can be defined by the port number set of the node, for example, it can be expressed as {G, L, X, Y, Z}. G represents the group number of the second port set in the third-layer topology network where the node is located, and its value range can be 0-756. L represents the group number of the first port set in the second-layer topology network where the node is located, and its value range can be 0-27. X, Y, and Z respectively represent the numbers of the three dimensions X dimension, Y dimension, and Z dimension in the first-layer topology network where the node is located, and its value range can be 0-2. In an embodiment of the present disclosure, the node number is determined based on the node coordinates {G, L, X, Y, Z} where the node is located.

[0076] In an embodiment of the present disclosure, port 1 and port 2 in the first port set of a router or routing engine can serve as routing ports in the forward and reverse directions of the X dimension (e.g., port 1: Link X+; port 2: Link X-), port 3 and port 4 in the first port set of a router or routing engine can serve as routing ports in the forward and reverse directions of the Y dimension (e.g., port 3: Link Y+; port 4: Link Y-), and port 5 and port 6 of the router or routing engine can serve as routing ports in the forward and reverse directions of the Z dimension (port 5: Link Z+; port 6: Link Z-). In some embodiments, the positive direction ports of adjacent nodes in each of the X, Y, and Z dimensions are connected to the negative direction ports of the opposite end, thereby forming a ring network topology structure by sequentially connecting them, thereby constructing a three-dimensional torus topology structure of the first layer topology network. In an embodiment of the present disclosure, port No. 7 of a router or routing engine serves as an interconnection port between each first-layer topology network corresponding to each first-port set in the second-layer topology network, and is defined as an L-Link. The L-link port number of each router or routing engine is determined based on the node coordinates {X, Y, Z} in the first-layer topology network where the node is located by the following formula (1): PL = X*9+Y*3+Z Formula (1)

[0077] Among them, X, Y, and Z respectively represent the numbers of the three dimensions X dimension, Y dimension, and Z dimension in the first layer topology network where the node is located, and their value range is 0-2, and the value range of the number PL of the No. 7 port can be 0-26.

[0078] In some embodiments, if the source node is numbered {Gs, Ls, Xs, Ys, Zs}, the destination node is numbered {Gd, Ld, Xd, Yd, Zd}, and the 7th L-Link port of the source node is connected to the 7th L-Link port of the destination node, then the Full-Mesh connection rule and routing relationship between each first-layer topology network corresponding to each first port set in the second-layer topology network can be determined by the following formula (2): Ls + PLs = Ld && PLd + PLs = 26 Formula (2)

[0079] Wherein, Ls is the topology number of the second-layer topology network where the source node is located (for example, the group number of the second port set in the third-layer topology network), Ld is the topology number of the second-layer topology network where the destination node is located (for example, the group number of the second port set in the third-layer topology network), PLs is the L-Link port number of the second-layer topology network where the source node is connected to the destination node, and PLd is the L-Link port number of the second-layer topology network where the destination node is connected to the source node.

[0080] In an embodiment of the present disclosure, port No. 8 of a router or routing engine is defined as a G-Link as an interconnection port between each second-layer topology network corresponding to each second port set in the third-layer topology network, and the G-link port number of each router or routing engine is determined based on the node coordinates {L, X, Y, Z} in the first-layer topology network and the second-layer topology network where the node is located by the following formula (3): PG = 27*L + X*9 + Y*3 +Z Formula (3)

[0081] Among them, X, Y, and Z respectively represent the numbers of the three dimensions X dimension, Y dimension, and Z dimension in the first-layer topology network where the node is located, and their value range is 0-2. L is the topology number of the second-layer topology network where the source node is located, and its value range can be 0-26. The value range of the number PG of the port No. 8 can be 0-755.

[0082] In some embodiments, if the source node is numbered {Gs, Ls, Xs, Ys, Zs}, the destination node is numbered {Gd, Ld, Xd, Yd, Zd}, and the 8th G-Link port of the source node is connected to the 8th G-Link port of the destination node, then the Full-Mesh connection rule and routing relationship between each second-layer topology network corresponding to each second port set in the third-layer topology network can be determined by the following formula (4): Gs + PGs = Gd && PGd + PGs = 755 Formula (4)

[0083] Wherein, Gs is the topology number of the third-layer topology network where the source node is located, Gd is the topology number of the third-layer topology network where the destination node is located, PGs is the G-Link port number of the third-layer topology network where the source node is connected to the destination node, and PLGd is the G-Link port number of the third-layer topology network where the destination node is connected to the source node. According to the embodiments of the present disclosure, for example, a network topology with 570,000 ports can be constructed based on an 8-port router (switch), and the network diameter is, for example, 15 hops, thereby effectively reducing the problems of excessive network scale and network diameter.

[0084] FIG5 shows a further schematic flow chart of a data routing method according to an embodiment of the present disclosure. As shown in FIG5 , at block 510, it is determined whether the current node for sending data and the destination node for receiving data are in the same second node group in the third-layer topology network. In some embodiments, based on the node number {Gc, Lc, Xc, Yc, Zc} of the current node and the node number {Gd, Ld, Xd, Yd, Zd} of the destination node, it can be determined based on the following formula (5) whether the topology number of the third-layer topology network where the destination node is located is the same as the topology number of the third-layer topology network where the current node is located: Gd == Gc Formula (5)

[0085] Wherein, Gc is the topology number of the third layer topology network where the source node is located, and Gd is the topology number of the third layer topology network where the destination node is located. If it is determined at box 510 that the current node and the destination node are in the same second node group in the third layer topology network, then at box 511, it is determined whether there is a direct link between the current node and the destination node. If it is determined at box 511 that there is a direct link, for example, if the following formula (8) is satisfied, then at box 512, data is directly forwarded from the G-Link port of the current node to the G-Link port where the destination node is located, and the process proceeds to box 520. PGc = 27*Lc + Xc*9 + Yc*3 + Zc = 755 - 27*Ld - Xd*9 - Yd*3 - Zd Formula (6)

[0086] If it is determined at block 511 that no direct link exists, then it is determined at block 513 whether the current node and the jump node are in the same first node group in the second layer topology network. In some embodiments, whether the topology number of the second layer topology network where the destination node is located is the same as the topology number of the second layer topology network where the current node is located can be determined based on the following equation (7): Lm == Lc Equation (7)

[0087] Wherein, Lc is the topology number of the second-layer topology network where the current node is located, and Lm is the topology number of the second-layer topology network where the jump node is located. In some embodiments, the node number {Gm, Lm, Xm, Ym, Zm} of the jump node can be determined based on the following equations (8) to (12): PGm = 755 - 27*Ld - Xd*9 - Yd*3 - Zd Equation (8) Lm = PGm / 27 Equation (9) Xm = PGm / 9 Equation (10) Ym = PGm / 3 Equation (11) Zm = PGm / 3 Equation (12)

[0088] If it is determined at block 513 that the current node and the jump node are in the same first node group in the second layer topology network, then at block 514, data is routed from the current node to the jump node, and the process proceeds to block 520. If it is determined at block 513 that the current node and the jump node are not in the same first node group in the second layer topology network, then at block 515, a ferry node is determined to have a direct link to the jump node. In some embodiments, the node coordinates {Gn, Ln, Xn, Yn, Zn} of the ferry node can be determined based on the following equations (13) to (18): Gn = Gc Equation (13) Ln = Lc Equation (14) PLn = 26 - Xm*9 - Ym*3 - Zm Equation (15) Xn = PLn / 9 Equation (16) Yn = PLn / 3 Equation (17) Zn = PLn%3 Equation (18)

[0089] At block 516, data is sent from the current node to the ferry node, forwarded from the ferry node to the jump node, and then forwarded from the jump node to the destination node. If it is determined at block 510 that the current node and the destination node are in the same second node group in the third layer topology network, then at block 520, it is determined whether the current node and the destination node are in the same first node group in the second layer topology network. In some embodiments, whether the topology number of the second layer topology network where the destination node is located is the same as the topology number of the second layer topology network where the current node is located can be determined based on the following equation (19): Ld == Lc Equation (19)

[0090] If it is determined at block 520 that the current node and the destination node are in the same first node group in the second layer topology network, then at block 530, in the first layer topology network in which the same first node group is located, the data is routed from the current node to the destination node, and the process proceeds to block 540. If it is determined at block 520 that the current node and the destination node are not in the same first node group in the second layer topology network, then at block 521, it is determined whether a direct link exists between the current node and the destination node. If it is determined at block 521 that a direct link exists, for example, if the following equation (20) is satisfied, then at block 522, the data is directly forwarded from the L-Link port of the current node to the L-Link port of the destination node, and the process proceeds to block 530. Lc = Ld - PLc && PLc = 26 - PLd Equation (20)

[0091] If it is determined at block 521 that no direct link exists, then a jump node with a direct link to the destination node is determined at block 523. In some embodiments, the node coordinates {Gm, Lm, Xm, Ym, Zm} of the ferry node can be determined based on the following equations (21) to (25): Gm = Gc (Equation (21)) Lm = Ld - 26 + Xd * 9 + Yd * 3 + Zd && PLm = 26 - Xd * 9 - Yd * 3 - Zd (Equation (22)) Xm = PLm / 9 (Equation (23)) Ym = PLm / 3 (Equation (24)) Zm = PLm% 3 (Equation (25))

[0092] At block 524, the data is sent from the current node to the jump node, which then forwards the data to the destination node. At block 540, the positive and negative directions of the port are determined based on the current node's X-dimensional coordinate Xc, the target node's X-dimensional coordinate Xd, and the X-dimensional length Kx. In some embodiments, the positive and negative directions of the port are determined based on the coordinate offset |Xd-Xc| between the target node's X-dimensional coordinate and the current node's X-dimensional coordinate, rounded up to half the X-dimensional length [Kx / 2]. If it is determined that the coordinate offset |Xd-Xc| between the X-dimensional coordinate of the target node and the X-dimensional coordinate of the current node is less than the value [Kx / 2] rounded up to half the length of the X dimension, this indicates that the loopback link distance in the X dimension in the first-layer topology network is the longest. Then, at box 541, if the target coordinate Xd is less than the current coordinate Xc, the data is routed from the negative port of the current node to the positive port of the destination node; if the target coordinate Xd is greater than or equal to the current coordinate Xc, the data is routed from the positive port of the current node to the negative port of the destination node. If it is determined that the coordinate offset |Xd-Xc| between the X-dimensional coordinate of the target node and the X-dimensional coordinate of the current node is greater than or equal to the value [Kx / 2] rounded up by half the length of the X-dimensional coordinate, this indicates that the loopback link distance in the X-dimensional of the first-layer topology network is the shortest. Then, at block 542, if the target coordinate Xd is greater than or equal to the current coordinate Xc, the data is routed from the negative port of the current node to the positive port of the destination node. If the target coordinate Xd is less than the current coordinate Xc, the data is routed from the positive port of the current node to the negative port of the destination node. At block 550, the positive or negative direction of the port is determined based on the Y-dimensional coordinate Yc of the current node, the Y-dimensional coordinate Yd of the target node, and the Y-dimensional length Ky. In some embodiments, the positive or negative direction of the port is determined based on the coordinate offset |Yd-Yc| between the Y-dimensional coordinate of the target node and the Y-dimensional coordinate of the current node and the value [Ky / 2] rounded up by half the length of the Y-dimensional coordinate. If it is determined that the coordinate offset |Yd-Yc| between the Y-dimensional coordinate of the target node and the Y-dimensional coordinate of the current node is less than the rounded-up value of half the Y-dimensional length [Ky / 2], this indicates that the loopback link distance in the Y dimension in the first-layer topology network is the longest, then at box 551, when the target coordinate Yd is less than the current coordinate Yc, the data is routed from the negative port of the current node to the positive port of the destination node; when the target coordinate Yd is greater than or equal to the current coordinate Yc, the data is routed from the positive port of the current node to the negative port of the destination node.If it is determined that the coordinate offset |Yd-Yc| between the Y-dimensional coordinate of the target node and the Y-dimensional coordinate of the current node is greater than or equal to the value [Ky / 2] rounded up to half the length of the Y-dimensional coordinate, this indicates that the loopback link distance in the Y-dimensional of the first-layer topology network is the shortest. Then, at box 552, if the target coordinate Yd is greater than or equal to the current coordinate Yc, the data is routed from the negative port of the current node to the positive port of the destination node. If the target coordinate Yd is less than the current coordinate Yc, the data is routed from the positive port of the current node to the negative port of the destination node. At box 560, the positive or negative direction of the port is determined based on the Z-dimensional coordinate Zc of the current node, the Z-dimensional coordinate Zd of the target node, and the Z-dimensional length Kz. In some embodiments, the positive or negative direction of the port is determined based on the coordinate offset |Zd-Zc| between the Z-dimensional coordinate of the target node and the Z-dimensional coordinate of the current node and the value [Kz / 2] rounded up to half the length of the Z-dimensional coordinate. If it is determined that the coordinate offset |Zd-Zc| between the Z-dimensional coordinate of the target node and the Z-dimensional coordinate of the current node is less than the value rounded up to half the Z-dimensional length [Kz / 2], this indicates that the loopback link distance in the Z dimension in the first-layer topology network is the longest, then at box 561, when the target coordinate Zd is less than the current coordinate Zc, the data is routed from the negative port of the current node to the positive port of the destination node; when the target coordinate Zd is greater than or equal to the current coordinate Zc, the data is routed from the positive port of the current node to the negative port of the destination node. If it is determined that the coordinate offset |Zd-Zc| between the Z-dimensional coordinate of the target node and the Z-dimensional coordinate of the current node is greater than or equal to the value [Kz / 2] rounded up to half the length of the Z dimension, this indicates that the loopback link distance in the Z dimension of the first-layer topology network is the shortest. Then, at block 562, if the target coordinate Zd is greater than or equal to the current coordinate Zc, the data is routed from the negative port of the current node to the positive port of the destination node; if the target coordinate Zd is less than the current coordinate Zc, the data is routed from the positive port of the current node to the negative port of the destination node. At block 560, the data arrives at the destination node, and the communication engine receives the data, completing the data communication between the source node and the destination node. In some embodiments, a node receiving data, such as a destination node, a jump node, or a ferry node, can receive data transmitted along the data routing path from the source node to the destination node; or receive data transmitted along the data routing path from the source node to the destination node along with a forwarding request, and forward the data to the destination node based on the destination node indicated by the forwarding request.

[0093] According to embodiments of the present disclosure, for data communication systems based on Torus and Full-mesh network topologies, the shortest path route from a source node to a destination node can be determined to achieve shortest-distance communication with minimal communication latency. Because node coordinates in a data communication system according to embodiments of the present disclosure can be determined in a port-based manner to achieve deterministic topological features, the shortest route can be quickly calculated, effectively facilitating hardware implementation.

[0094] The inventors of this disclosure further discovered that both Torus and Full-mesh network topologies contain loops, posing a risk of deadlock. This can be caused by, for example, the cyclical use of communication resources (buffers). For example, if four nodes in the X dimension of a Torus network topology each send data to the next adjacent node, and all four nodes send data simultaneously, this can cause cyclical use of port resources, leading to deadlock and, in severe cases, communication congestion and network paralysis. To address this, the concept of setting up virtual channels for ports can be considered to mitigate this deadlock effect.

[0095] Figures 6A and 6B illustrate schematic diagrams of deadlock avoidance methods according to embodiments of the present disclosure. In embodiments of the present disclosure, a positive first port and a negative first port corresponding to each of multiple dimensions of a first-layer topology network L1 are configured with a first virtual channel and a second virtual channel. In some embodiments, if the first source port number of the source node is less than or equal to the first destination port number of the destination node, data is sent from the first virtual channel of the positive first source port of the source node to the first virtual channel of the negative first destination port of the destination node. In other embodiments, if the first port number of the source node is greater than the first port number of the destination node, data is sent from the second virtual channel of the positive first source port of the source node to the second virtual channel of the negative first destination port of the destination node. Figure 6A specifically illustrates a communication path between four nodes in a first-layer topology network L1 based on a Torus topology structure at a single dimension, and Figure 6B specifically illustrates a communication path between the four nodes shown in Figure 6A at two dimensions, where each port is configured with a first virtual channel VL0 and a second virtual channel VL1. According to an embodiment of the present disclosure, as shown in FIG6A and FIG6B , the communication dependencies between nodes in the first layer topology network L1 do not form a loop, and thus do not cause deadlock.

[0096] In an embodiment of the present disclosure, the second port corresponding to the second layer topology network L2 is configured with a third virtual channel and a fourth virtual channel. In some embodiments, for global routing in the second layer topology network L2, data is sent from the third virtual channel of the second source port of the source node to the third virtual channel of the second destination port of the destination node. For the first global routing in the second layer topology network L2, data is sent from the fourth virtual channel of the second source port of the source node to the fourth virtual channel of the second destination port of the destination node. In an embodiment of the present disclosure, the third port corresponding to the third layer topology network L3 is configured with a fifth virtual channel and a sixth virtual channel. In some embodiments, for global routing in the third layer topology network L3, data is sent from the fifth virtual channel of the third source port of the source node to the fifth virtual channel of the third destination port of the destination node. For the first global routing in the third layer topology network L3, data is sent from the sixth virtual channel of the third source port of the source node to the sixth virtual channel of the third destination port of the destination node. According to an embodiment of the present disclosure, similar to the first layer topology network L1, the communication dependencies between nodes in the second layer topology network L2 and the third layer topology network L3 are not looped and will not cause deadlock.

[0097] According to an embodiment of the present disclosure, an overall multi-layer topology network is constructed based on the first type of topology network and the second type of topology network, and the node coordinates are directly determined by the port number corresponding to each layer topology network, so that the network radius can be effectively reduced to provide a low-cost, low-power, and highly scalable network. Table 1 below shows the topology network feature comparison results between the embodiment of the present disclosure and 5 comparison examples for a network scale of 500,000 nodes. Among them, comparison example 1 is constructed only based on a six-dimensional Torus topology network, and its nodes are based on a 10-port routing engine to construct a 544,320-port network with a network diameter of 53 hops. Comparison example 2 is constructed only based on a five-dimensional Torus topology network, and its nodes are based on a 10-port routing engine to construct a 557,568-port network with a network diameter of 47 hops. Comparison example 3 is constructed only based on a 10-layer Fat-Tree topology network structure, and its nodes are based on an 8-port switch to construct a 524,288-port network with a network diameter of 19 hops. Comparison Example 4 is constructed based only on a 5-layer Fat-Tree topology network structure, with its nodes based on 40-port switches and a network diameter of 15 hops. However, it can only support a maximum of 131,072-port networks, which cannot meet the network scale of 500,000 nodes. Comparison Example 5 is constructed based on a Dragonfly topology network structure, with its nodes based on 64-port switches and a network diameter of 4 hops. However, it can only support a maximum of 279,040-port networks, which cannot meet the network scale of 500,000 nodes. Therefore, according to the embodiments of the present disclosure, it is possible to achieve support for large-scale networking and a reduction in network diameter, thereby reducing network latency and improving communication efficiency.

[0098] Table 1 Topology network feature comparison results

[0099] Table 2 below shows the topology network cost comparison results between the embodiment of the present disclosure and two comparison examples for a network scale of 570,000 ports. Among them, comparison example 6 is constructed based on a 4-layer fat tree topology network structure, and comparison example 7 is constructed based on an optimized Dragonfly Plus topology network structure. It can be seen that, under a network scale of 570,000 ports, the number of optical fibers in the embodiment of the present disclosure is 40% of that in comparison example 6 and about 67% of that in comparison example 7. In this way, the cost of copper cables is 1 / 10 of the number of optical fibers, thereby reducing the number of optical fiber links can greatly reduce network costs and power consumption. For the CrossBar, which is an internal crosspoint of the core resource of the switch, the CrossBar consumed by the switch in the embodiment of the present disclosure is 14% of that in comparison example 6 and 25% of that in comparison example 7. Therefore, according to the embodiment of the present disclosure, extremely low network costs and power consumption can be achieved.

[0100] Table 2 Topology network cost comparison results

[0101] Figure 7 shows a schematic block diagram of a data routing device according to some embodiments of the present disclosure. In an embodiment of the present disclosure, the plurality of computing nodes include a source node and a destination node, and the device corresponds to at least the source node, wherein: the plurality of computing nodes are located in a communication network including at least a first layer topology network and a second layer topology network, wherein the first layer topology network is nested within the second layer topology network, the first layer topology network is based on a ring network topology structure composed of a first number of nodes, the first number of nodes forming a first node group corresponding to the first layer topology network, the second layer topology network is based on a fully interconnected network topology structure composed of a second number of first node groups, the second number of first node groups forming a second node group corresponding to the second layer topology network, wherein each of the plurality of computing nodes includes at least a first port set corresponding to the first layer topology network and a second port set corresponding to the second layer topology network, the source node includes a first source port set having a first source port number and a second source port set having a second source port number, and the destination node includes a first destination port set having a first destination port number and a second destination port set having a second destination port number. In an embodiment of the present disclosure, the data routing device 700 may include a number acquisition module 701, a path determination module 702, and a data transmission module 703. In some embodiments, the number acquisition module 701 can be configured to obtain the first source port number and the second source port number of the source node, and obtain the first destination port number and the second destination port number of the destination node. In some embodiments, the path determination module 702 can be configured to determine the data routing path from the source node to the destination node based on the first source port number, the second source port number, the first destination port number and the second destination port number. In some embodiments, the data transmission module 703 can be configured to send the data from the source node to the destination node based on the determined data routing path. According to an embodiment of the present disclosure, by nesting the surround network in the overall topology of the fully interconnected network, it is possible to utilize the multi-path characteristics of the surround network topology and the global communication characteristics of the fully interconnected network topology to provide a large-scale networking suitable for high bandwidth, low latency, and high throughput requirements, so that the data routing device can correspondingly improve communication efficiency and reduce communication failures and delays.

[0102] In some embodiments, the node coordinates of the source node in the first layer topology network are indicated by a first source port number set, the first source port number set including the first source port and the first source port number corresponding to each dimension of the first layer topology network, the node coordinates of the destination node in the first layer topology network are indicated by a first destination port number set, the first destination port number set including the first destination port and the first destination port number corresponding to each dimension of the first layer topology network, the node coordinates of the source node in the multiple computing nodes are indicated by the first source port number set and the second source port number, wherein the second source port number is determined based on the first source port number of the first source port in the first source port set, and the node coordinates of the destination node in the multiple computing nodes are indicated by the first destination port number set and the second destination port number, wherein the second destination port number is determined based on the first destination port number of the first destination port in the first destination port set. According to an embodiment of the present disclosure, the node coordinates in the data communication system can be determined in a port manner to achieve a deterministic topology feature, thereby enabling the rapid calculation of the shortest route to effectively facilitate hardware implementation.

[0103] In some embodiments, the path determination module 702 is configured to: determine whether the source node and the destination node are in the same first node group based on the second source port number of the source node and the second destination port number of the destination node, wherein a plurality of nodes belonging to the first node group are in the same first layer topology network; if it is determined that the source node and the destination node are in the same first node group, perform a first data routing process for the first layer topology network; if it is determined that the source node and the destination node are not in the same first node group, perform a second data routing process for the second layer topology network. According to an embodiment of the present disclosure, for a data communication system based on a Torus network topology and a Full-mesh network topology, the shortest path route from the source node to the destination node can be quickly determined to improve data routing efficiency.

[0104] In some embodiments, the multiple dimensions of the first layer topology network include a first dimension, a second dimension, and a third dimension, the first source port set includes a positive first source port and a negative first source port corresponding to the first dimension, the second dimension, and the third dimension, respectively, wherein the first data routing process includes: determining, for each of the first dimension, the second dimension, and the third dimension, an offset between a first source port number of the corresponding dimension of the source node and a first destination port number of the corresponding dimension of the destination node. If the offset is greater than or equal to a threshold value and the first source port number of the corresponding dimension of the source node is less than or equal to the first destination port number of the corresponding dimension of the destination node, then sending data from the negative first source port of the source node to the positive first source port of the destination node in the corresponding dimension; or, if the offset is greater than or equal to a threshold value and the first source port number of the corresponding dimension of the source node is greater than the first destination port number of the corresponding dimension of the destination node, then sending data from the positive first source port of the source node to the negative first destination port of the destination node in the corresponding dimension. Alternatively, if the offset is less than the threshold, and the first source port number of the corresponding dimension of the source node is less than or equal to the first destination port number of the corresponding dimension of the destination node, then data is sent from the positive first source port of the source node to the negative first destination port of the destination node on the corresponding dimension; or, if the offset is less than the threshold, and if the first source port number of the corresponding dimension of the source node is less than or equal to the first destination port number of the corresponding dimension of the destination node, then data is sent from the negative first source port of the source node to the positive first source port of the destination node on the corresponding dimension. According to an embodiment of the present disclosure, data routing can be implemented in a first-layer topology network directly based on the node coordinates corresponding to the port and dimension, so as to quickly achieve the shortest distance communication with the lowest communication delay.

[0105] In some embodiments, the plurality of computing nodes further include jump nodes, wherein the jump nodes include a first jump port set for a first layer topology network and a second jump port set for a second layer topology network, wherein the first jump port set includes a plurality of first jump ports corresponding to the dimensions of the first layer topology network, and the second jump port set includes at least one second jump port for connecting nodes in the second layer topology network, wherein the first jump port has a first jump port number and the second jump port has a second jump port number. The second data routing process includes: determining whether there is a direct link in the second layer topology network between the first node group to which the source node belongs and the first node group to which the destination node belongs. If there is a direct link in the second layer topology network, data is sent from the second source port of the source node to the second destination port of the destination node, and the first data routing process is performed between the first source port set of the source node and the first destination port set of the destination node. If there is no direct link in the second-layer topology network, data is sent from the second source port of the source node to the second jump port of the jump node in the second-layer topology network to forward the data from the second jump port of the jump node to the second destination port of the destination node, wherein a direct link in the second-layer topology network exists between the first node group to which the jump node belongs and the first node group to which the destination node belongs, and wherein the first data routing processing is performed between the first source port set of the source node and the first jump port set of the jump node and between the first jump port set of the jump node and the first destination port set of the destination node. According to an embodiment of the present disclosure, it is possible to implement data routing in each layer of topology network directly based on the node coordinates corresponding to the ports and different types of topology networks, across different types of topology networks, so as to quickly achieve the shortest distance communication with the lowest communication delay.

[0106] In some embodiments, the source node further includes a third source port set, the third source port set including at least one third source port for node connection in the third layer topology network, wherein the third source port has a third source port number, and the node coordinates of the source node in the multiple computing nodes are indicated by the first source port number set, the second source port number and the third source port number, wherein the third source port number is determined based on the first source port number of the first source port in the first source port set and the second source port number of the second source port in the second source port set, the destination node further includes a third destination port set, the third destination port set including at least one third destination port for node connection in the third layer topology network, which The third destination port has a third destination port number, and the node coordinates of the destination node in the multiple computing nodes are indicated by the first destination port number set, the second destination port number, and the third destination port number, wherein the third destination port number is determined based on the first destination port number of the first destination port in the first destination port set and the second destination port number of the second destination port in the second destination port set, and the path determination module 702 is configured to: determine the data routing path from the source node to the destination node based on the first source port number set, the second source port number, the third source port number, the first destination port number set, the second destination port number, and the third destination port number. According to the embodiments of the present disclosure, network expansion can be further achieved in a low-cost and low-power manner to cope with data routing systems of different network scales.

[0107] In some embodiments, the path determination module 702 is further configured to: determine whether the source node and the destination node are in the same second node group based on the third source port number of the source node and the third destination port number of the destination node, wherein a plurality of first node groups belonging to the second node group are in the same second-layer topology network; if it is determined that the source node and the destination node are not in the same second node group, perform a second data routing process for the second-layer topology network; if it is determined that the source node and the destination node are in the same second node group, perform a third data routing process for the third-layer topology network. According to an embodiment of the present disclosure, for a data communication system based on a Torus network topology and a multi-layer Full-mesh network topology, the shortest path route from the source node to the destination node can be quickly determined to improve data routing efficiency.

[0108] In some embodiments, the jump node further includes a third jump port set, the third jump port including at least one third jump port for connecting nodes in the third layer topology network, wherein the third jump port has a third jump port number, and the third data routing process includes: determining whether there is a direct link in the third layer topology network between the second node group to which the source node belongs and the second node group to which the destination node belongs. If there is a direct link in the third layer topology network, data is sent from the third source port of the source node to the third destination port of the destination node, and based on the second source port number of the source node and the second destination port number of the destination node, it is determined whether the source node and the destination node are in the same first node group, so as to determine whether to perform the first data routing process for the first layer topology network or to perform the second data routing process for the second layer topology network. If there is no direct link in the third-layer topology network, data is sent from the third source port of the source node to the third jump port of the jump node of the third-layer topology network to forward the data from the third jump port of the jump node to the third destination port of the destination node, wherein a direct link in the third-layer topology network exists between the second node group to which the jump node belongs and the second node group to which the destination node belongs. In some embodiments, the plurality of computing nodes further include a ferry node, wherein the ferry node includes a first ferry port set for the first-layer topology network, a second ferry port set for the second-layer topology network, and a third jump port set for the third-layer topology network, wherein the first ferry port set includes a plurality of first ferry ports corresponding to the dimension of the first-layer topology network, the second ferry port set includes at least one second ferry port for connecting to nodes in the second-layer topology network, and the second ferry port includes at least one third ferry port for connecting to nodes in the third-layer topology network, wherein the first ferry port has a first ferry port number, the second ferry port has a second ferry port number, and the third ferry port has a third ferry port number. If there is no direct link in the third-layer topology network, the third data routing processing also includes: determining whether the jump node and the destination node are in the same first node group based on the second jump port number of the jump node and the second destination port number of the destination node; if it is determined that the jump node and the destination node are in the same first node group, executing the first data routing processing; if it is determined that the jump node and the destination node are not in the same first node group, determining whether there is a direct link in the second-layer topology network between the first node group to which the jump node belongs and the first node group to which the destination node belongs.If there is a direct link in the second-layer topology network, data is sent from the second jump port of the jump node to the second destination port of the destination node, and the first data routing process is performed between the first jump port set of the jump node and the first destination port set of the destination node. If there is no direct link in the second-layer topology network, data is sent from the second jump port of the jump node to the second ferry port of the ferry node in the second-layer topology network to forward the data from the second ferry port of the ferry node to the second destination port of the destination node, wherein a direct link in the second-layer topology network exists between the first node group to which the ferry node belongs and the first node group to which the destination node belongs, wherein the first data routing process is performed between the first jump port set of the jump node and the first ferry port set of the ferry node and between the first ferry port set of the ferry node and the first destination port set of the destination node. According to an embodiment of the present disclosure, the shortest path route from the source node to the destination node can be determined based on node coordinates with deterministic topological characteristics across different types of topology networks and different levels of topology networks to achieve the shortest distance communication with the lowest communication delay while effectively promoting hardware implementation.

[0109] In some embodiments, the positive first port and the negative first port corresponding to each of the multiple dimensions of the first layer topology network are configured with a first virtual channel and a second virtual channel. If the first source port number of the source node is less than or equal to the first destination port number of the destination node, data is sent from the first virtual channel of the positive first source port of the source node to the first virtual channel of the negative first destination port of the destination node. If the first port number of the source node is greater than the first port number of the destination node, data is sent from the second virtual channel of the positive first source port of the source node to the second virtual channel of the negative first destination port of the destination node. In some embodiments, the second port corresponding to the second layer topology network is configured with a third virtual channel and a fourth virtual channel, and the third port corresponding to the third layer topology network is configured with a fifth virtual channel and a sixth virtual channel. For global routing of the second layer topology network, data is sent from the third virtual channel of the second source port of the source node to the third virtual channel of the second destination port of the destination node. For the first global routing of the second layer topology network, data is sent from the fourth virtual channel of the second source port of the source node to the fourth virtual channel of the second destination port of the destination node. For global routing of the third-layer topology network, data is sent from the fifth virtual channel of the third source port of the source node to the fifth virtual channel of the third destination port of the destination node. For the first global routing of the third-layer topology network, data is sent from the sixth virtual channel of the third source port of the source node to the sixth virtual channel of the third destination port of the destination node. According to the embodiments of the present disclosure, port interleaving for data routing using virtual channels can effectively avoid the problem of communication dependency loops between nodes in each layer of topology network, thereby preventing the generation of deadlocks.

[0110] In some embodiments, the first layer topology network is based on a wraparound network topology structure, and the first layer topology network includes 27 nodes constituting a first node group; the second layer topology network is based on a fully interconnected network topology structure, and the second layer topology network includes 28 first node groups constituting a second node group; and the third layer topology network is based on a fully interconnected network topology structure, and the third layer topology network includes 757 second node groups. The first source port set includes six first source ports, each of which includes three positive first source ports and three negative first source ports corresponding to three dimensions of the three-dimensional wraparound network topology structure, respectively; the second source port set includes one second source port for interconnection in the fully interconnected network topology structure; and the third source port set includes one third source port for interconnection in the fully interconnected network topology structure. The first destination port set includes six first destination ports, the six first destination ports including three positive first destination ports and three negative first destination ports corresponding to the three dimensions of the three-dimensional surround network topology, the second destination port set includes one second destination port for interconnecting the fully interconnected network topology, and the third destination port set includes one third destination port for interconnecting the fully interconnected network topology. According to the embodiments of the present disclosure, it is particularly suitable for global communication of large AI models that adopt the Ring All-Reduce communication algorithm, so as to effectively meet the networking requirements of E-class supercomputers while effectively reducing network diameter and communication latency.

[0111] In an embodiment of the present disclosure, the data routing device 700 may also correspond to the destination node, wherein: the multiple computing nodes are located in a communication network including at least a first layer topology network and a second layer topology network, wherein the first layer topology network is nested in the second layer topology network, the first layer topology network is based on a surround network topology structure composed of a first number of nodes, the first number of nodes constitutes a first node group corresponding to the first layer topology network, the second layer topology network is based on a fully interconnected network topology structure composed of a second number of first node groups, the second number of first node groups constitutes a second node group corresponding to the second layer topology network, wherein each of the multiple computing nodes includes at least a first port set corresponding to the first layer topology network and a second port set corresponding to the second layer topology network, the source node includes a first source port set with a first source port number and a second source port set with a second source port number, and the destination node includes a first destination port set with a first destination port number and a second destination port set with a second destination port number. In an embodiment of the present disclosure, the data routing device 700 may include a data transmission module 730, and the data transmission module 730 may be configured to receive data transmitted based on a data routing path from the source node to the destination node, wherein the data routing path is determined based on the first source port number, the second source port number, the first destination port number, and the second destination port number. It should be understood that in an embodiment of the present disclosure, the data routing device 700 may independently serve as a source node, independently serve as a destination node, or serve as both a source node and a destination node. As long as it can implement the functions or steps suitable for the data routing system of the present disclosure, it can constitute all or at least a portion of the data routing device 700 of the present disclosure.

[0112] It should be understood that the modules included in the data routing device of the data routing system are an example of a software functional unit, and the data routing system and / or the data routing device may include code running on a computing instance. The computing instance may be at least one of a physical host (computing device), a virtual machine, a container, and other computing devices. Furthermore, the above-mentioned computing device may be one or more. For example, the data routing system and / or the data routing device may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the application may be distributed in the same region or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including one data center or multiple geographically close data centers. Generally, a region may include multiple AZs.

[0113] Similarly, multiple hosts / virtual machines / containers running the code can be distributed within the same virtual private cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a region. Cross-region communication between two VPCs within the same region, or between VPCs in different regions, requires a communication gateway within each VPC to interconnect the VPCs.

[0114] As an example of a hardware functional unit, a data routing system and / or data routing device may include at least one computing device, such as a server. Alternatively, each module of the data routing device may be implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0115] The multiple computing devices included in the data routing system and / or data routing apparatus can be distributed in the same region or in different regions. The multiple computing devices included in the data routing system and / or data routing apparatus can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the data routing system and / or data routing apparatus can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0116] An embodiment of the present disclosure further provides a computing device 800, and a node of an embodiment of the present disclosure may include at least one computing device 800. FIG8 shows a schematic block diagram of an example device that can be used to implement an exemplary implementation of the present disclosure. As shown in FIG8 , the computing device 800 includes: a bus 802, a processor 804, a memory 806, and a communication interface 808. The processor 804, the memory 806, and the communication interface 808 communicate with each other via the bus 802. The computing device 800 may be a server or a terminal device. It should be understood that the present application does not limit the number of processors and memories in the computing device 800. The bus 802 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, FIG8 is represented by only one line, but this does not mean that there is only one bus or one type of bus. The bus 804 may include a path for transmitting information between the various components of the computing device 800 (e.g., memory 806, processor 804, communication interface 808). The processor 804 may include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP). The memory 806 may include a volatile memory, such as a random access memory (RAM). The processor 804 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD). The memory 806 stores executable program code, and the processor 804 executes the executable program code to respectively implement the methods of the number acquisition module 701, the path determination module 702, and the data transmission module 703 of the aforementioned embodiments of the present disclosure. That is, the memory 806 may store instructions for the methods and functions of any of the above embodiments. The communication interface 808 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 800 and other devices or communication networks.

[0117] Embodiments of the present disclosure also provide a computing device cluster 900. FIG9 shows a schematic block diagram of an example device cluster that can be used to implement an exemplary implementation of the present disclosure. A database control system according to an embodiment of the present disclosure is deployed on the computing device cluster 900, which includes at least one computing device 800. In some embodiments, the computing device cluster 900 may include one computing device 800 to implement all or part of the database control system according to an embodiment of the present disclosure. In some embodiments, the computing device cluster 900 may include multiple computing devices 800, which may implement all or part of the database control system according to an embodiment of the present disclosure synchronously or asynchronously, serially or in parallel, independently or in a distributed manner. The computing devices 800 in the computing device cluster 900 may be servers, such as central servers, edge servers, or local servers in a local data center. In some embodiments, the computing devices may also be terminal devices such as desktop computers, laptop computers, or smartphones. As shown in FIG9 , the computing device cluster 900 includes at least one computing device 800. The memory 806 in one or more computing devices 800 in the computing device cluster 900 may store the same instructions for executing the methods and functions described in any of the above embodiments. In some possible implementations, the memory 806 of one or more computing devices 800 in the computing device cluster 900 may also respectively store partial instructions for executing the methods and functions of the embodiments of the present disclosure in any of the above-mentioned embodiments. In other words, the combination of one or more computing devices 800 can jointly execute the instructions for the methods and functions of the embodiments of the present disclosure. It should be noted that the memories 806 in different computing devices 800 in the computing device cluster can store different instructions, which are respectively used to execute partial functions of the device 800. That is, the instructions stored in the memories 806 in different computing devices 800 can implement the functions of one or more modules or sub-modules of the number acquisition module 701, the path determination module 702 and the data transmission module 703.

[0118] In some possible implementations, one or more computing devices in a computing device cluster may be connected via a network. The network may be a wide area network or a local area network, etc. FIG10 shows a schematic block diagram of another example device that can be used to implement an exemplary implementation of the present disclosure, wherein a possible implementation 1000 is shown. As shown in FIG10 , two computing devices 800A and 800B are connected via a network 1010. The connection method between the computing device clusters shown in FIG10 may be to consider that the method of the present application requires the storage of a large amount of user data and the performance of intensive real-time or near real-time calculations, and therefore consider handing over part of the functions to the computing device 800B for execution. It should be understood that the functions of the computing device 800A shown in FIG10 may also be performed by multiple computing devices 800. Similarly, the functions of the computing device 800B may also be performed by multiple computing devices 800.

[0119] The embodiments of the present disclosure further provide a computer program product including instructions, which may be software or a program product including instructions that can be run on a computing device or stored in any available medium. When the computer program product is run on at least one computing device, the at least one computing device executes the methods and functions of any of the above embodiments.

[0120] Embodiments of the present disclosure also provide a computer-readable storage medium, which can be any available medium capable of being stored by a computing device, or a data storage device such as a data center that contains one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to execute the methods and functions of any of the above embodiments.

[0121] In general, various embodiments of the present disclosure may be implemented in hardware or dedicated circuitry, software, logic, or any combination thereof. Some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software, which may be executed by a controller, microprocessor, or other computing device. Although various aspects of the embodiments of the present disclosure are shown and described as block diagrams, flow charts, or using some other pictorial representation, it should be understood that the blocks, devices, systems, techniques, or methods described herein may be implemented as, by way of non-limiting example, hardware, software, firmware, dedicated circuitry or logic, general-purpose hardware or a controller or other computing device, or some combination thereof.

[0122] The present disclosure also provides at least one computer program product tangibly stored on a non-transitory computer-readable storage medium. The computer program product includes computer-executable instructions, such as instructions included in program modules, which are executed in a device on a real or virtual processor of a target to perform the process / method as described above with reference to the accompanying drawings. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, etc. that perform specific tasks or implement specific abstract data types. In various embodiments, the functionality of program modules can be combined or divided between program modules as needed. The machine-executable instructions for the program modules can be executed in local or distributed devices. In distributed devices, program modules can be located in local and remote storage media.

[0123] The computer program code for implementing the disclosed method can be written in one or more programming languages. These computer program codes can be provided to the processor of a general-purpose computer, a special-purpose computer or other programmable data processing device so that the program code, when executed by the computer or other programmable data processing device, causes the functions / operations specified in the flow chart and / or block diagram to be implemented. The program code can be executed entirely on a computer, partially on a computer, as an independent software package, partially on a computer and partially on a remote computer or entirely on a remote computer or server.

[0124] In the context of the present disclosure, computer program code or related data may be carried by any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, and the like. Examples of signals may include electrical, optical, radio, acoustic, or other forms of propagated signals, such as carrier waves, infrared signals, and the like.

[0125] A computer-readable medium may be any tangible medium containing or storing a program for or relating to an instruction execution system, apparatus, or device, or a data storage device such as a data center containing one or more available media. A computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination thereof. More detailed examples of computer-readable storage media include an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical storage device, a magnetic storage device, or any suitable combination thereof.

[0126] In addition, although the operations of the method of the present disclosure are described in a particular order in the accompanying drawings, this does not require or imply that these operations must be performed in this particular order, or that all the operations shown must be performed to achieve the desired result. On the contrary, the steps depicted in the flowchart can change the order of execution. Additionally or alternatively, certain steps can be omitted, multiple steps can be combined into one step, and / or one step can be decomposed into multiple steps. It should also be noted that the features and functions of two or more devices according to the present disclosure can be embodied in one device. Conversely, the features and functions of a device described above can be further divided into being embodied by multiple devices.

[0127] The various implementations of the present disclosure have been described above. The above description is exemplary, not exhaustive, and is not limited to the disclosed implementations. Although the present invention has been described in detail with reference to the aforementioned embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the scope of protection of the technical solutions of the various embodiments of the present invention. Many modifications and changes are obvious to those of ordinary skill in the art without departing from the scope and spirit of the various implementations described. The choice of terms used in this article is intended to explain the principles of each implementation, practical applications or improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the various implementations disclosed herein.

Claims

1. A system for data routing between multiple computing nodes, characterized in that: The plurality of computing nodes are located in a communication network comprising at least a first layer topology network and a second layer topology network, wherein the first layer topology network is nested within the second layer topology network, The first layer topology network is based on a surround network topology structure consisting of a first number of nodes, the first number of nodes forming a first node group corresponding to the first layer topology network, The second layer topology network is based on a fully interconnected network topology structure formed by a second number of first node groups, the second number of first node groups forming a second node group corresponding to the second layer topology network, Each of the plurality of computing nodes at least includes a first port set corresponding to the first layer topology network and a second port set corresponding to the second layer topology network.

2. The system according to claim 1, characterized in that The first number of nodes are interconnected in the first layer topology network in a manner that adjacent nodes are interconnected to form the first layer topology network, and The second number of first node groups are interconnected in the second layer topology network in an interconnected manner to form the second layer topology network, The node coordinates of each of the plurality of computing nodes in the communication network are determined based on the port number of the first set of ports and the port number of the second set of ports.

3. The system according to claim 1 or 2, characterized in that: The multiple computing nodes include a source node and a destination node, wherein: The source node includes a first source port set for the first layer topology network and a second source port set for the second layer topology network, wherein the first source port set includes a plurality of first source ports corresponding to a dimension of the first layer topology network, and the second source port set includes at least one second source port for node connection in the second layer topology network, wherein the first source port has a first source port number and the second source port has a second source port number, The destination node includes a first destination port set for the first layer topology network and a second destination port set for the second layer topology network, wherein the first destination port set includes a plurality of first destination ports corresponding to a dimension of the first layer topology network, and the second destination port set includes at least one second destination port for node connection in the second layer topology network, wherein the first destination port has a first destination port number, and the second destination port has a second destination port number, The source node performs the following operations: Obtain a first source port number and a second source port number of the source node; Obtain a first destination port number and a second destination port number of the destination node; Determine a data routing path from the source node to the destination node based on the first source port number, the second source port number, the first destination port number, and the second destination port number; and Based on the determined data routing path, the data is sent to the destination node.

4. The system according to claim 3, characterized in that The node coordinates of the source node in the first layer topology network are indicated by a first source port number set, wherein the first source port number set includes first source ports and first source port numbers corresponding to respective dimensions of the first layer topology network, The node coordinates of the destination node in the first layer topology network are indicated by a first destination port number set, wherein the first destination port number set includes first destination ports and first destination port numbers corresponding to each dimension of the first layer topology network, respectively. The node coordinates of the source node in the plurality of computing nodes are indicated by the first source port number set and the second source port number, wherein the second source port number is determined based on the first source port number of the first source port in the first source port set, The node coordinates of the destination node in the plurality of computing nodes are indicated by the first destination port number set and the second destination port number, wherein the second destination port number is determined based on a first destination port number of a first destination port in the first destination port set.

5. The system according to claim 4, characterized in that Determining a data routing path from the source node to the destination node includes: Based on the second source port number of the source node and the second destination port number of the destination node, determining whether the source node and the destination node are in the same first node group, wherein a plurality of nodes belonging to the first node group are in the same first layer topology network; If it is determined that the source node and the destination node are in the same first node group, a first step for the first layer topology network is performed. Data routing processing; If it is determined that the source node and the destination node are not in the same first node group, a second data routing process for the second layer topology network is performed.

6. The system according to claim 5, characterized in that The multiple dimensions of the first layer topology network include a first dimension, a second dimension, and a third dimension, the first source port set includes a positive first source port and a negative first source port corresponding to the first dimension, the second dimension, and the third dimension, respectively. The first data routing process includes: determining, for each of the first dimension, the second dimension, and the third dimension, an offset between a first source port number of a corresponding dimension of the source node and a first destination port number of a corresponding dimension of the destination node, wherein: If the offset is greater than or equal to a threshold value, and the first source port number of the corresponding dimension of the source node is less than or equal to the first destination port number of the corresponding dimension of the destination node, data is sent from the negative first source port of the source node to the positive first source port of the destination node in the corresponding dimension; or, if the offset is greater than or equal to a threshold value, and the first source port number of the corresponding dimension of the source node is greater than the first destination port number of the corresponding dimension of the destination node, data is sent from the positive first source port of the source node to the negative first destination port of the destination node in the corresponding dimension; or If the offset is less than the threshold, and the first source port number of the corresponding dimension of the source node is less than or equal to the first destination port number of the corresponding dimension of the destination node, then data is sent from the positive first source port of the source node to the negative first destination port of the destination node on the corresponding dimension; or, if the offset is less than the threshold, and if the first source port number of the corresponding dimension of the source node is less than or equal to the first destination port number of the corresponding dimension of the destination node, then data is sent from the negative first source port of the source node to the positive first source port of the destination node on the corresponding dimension.

7. The system according to claim 5, characterized in that The plurality of computing nodes further include a jump node, wherein the jump node includes a first jump port set for a first layer topology network and a second jump port set for a second layer topology network, wherein the first jump port set includes a plurality of first jump ports corresponding to a dimension of the first layer topology network, and the second jump port set includes at least one second jump port for connecting to a node in the second layer topology network, wherein the first jump port has a first jump port number, and the second jump port has a second jump port number, The second data routing process includes: determining whether there is a direct link in the second layer topology network between the first node group to which the source node belongs and the first node group to which the destination node belongs, wherein: If there is a direct link in the second layer topology network, sending data from the second source port of the source node to the second destination port of the destination node, and performing the first data routing process between the first source port set of the source node and the first destination port set of the destination node; If there is no direct link in the second-layer topology network, data is sent from the second source port of the source node to the second jump port of the jump node in the second-layer topology network to forward the data from the second jump port of the jump node to the second destination port of the destination node, wherein there is a direct link in the second-layer topology network between the first node group to which the jump node belongs and the first node group to which the destination node belongs, and wherein the first data routing processing is performed between the first source port set of the source node and the first jump port set of the jump node and between the first jump port set of the jump node and the first destination port set of the destination node.

8. The system according to claim 3, characterized in that The communication network also includes a third layer topology network, wherein the second layer topology network is nested in the third layer topology network, The third layer topology network is based on a fully interconnected network topology structure consisting of a third number of second node groups, wherein the third number of second node groups are interconnected in the third layer topology network to form the third layer topology network. Wherein each of the multiple computing nodes includes at least a first port set corresponding to the first layer topology network, a second port set corresponding to the second layer topology network, and a third port set corresponding to the third layer topology network, and the node coordinates of each of the multiple computing nodes in the communication network are determined based on the port number of the first port set, the port number of the second port set, and the port number of the third port set.

9. The system according to claim 8, characterized in that The source node also includes a third source port set, the third source port set including at least one third source port for node connection in the third layer topology network, wherein the third source port has a third source port number, and the node coordinates of the source node in the plurality of computing nodes are indicated by the first source port number set, the second source port number, and the third source port number, wherein the third source port number is based on the first source port number of the first source port in the first source port set and the second source port number of the second source port set. The source port is determined by the second source port number of the source port, The destination node also includes a third destination port set, the third destination port set including at least one third destination port for node connection in the third layer topology network, wherein the third destination port has a third destination port number, and the node coordinates of the destination node in the plurality of computing nodes are indicated by the first destination port number set, the second destination port number, and the third destination port number, wherein the third destination port number is determined based on a first destination port number of a first destination port in the first destination port set and a second destination port number of a second destination port in the second destination port set, And wherein determining the data routing path from the source node to the destination node further includes: determining the data routing path from the source node to the destination node based on the first source port number set, the second source port number, the third source port number, the first destination port number set, the second destination port number and the third destination port number.

10. The system according to claim 9, characterized in that Determining a data routing path from the source node to the destination node further includes: Based on the third source port number of the source node and the third destination port number of the destination node, determining whether the source node and the destination node are in the same second node group, wherein a plurality of first node groups belonging to the second node group are in the same second layer topology network; If it is determined that the source node and the destination node are not in the same second node group, performing a second data routing process for the second layer topology network; If it is determined that the source node and the destination node are in the same second node group, a third data routing process for the third layer topology network is performed.

11. The system according to claim 10, characterized in that The jump node further includes a third jump port set, wherein the third jump port includes at least one third jump port for connecting to a node in the third layer topology network, wherein the third jump port has a third jump port number, The third data routing process includes: determining whether there is a direct link in the third layer topology network between the second node group to which the source node belongs and the second node group to which the destination node belongs, wherein: If there is a direct link in the third layer topology network, data is sent from the third source port of the source node to the third destination port of the destination node, and based on the second source port number of the source node and the second destination port number of the destination node, it is determined whether the source node and the destination node are in the same first node group to determine whether to perform a first data routing process for the first layer topology network or to perform a second data routing process for the second layer topology network; If there is no direct link in the third-layer topology network, data is sent from the third source port of the source node to the third jump port of the jump node of the third-layer topology network to forward the data from the third jump port of the jump node to the third destination port of the destination node, wherein a direct link in the third-layer topology network exists between the second node group to which the jump node belongs and the second node group to which the destination node belongs.

12. The system according to claim 11, characterized in that The multiple computing nodes also include a ferry node, wherein the ferry node includes a first ferry port set for a first layer topology network, a second ferry port set for a second layer topology network, and a third jump port set for a third layer topology network, wherein the first ferry port set includes a plurality of first ferry ports corresponding to the dimension of the first layer topology network, the second ferry port set includes at least one second ferry port for connecting nodes in the second layer topology network, the second ferry port includes at least one third ferry port for connecting nodes in the third layer topology network, wherein the first ferry port has a first ferry port number, the second ferry port has a second ferry port number, and the third ferry port has a third ferry port number, If there is no direct link in the third layer topology network, the third data routing process further includes: Based on the second jump port number of the jump node and the second destination port number of the destination node, determining whether the jump node and the destination node are in the same first node group; If it is determined that the jump node and the destination node are in the same first node group, performing the first data routing process; If it is determined that the jump node and the destination node are not in the same first node group, it is determined whether there is a direct link in the second layer topology network between the first node group to which the jump node belongs and the first node group to which the destination node belongs, wherein: If there is a direct link in the second layer topology network, sending data from the second jump port of the jump node to the second destination port of the destination node, and performing the first data routing process between the first jump port set of the jump node and the first destination port set of the destination node; If there is no direct link in the second layer topology network, the second jump port of the jump node is connected to the second layer topology network. The second ferry port of a ferry node in the network sends data to forward the data from the second ferry port of the ferry node to the second destination port of the destination node, wherein a direct link in the second layer topology network exists between the first node group to which the ferry node belongs and the first node group to which the destination node belongs, wherein the first data routing processing is performed between the first jump port set of the jump node and the first ferry port set of the ferry node and between the first ferry port set of the ferry node and the first destination port set of the destination node.

13. The system according to claim 12, characterized in that The positive first port and the negative first port corresponding to each dimension of the plurality of dimensions of the first layer topology network are configured with a first virtual channel and a second virtual channel, wherein: If the first source port number of the source node is less than or equal to the first destination port number of the destination node, data is sent from the first virtual channel of the positive first source port of the source node to the first virtual channel of the negative first destination port of the destination node, If the first port number of the source node is greater than the first port number of the destination node, data is sent from the second virtual channel of the positive first source port of the source node to the second virtual channel of the negative first destination port of the destination node.

14. The system according to claim 12, characterized in that The second port corresponding to the second layer topology network is configured with a third virtual channel and a fourth virtual channel, and the third port corresponding to the third layer topology network is configured with a fifth virtual channel and a sixth virtual channel, wherein: For global routing of the second layer topology network, data is sent from the third virtual channel of the second source port of the source node to the third virtual channel of the second destination port of the destination node; for the first global routing of the second layer topology network, data is sent from the fourth virtual channel of the second source port of the source node to the fourth virtual channel of the second destination port of the destination node; and For the global routing of the third-layer topology network, data is sent from the fifth virtual channel of the third source port of the source node to the fifth virtual channel of the third destination port of the destination node. For the first global routing of the third-layer topology network, data is sent from the sixth virtual channel of the third source port of the source node to the sixth virtual channel of the third destination port of the destination node.

15. The system according to claim 9, characterized in that The first layer topology network includes 27 nodes constituting the first node group, The second layer topology network includes 28 of the first node groups constituting a second node group, The third layer topology network includes 757 second node groups, The first source port set includes six first source ports, the six first source ports include three positive first source ports and three negative first source ports corresponding to three dimensions of the three-dimensional surround network topology structure, the second source port set includes one second source port for interconnection of the fully interconnected network topology structure, and the third source port set includes one third source port for interconnection of the fully interconnected network topology structure. The first destination port set includes six first destination ports, the six first destination ports include three positive first destination ports and three negative first destination ports corresponding to three dimensions of the three-dimensional surround network topology structure, the second destination port set includes one second destination port for interconnection of the fully interconnected network topology structure, and the third destination port set includes one third destination port for interconnection of the fully interconnected network topology structure.

16. A method for data routing between multiple computing nodes, characterized in that: The multiple computing nodes include a source node and a destination node, wherein: The plurality of computing nodes are located in a communication network including at least a first layer topology network and a second layer topology network, wherein the first layer topology network is nested in the second layer topology network, the first layer topology network is based on a surround network topology structure consisting of a first number of nodes, the first number of nodes constitute a first node group corresponding to the first layer topology network, the second layer topology network is based on a fully interconnected network topology structure consisting of a second number of first node groups, the second number of first node groups constitute a second node group corresponding to the second layer topology network, wherein each of the plurality of computing nodes at least comprises a first port set corresponding to the first layer topology network and a second port set corresponding to the second layer topology network, the source node comprises a first source port set having a first source port number and a second source port set having a second source port number, the destination node comprises a first destination port set having a first destination port number and a second destination port set having a second destination port number, The method comprises: The source node determines a data routing path from the source node to the destination node based on the first source port number, the second source port number, the first destination port number, and the second destination port number; The source node sends the data to the destination node based on the determined data routing path; and The destination node receives the data from the source node.

17. The method according to claim 16, characterized in that The first number of nodes are interconnected in the first layer topology network in a manner that adjacent nodes are interconnected to form the first layer topology network, and the second number of first node groups are interconnected in the second layer topology network in a manner that they are interconnected to form the second layer topology network, wherein the node coordinates of each of the plurality of computing nodes in the communication network are determined based on the port number of the first port set and the port number of the second port set, The first source port set includes multiple first source ports corresponding to the dimensions of the first layer topology network, the second source port set includes at least one second source port for connecting to nodes in the second layer topology network, and the first destination port set includes multiple first destination ports corresponding to the dimensions of the first layer topology network, and the second destination port set includes at least one second destination port for connecting to nodes in the second layer topology network.

18. The method according to claim 17, characterized in that The node coordinates of the source node in the first layer topology network are indicated by a first source port number set, wherein the first source port number set includes first source ports and first source port numbers corresponding to respective dimensions of the first layer topology network, The node coordinates of the destination node in the first layer topology network are indicated by a first destination port number set, wherein the first destination port number set includes first destination ports and first destination port numbers corresponding to each dimension of the first layer topology network, respectively. The node coordinates of the source node in the plurality of computing nodes are indicated by the first source port number set and the second source port number, wherein the second source port number is determined based on the first source port number of the first source port in the first source port set, The node coordinates of the destination node in the plurality of computing nodes are indicated by the first destination port number set and the second destination port number, wherein the second destination port number is determined based on a first destination port number of a first destination port in the first destination port set.

19. The method according to claim 18, characterized in that Determining a data routing path from the source node to the destination node includes: Based on the second source port number of the source node and the second destination port number of the destination node, determining whether the source node and the destination node are in the same first node group, wherein a plurality of nodes belonging to the first node group are in the same first layer topology network; If it is determined that the source node and the destination node are in the same first node group, performing a first data routing process for the first layer topology network; If it is determined that the source node and the destination node are not in the same first node group, a second data routing process for the second layer topology network is performed.

20. The method according to claim 17, characterized in that The communication network also includes a third layer topology network, wherein the second layer topology network is nested in the third layer topology network, The third layer topology network is based on a fully interconnected network topology structure consisting of a third number of second node groups, wherein the third number of second node groups are interconnected in the third layer topology network to form the third layer topology network. Wherein each of the multiple computing nodes includes at least a first port set corresponding to the first layer topology network, a second port set corresponding to the second layer topology network, and a third port set corresponding to the third layer topology network, and the node coordinates of each of the multiple computing nodes in the communication network are determined based on the port number of the first port set, the port number of the second port set, and the port number of the third port set.

21. The method according to claim 18, characterized in that The source node also includes a third source port set, the third source port set including at least one third source port for node connection in the third layer topology network, wherein the third source port has a third source port number, and the node coordinates of the source node in the plurality of computing nodes are indicated by the first source port number set, the second source port number, and the third source port number, wherein the third source port number is determined based on a first source port number of a first source port in the first source port set and a second source port number of a second source port in the second source port set, The destination node also includes a third destination port set, the third destination port set including at least one third destination port for node connection in the third layer topology network, wherein the third destination port has a third destination port number, and the node coordinates of the destination node in the plurality of computing nodes are indicated by the first destination port number set, the second destination port number, and the third destination port number, wherein the third destination port number is determined based on a first destination port number of a first destination port in the first destination port set and a second destination port number of a second destination port in the second destination port set, And wherein determining the data routing path from the source node to the destination node further comprises: based on the first source port number set, the second source port number, the third source port number, the first destination port number set, the second destination port number and the The third destination port number determines a data routing path from the source node to the destination node.

22. A device for data routing between multiple computing nodes, characterized in that: The plurality of computing nodes include a source node and a destination node, and the device corresponds to at least the source node, wherein: The plurality of computing nodes are located in a communication network including at least a first layer topology network and a second layer topology network, wherein the first layer topology network is nested in the second layer topology network, the first layer topology network is based on a surround network topology structure consisting of a first number of nodes, the first number of nodes constitute a first node group corresponding to the first layer topology network, the second layer topology network is based on a fully interconnected network topology structure consisting of a second number of first node groups, the second number of first node groups constitute a second node group corresponding to the second layer topology network, wherein each of the plurality of computing nodes at least comprises a first port set corresponding to the first layer topology network and a second port set corresponding to the second layer topology network, the source node comprises a first source port set having a first source port number and a second source port set having a second source port number, the destination node comprises a first destination port set having a first destination port number and a second destination port set having a second destination port number, The device comprises: A number acquisition module, wherein the number acquisition module is configured to acquire a first source port number and a second source port number of the source node, and acquire a first destination port number and a second destination port number of the destination node; a path determination module, the path determination module being configured to determine a data routing path from the source node to the destination node based on the first source port number, the second source port number, the first destination port number, and the second destination port number; and A data transmission module is configured to send the data to the destination node based on the determined data routing path.

23. A device for data routing between multiple computing nodes, characterized in that: The plurality of computing nodes include a source node and a destination node, and the device corresponds to at least the destination node, wherein: The plurality of computing nodes are located in a communication network including at least a first layer topology network and a second layer topology network, wherein the first layer topology network is nested in the second layer topology network, the first layer topology network is based on a surround network topology structure consisting of a first number of nodes, the first number of nodes constitute a first node group corresponding to the first layer topology network, the second layer topology network is based on a fully interconnected network topology structure consisting of a second number of first node groups, the second number of first node groups constitute a second node group corresponding to the second layer topology network, wherein each of the plurality of computing nodes at least comprises a first port set corresponding to the first layer topology network and a second port set corresponding to the second layer topology network, the source node comprises a first source port set having a first source port number and a second source port set having a second source port number, the destination node comprises a first destination port set having a first destination port number and a second destination port set having a second destination port number, The device includes a data transmission module configured to receive data transmitted based on a data routing path from the source node to the destination node, wherein the data routing path is determined based on the first source port number, the second source port number, the first destination port number, and the second destination port number.

Citation Information

Patent Citations

  • Method for constructing Torus network, Torus network and routing algorithm

    CN107612746A

  • Three-dimensional network topology structure and routing algorithm thereof

    CN109561034A

  • Method and apparatus for providing a non-overlapping ring-mesh network topology

    WO2013191844A1

Cited By

  • Topological structure of interconnection network, routing method and device

    CN119945968A

  • Topological Structure, Routing Method and Device of Interconnection Network

    CN119945968B

  • Internet hospital mobile terminal secure communication method and device based on message ferry

    CN120977531A

  • Data packet transmission method and device, electronic equipment, storage medium and program product

    CN122621561A

  • Data packet transmission method and apparatus, electronic device, storage medium, and program product

    CN122621561B