Systems, methods, and apparatus for data routing between multiple compute nodes

By adopting nested surround network and fully interconnected network topology in large-scale computing systems, the problems of high network performance and energy consumption in E-class supercomputing systems are solved, and efficient data routing and throughput are achieved.

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

Patent Information

Application Number
CN202311126196.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-06-26
Filing Date
2023-08-30
Publication Date
2024-12-27
Estimated Expiration
Not applicable · inactive patent

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 and high energy consumption lead to increased network cost and power consumption.

Method used

The data routing system adopts a nested topology structure, where the first layer topology network is a surround network and the second layer topology network is a fully interconnected network. It uses the multi-path characteristics of the surrounding network and the global communication characteristics of the fully interconnected network to achieve high Bandwidth, low latency data routing.

Benefits of technology

It effectively 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 needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119211106A_ABST
    Figure CN119211106A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data routing system, method and device. The computing nodes are located in a communication network at least comprising a first-layer topology network and a second-layer topology network, the first-layer topology network is nested in the second-layer topology network, and the first-layer topology network is based on a surrounding network topology structure formed by a first number of nodes. The first number of nodes form a first node group corresponding to the first-layer topology network, the second-layer topology network is based on a full-interconnection network topology structure formed by a second number of first node groups, and the second number of first node groups form a second node group corresponding to the second-layer topology network. Each node 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. Therefore, large-scale networking suitable for high-bandwidth, low-delay and high-throughput requirements can be provided through the overall topological structure that the surround network is nested in the full-interconnection network.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] 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

[0002] With the advancement of science and technology, applications such as artificial intelligence (AI), big data analysis, and high-performance computing are developing rapidly. In particular, the large-scale development of generative artificial intelligence applications has greatly increased the demand for large-scale computing. For example, E-class (100 trillion floating-point operations per second) supercomputers involve computing systems with tens of thousands of nodes, which puts higher requirements and greater challenges on the overall network performance, cost, and power consumption of the computing system.

[0003] For example, as the network scale of computing systems increases, the number of networking hops increases, latency increases, and congestion intensifies, resulting in a sharp decrease in network bandwidth utilization. For example, the energy consumption of conventional data center network equipment currently accounts for 20%-30%, and network costs account for 10%-20%. Furthermore, for computing systems that support 10E-class supercomputers, the system scale will reach hundreds of thousands of nodes, the network needs to provide 500,000 port access capabilities, and the system energy consumption is expected to be as high as 50MW (megawatts). Therefore, for large-scale computing systems, network costs and power consumption face huge challenges, and how to effectively reduce network costs and power consumption has become a topic that needs further research. Summary of the invention

[0004] 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.

[0005] 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 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 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.

[0006] 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 delays, and increasing network throughput.

[0007] 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 a plurality of 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 a plurality of 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 the first source port number and the second source port number of the source node; obtaining the first destination port number and the second destination port number of the destination node; determining 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; 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, which is suitable for the requirements of pipeline parallelism and data parallelism of the Ring All-Reduce communication algorithm in the large-scale model, so that for the situation of large-scale networking, it can effectively reduce the physical cost and power consumption of the networking, while greatly improving the networking communication efficiency, reducing communication delays, and increasing network throughput.

[0008] 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 includes 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 includes 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, so that the shortest route can be quickly calculated to effectively promote hardware implementation.

[0009] 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 route from the source node to the destination node can be quickly determined to improve data routing efficiency.

[0010] 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: for each of the first dimension, the second dimension, and the third dimension, determining 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 on 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 on the corresponding dimension. Alternatively, if the offset is less than the 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 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 value, 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, 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 node coordinates corresponding to ports and dimensions to quickly implement the shortest distance communication with the lowest communication delay.

[0011] In some embodiments, 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 the dimension of the first layer topology network, and the second jump port set includes at least one second jump port for node connection 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 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. According to an embodiment of the present disclosure, it is possible to implement data routing in each layer 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.

[0012] 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 in an interconnected manner 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.

[0013] 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 also 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.

[0014] 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.

[0015] 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 node connection 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 there is a direct link in the third layer topology network 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 nodes in the second layer topology network, and 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 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 there is a direct link in the second layer topology network 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 the node coordinates with deterministic topological characteristics across different types of topology networks and different levels of topology networks, so as to achieve the shortest distance communication with the lowest communication delay while effectively promoting hardware implementation.

[0016] In some embodiments, the positive first port and the negative first port corresponding to each dimension 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 the 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, and 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 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, and 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, the port interleaving for data routing using virtual channels can effectively avoid the communication dependency loop problem between nodes in each level of topology network, thereby preventing the generation of deadlock.

[0017] In some embodiments, the first layer topology network includes 27 nodes constituting the first node group, the second layer topology network includes 28 first node groups constituting the second node group, and the third layer topology network includes 757 second node groups. The first source port set includes 6 first source ports, the 6 first source ports include 3 positive first source ports and 3 negative first source ports corresponding to the three dimensions of the three-dimensional surround network topology structure, the second source port set includes 1 second source port for interconnection of the fully interconnected network topology structure, and the third source port set includes 1 third source port for interconnection of the fully interconnected network topology structure. The first destination port set includes 6 first destination ports, the 6 first destination ports include 3 positive first destination ports and 3 negative first destination ports corresponding to the three dimensions of the three-dimensional surround network topology structure, the second destination port set includes 1 second destination port for interconnection of the fully interconnected network topology structure, and the third destination port set includes 1 third destination port for interconnection of the fully interconnected network topology structure. According to the embodiments of the present disclosure, it can be 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.

[0018] In a second aspect of the present disclosure, a method for data routing between multiple computing nodes is provided. The multiple computing nodes include source nodes and destination nodes, 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 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 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.

[0019] 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, 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 a plurality of 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 connecting to nodes in the second layer topology network, and the first destination port set includes a plurality of 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.

[0020] 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 first source ports and 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 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 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.

[0021] In some embodiments, determining the 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 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.

[0022] 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 in an interconnected manner 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.

[0023] 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 also 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.

[0024] In a third aspect of the present disclosure, a device for data routing between multiple computing nodes is provided. The device corresponds to at least the source 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 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 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 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.

[0025] 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, 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 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 apparatus comprises 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.

[0026] In a fourth aspect of the present disclosure, a computing device is provided, wherein the computing device is a source node of data routing among a plurality of computing nodes, 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 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 having a first source port number and a second source port set having 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 having a first destination port number and a second destination port set having 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 executes: 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 may 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 may also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.

[0027] 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, 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 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 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 executes: receiving 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 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 executes: 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; based on the first source port number, the second source port number, the first destination port number, and the second destination port number, determining a data routing path from the source node to the destination node; and based on the determined data routing path, sending the data from the source node to the destination node, 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.

[0029] 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, and when the instructions are executed by a computing device according to the fourth aspect and another aspect of the present disclosure, the computing device executes: 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 based on the determined data routing path, sending the data from the source node to the destination node, 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-transient. The computer-readable storage medium includes, but is not limited to, a volatile memory (e.g., a random access memory), a non-volatile memory (e.g., a flash memory, a hard disk (HDD), a solid-state drive (SSD), etc.).

[0030] 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, enable 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, and in the case where the method provided by the aforementioned first aspect or its possible variations needs to be used, the software installation package can be downloaded or copied and executed on a computing device. BRIEF DESCRIPTION OF THE DRAWINGS

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

[0032] Figure 1A A schematic diagram of a data routing system according to an embodiment of the present disclosure is shown;

[0033] Figure 1BA schematic diagram showing a configuration structure of a node according to an embodiment of the present disclosure;

[0034] Figure 2A A schematic diagram showing an exemplary process of data routing according to an embodiment of the present disclosure is shown;

[0035] Figure 2B An example flow chart of a data routing method according to an embodiment of the present disclosure is shown;

[0036] Figure 2C An example flow chart of a data routing path determination process according to an embodiment of the present disclosure is shown;

[0037] Figure 3A A schematic diagram showing an exemplary process of data routing according to an embodiment of the present disclosure is shown;

[0038] Figure 3B An example flow chart of a data routing path determination process according to an embodiment of the present disclosure is shown;

[0039] Figure 4A A further schematic example diagram of a data routing system according to an embodiment of the present disclosure is shown;

[0040] Figure 4B A further schematic example diagram of a data routing system according to an embodiment of the present disclosure is shown;

[0041] Figure 4C A schematic diagram showing an example of a node structure according to an embodiment of the present disclosure is shown;

[0042] Figure 4D Another schematic example diagram of a node structure according to an embodiment of the present disclosure is shown;

[0043] Figure 5 A further schematic flow chart of a data routing method according to an embodiment of the present disclosure is shown;

[0044] Fig. 6A A schematic example diagram of a deadlock avoidance method according to an embodiment of the present disclosure is shown;

[0045] Figure 6B A schematic example diagram of a deadlock avoidance method according to an embodiment of the present disclosure is shown;

[0046] Figure 7 A schematic block diagram of a data routing device according to some embodiments of the present disclosure is shown;

[0047] Figure 8 A schematic block diagram showing an example device that can be used to implement an example implementation of the present disclosure;

[0048] Fig. 9 A schematic block diagram illustrating an example device cluster that may be used to implement an example implementation of the present disclosure; and

[0049] Fig.10 A schematic block diagram of another example device that can be used to implement the example implementations of the present disclosure is shown. DETAILED DESCRIPTION

[0050] The preferred implementation of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although example 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 limited by the embodiments set forth herein. On the contrary, these embodiments are provided to make the present disclosure more thorough and complete, and to fully convey the scope of the present disclosure to those skilled in the art.

[0051] As used herein, the term "including" and its variations mean open inclusion, i.e., "including but not limited to". Unless otherwise stated, the term "or" means "and / or". The term "based on" means "based at least in part on". The terms "embodiment" and "some embodiments" both mean "at least some embodiments". Other explicit and implicit definitions may also be included below.

[0052] For the network topology of a computing system used for large-scale computing, it is necessary to consider multiple network features such as access port scale, number of switches, number of links, network diameter (e.g., number of hops), and business adaptability. In some specific implementations, when a tree network topology is adopted, as the scale of the system 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 scale of the system expands, the communication delay increases linearly, resulting in poor global communication performance of the computing system.

[0053] The inventors of the present disclosure have found that the biggest challenges of large-scale networks involving multiple nodes are the networking scale and system energy consumption, which requires high-radix switches to provide high-bandwidth, low-latency communication capabilities during data routing, and the network topology in the above specific implementation is mainly limited by the power consumption and manufacturing process of high-radix switches. In this regard, the inventors of the present disclosure consider providing a network topology with global communication performance suitable for large-scale networking. To this end, the present disclosure provides a solution for data routing between multiple computing nodes. In the scheme of the present disclosure, a 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 (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 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. 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.

[0054] Figure 1A Schematic diagram of a data routing system according to an embodiment of the present disclosure is shown. Figure 1AAs shown, 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 including 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 in a second-layer topology network 130, wherein the first-layer topology network 120 is based on a surround 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 constitutes a first node group corresponding to the first-layer topology network 120 (e.g., 120-1, 120-2, ..., 120-Q, where Q is a positive integer greater than 1), 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 constitutes a second node group corresponding to the second-layer topology network 130. In an embodiment of the present disclosure, each of the multiple 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 an embodiment of the present disclosure, as Figure 1A As shown, each layer of topological network can be nested in the form of N-layer topological network (where N is a positive integer greater than 1), for example, the second-layer topological network can be further nested in the third-layer topological network, and the third-layer topological network can be further nested in the fourth-layer topological network, and so on. In some embodiments, the first-layer topological network can be based on a surround network topology structure, and the second-layer topological network and the subsequent nested layers of topological networks can be based on a fully interconnected network topology structure. It should be understood that the number of each layer of the second-layer topological network, the third-layer topological network, and the N-th layer topological network is not particularly limited.

[0055] In the embodiment of the present disclosure, the node 110 can be implemented as a physical node or 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 the embodiment of the present disclosure, the 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 can have 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 the 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 (Internet), a virtual LAN (VLAN), an enterprise LAN, a layer 3 virtual private network (VPN), an intranet, or any combination. 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, can not communicate with each other. In an embodiment of the present disclosure, multiple nodes 110 may include a source node and a target node, wherein the source node is a node that is the origin of sending data, and the target node is a node that is the destination of receiving data. In some embodiments, in the data routing path from the source node to the target node, a jump node may also be included, wherein the jump node is a node for forwarding data. In some embodiments, in the data routing path from the source node via the jump node to the target node, a ferry node may also be included, wherein the ferry node is a node for further forwarding data. It should be understood that in the data routing path from the source node to the target node, more or fewer nodes may also be included, and the present disclosure does not make special restrictions 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 used between the nodes 110 of the communication network 140 using a predefined network communication protocol to interact, such as some known wired protocols, wireless protocols, PLC protocols or other suitable data transmission protocols. The present disclosure does not impose any particular limitation on this. According to the embodiments of the present disclosure, by nesting the surround network in 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 a large-scale network suitable for high bandwidth, low latency, and high throughput requirements.

[0056] 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 to form 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 to form 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, a node configuration example of an embodiment of the present disclosure is further described.

[0057] Figure 1B Schematic diagram of a configuration structure of a node according to an embodiment of the present disclosure is shown. Figure 1BAs shown, the node 110 may include a plurality of ports 111-1, 111-2, ..., 111-N (hereinafter sometimes collectively referred to as "ports 111") for data routing of the node 110 in the data routing system 10. In an embodiment of the present disclosure, the port 111 may be configured to correspond to the topological network level where the node 110 is located, so as to be used for data transmission of the node 110 in the topological network of the corresponding level. In an embodiment of the present disclosure, the port 111 may be configured as different port sets corresponding to different topological network levels where the node 110 is located. In some embodiments, the first-layer topological network where the node 110 is located corresponds to the first port set of the port 111, the second-layer topological network where the node 110 is located corresponds to the second port set of the port 111, the third-layer topological network where the node 110 is located corresponds to the third port set of the port 111, and so on. In an embodiment of the present disclosure, each port in the port 111 has a corresponding port number, and the port number set of the corresponding port in the port 111 can be used to indicate the node coordinates of the node 111 in the topological network in the data routing system 10. In an embodiment of the present disclosure, when the node 110 is used as a source node, the port 111 can function as a source port for sending data, and when the node 110 is used as a destination node, the port 111 can function as a destination port for receiving data. In some embodiments, when the node 110 is used as a jump node, the port 111 can function as a jump port for forwarding data, and when the node 110 is used as a ferry node, the port 111 can function as a ferry port for further forwarding data. It should be understood that the operation or function of the port 111 of the node 110 is not particularly limited, and it can function synchronously or asynchronously as one or more of the source port, the destination port, the jump port, and the ferry port, and of course, it 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 of the node 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.

[0058] Figure 2A FIG. 1 shows a schematic example diagram of a data routing process according to an embodiment of the present disclosure. Figure 2A As shown, the data routing system 10 includes at least a first layer topology network L1 (eg, corresponding to Figure 1AThe first layer topology network 120 shown in the figure) and the second layer topology network L2, wherein the first layer topology network L1 is included in the second layer topology network L2 in a nested manner (for example, corresponding to Figure 1A In some embodiments, the first layer topology network L1 is included in the second layer topology network L2 in a nested manner. Figure 2A In the embodiment shown, Figure 1AThe node 110-1 among the multiple nodes shown 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 a plurality of 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 a plurality of 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 the respective dimensions 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 the respective dimensions of the first layer topology network, respectively. In some embodiments, the node coordinates of a source node among 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 a first source port number of a first source port in the first source port set, and the node coordinates of a destination node among 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 may 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 may 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}.

[0059] Figure 2B FIG. 1 shows an example flow chart of a data routing method according to an embodiment of the present disclosure. Figure 2B As shown, at box 251, the first source port number and the second source port number of the source node are obtained. At box 253, the first destination port number and the second destination port number of the destination node are obtained. At box 255, based on the first source port number, the second source port number, the first destination port number and the second destination port number, a data routing path from the source node to the destination node is determined. At box 257, data is sent to the destination node based on the determined data routing path. Figure 2A In the specific implementation of the data routing process shown, for example, when the source node 110-1 sends data to the destination node 110-2, the source node 110-1 obtains the first source port number of the first source port set 211 and the second source port number of the second source port set 221 of the source node 110-1, 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 the destination node 110-2. The source node 110-1 determines the data routing path from the source node 110-1 to the 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, wherein the data routing path can be implemented in the first layer topology network L1, or in the first layer topology network L1 and the second layer topology network L2, and of course can also be implemented in other layers of topology networks. Then, the source node 110-1 sends data to the destination node 110-2 in the data routing system 10 based on the determined data routing path. In an embodiment of the present disclosure, as Figure 2B Determining the data routing path from the source node to the destination node at block 255 may include: Figure 2CFurther data routing path determination processing is shown. At box 270, 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, 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 box 270 that the source node 110-1 and the destination node 110-2 are in the same first node group, then at box 271, a first data routing processing for the first layer topology network L1 is performed. If it is determined at box 271 that the source node 110-1 and the destination node 110-2 are not in the same first node group, then at box 272, a second data routing processing for the second layer topology network L2 is performed.

[0060] 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. Figure 2CThe first data routing process performed at the illustrated block 271 may further include processes from block 2711 to block 2713. For example, at block 2711, for each of the first dimension, the second dimension, and the third dimension, an offset between the first source port number of the corresponding dimension of the source node 110-1 and the first destination port number of the corresponding dimension of the destination node 110-2 is determined. If it is determined at block 2711 that 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 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 2712, data is sent from the negative first source port of the source node 110-1 to the positive first destination port of the 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.

[0061] 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 dimension of the first layer topology network L1, and the second jump port set includes at least one second jump port for connecting to a node 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, in Figure 2CThe second data routing process performed at the illustrated block 272 includes the processes of blocks 2721 to 2723. For example, at block 2721, it is determined whether there is a direct link in the second layer topology network L2 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 block 2721 that there is a direct link in the second layer topology network L2, at block 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 the 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 a 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.

[0062] Figure 3A FIG. 1 shows a schematic example diagram of a data routing process according to an embodiment of the present disclosure. Figure 3A As shown, 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. Figure 3A In the embodiment shown, Figure 1A The node 110-1 among the multiple nodes shown is, for example, a source node, and the node 110-2 is, for example, a destination node. In the specific example of the present disclosure, the source node 110-1 is Figure 2A The illustrated embodiment also includes a third source port set 231, which 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 is Figure 2A The illustrated embodiment further includes a third destination port set 232, which includes at least one third destination port 232-1, ..., 232-N for connecting 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.

[0063] In an embodiment of the present disclosure, determining the data routing path from the source node 110-1 to the destination node 110-2 may also include: determining the data routing path from the source node 110-1 to the 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. Figure 3B FIG. 2 shows a further data routing path determination process according to an embodiment of the present disclosure. Figure 3B As shown, at box 301, the first source port number, the second source port number and the third source port number of the source node 110-1 are obtained. At box 303, the first destination port number, the second destination port number and the third destination port number of the destination node 110-2 are obtained. At box 305, 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, the data routing path from the source node 110-1 to the destination node 110-2 is determined. At box 307, based on the third source port number of the source node 110-1 and the third 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 second node group, wherein the multiple 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 the source node 110-1 and the 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 the source node 110-1 and the 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.

[0064] In an embodiment of the present disclosure, the jump node further includes a third jump port set, the third jump port including at least one third jump port for node connection 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 box 311 may include boxes 3111 to 3118. For example, at box 3111, it is determined whether there is a direct link in the third layer topology network L2 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, wherein 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.

[0065] 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 dimension 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 box 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 box 3115. If it is determined at box 3114 that the jump node and the destination node 110-2 are not in the same first node group, it is determined at box 3116 whether 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. If it is determined at box 3116 that there is a direct link in the second layer topology network L2, data is sent from the second jump port of the jump node to the second destination port of the destination node 110-2 at box 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.

[0066] Figure 4A and Figure 4B A further schematic example diagram of a data routing system according to an embodiment of the present disclosure is shown. Figure 4A and Figure 4BThe difference lies in the specific configuration of the node structure. As an example, Figure 4A and Figure 4B The data routing system 10 shown 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 572292 nodes, wherein every 756 nodes of the 572292 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 nodes 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 a single second node group, and the 28 first node groups constitute a second node group. In the embodiment of the present disclosure, the first layer topology network L1 includes 27 nodes constituting a first node group, the second layer topology network L2 includes 28 first node groups constituting a second node group, and the third layer topology network L3 includes 757 second node groups. In the embodiment of the present disclosure, the first layer topology network L1 adopts a three-dimensional Torus topology structure to define the expansion of the first dimension (X dimension), the second dimension (Y dimension), and the third dimension (Z dimension).

[0067] According to the embodiments of the present disclosure, as described above, the inventors of the present disclosure have found through research that the Torus topology can be expanded based on low-port routers, and its networking cost is low and has multi-path characteristics. On the other hand, for large-scale network networking, due to the large physical diameter of the network, the communication delay increases linearly with the network scale, and it is easy to form a blocked network. Since typical high-performance applications generally have communication locality, communication usually only occurs between adjacent nodes. For example, for applications such as ocean current simulation and weather forecasting, their communication modes are naturally adaptable to the Torus topology. For example, in the case of a 3-dimensional Torus topology network, communication routes can be provided in the three dimensions of X, Y, and Z, a total of 6 directions, which can effectively support neighbor communication. Therefore, for the global communication of the AI ​​large model using the Ring All-Reduce communication algorithm, the use of pipeline parallelism, data parallelism and other communication models in multiple dimensions of Torus can effectively accelerate the AI ​​communication efficiency and improve computing performance. On the other hand, the global communication congestion of the Torus topology network is serious, and the communication delay expands linearly with the network scale. Even if a high-dimensional Torus is used, there are problems such as global communication congestion. This problem can be solved by further adopting a Full-Mesh topology network that is nested in a network that can provide high bisection bandwidth for global communication traffic. In the embodiment of the present disclosure, the Torus topology network is expanded by adopting a Full-Mesh topology network to effectively reduce the network diameter and communication delay, thereby effectively reducing the congestion problem caused by global communication based on the Torus topology network through the global links of the Full-Mesh topology network.

[0068] The inventor of the present disclosure has further discovered through research that for the 500,000-port networking requirement of the 10E-class supercomputer network, if the Torus topology network is nested in a layer of Full-Mesh topology network, there will still be the problem that the internal network scale of Torus is too large and the network diameter is too large, and it cannot meet the communication requirements of high-performance applications of the 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 level to reduce the network diameter, thereby reducing communication delay, improving communication performance, and increasing network throughput. In an embodiment of the present disclosure, the Full-Mesh topology network with the Torus topology network nested is further nested in the Full-Mesh topology network to achieve a three-level topology network architecture, so as to fully meet the communication requirements of the 10E-class supercomputer network.

[0069] Figure 4C A schematic diagram of a node structure according to an embodiment of the present disclosure is shown, in which Figure 4AA single node (N) in the illustrated data routing system 10 may include a processor (C) and a router (R) coupled to the processor (C). Figure 4D Another schematic diagram of a node structure according to an embodiment of the present disclosure is shown, in which Figure 4B The individual nodes in the data routing system 10 shown may be constructed to integrate a routing engine in a processor. Figure 4C As shown, a router (R) may include one or more communication engines, a crossbar matrix (Crossbar) and multiple ports. Figure 4C In the illustrated embodiment, the multiple ports of the router (R) may include a first port set of 6 first ports, a second port set including 1 second port (e.g., L-Link) for interconnection of the Full-Mesh topology structure, and a third source port set including 1 third source port (e.g., G-Link) for interconnection of the Full-Mesh topology structure, wherein the 6 first ports include 3 positive first ports (e.g., Link X+, Link Y+, Link Z+) and 3 negative first ports (e.g., Link X-, Link Y-, Link Z-) corresponding to the three dimensions of the three-dimensional Torus topology structure, respectively. Figure 4D As shown, the processor of a single node includes a control unit, a logic operation unit, a storage unit, and a routing engine. Figure 4D In the illustrated embodiment, the routing engine may include one or more communication engines, a crossbar, and a plurality of ports, wherein the plurality of 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, respectively. According to an embodiment of the present disclosure, Figure 4D The node structure shown is compared to Figure 4C The node structure shown can achieve direct connection without switches due to the integrated routing engine in the processor, thereby further reducing costs and power consumption, making it more suitable for the overall cost and overhead of ultra-large-scale networking.

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

[0071] In an embodiment of the present disclosure, the node coordinates of a node can be defined by a set of port numbers of the node, for example, it can be expressed as {G, L, X, Y, Z}. Wherein, G represents the group number of the second port set in the third-layer topological network where the node is located, and its value range can be 0-756, and L represents the group number of the first port set in the second-layer topological network where the node is located, and its value range can be 0-27. Wherein, X, Y, and Z respectively represent the numbers of the three dimensions X dimension, Y dimension, and Z dimension in the first-layer topological 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.

[0072] In an embodiment of the present disclosure, port No. 1 and port No. 2 in the first port set of a router or routing engine can be used as routing ports in the positive and negative directions of the X dimension (for example, port 1: Link X+; port 2: Link X-), port No. 3 and port No. 4 in the first port set of a router or routing engine can be used as routing ports in the positive and negative directions of the Y dimension (for example, port 3: Link Y+; port 4: Link Y-), and port No. 5 and port No. 6 of a router or routing engine can be used as routing ports in the positive and negative 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 dimension of the X dimension, the Y dimension, and the Z dimension are connected to the negative direction ports of the opposite end, so as to form a ring network topology structure by connecting in sequence, 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 is defined as an L-Link as an interconnection port between each first-layer topology network corresponding to each first port set in the second-layer topology network, and 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):

[0073] PL = X*9+Y*3+Z Formula (1)

[0074] 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 the value range is 0-2, and the value range of the number PL of the No. 7 port can be 0-26.

[0075] In some embodiments, if the source node number is {Gs, Ls, Xs, Ys, Zs}, the destination node number is {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 rules and routing relationships between the first-layer topology networks corresponding to the first-port sets in the second-layer topology network can be determined by the following formula (2):

[0076] Ls + PLs = Ld && PLd + PLs=26 Formula (2)

[0077] Among them, 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.

[0078] 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):

[0079] PG = 27*L + X*9 + Y*3 +Z Formula (3)

[0080] 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.

[0081] In some embodiments, if the source node number is {Gs, Ls, Xs, Ys, Zs}, the destination node number is {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 rules and routing relationships 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):

[0082] 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 of 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 problem of excessive network scale and excessive network diameter.

[0084] Figure 5 FIG. 2 shows a further schematic flow chart of a data routing method according to an embodiment of the present disclosure. Figure 5 As shown, at box 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:

[0085] Gd == Gc Formula (5)

[0086] 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.

[0087] PGc = 27*Lc + Xc*9 + Yc*3 + Zc = 755 - 27*Ld - Xd*9 - Yd*3 - Zd Formula (6)

[0088] If it is determined at block 511 that there is no direct link, 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, it can be determined based on the following formula (7) 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:

[0089] Lm == Lc Formula (7)

[0090] 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):

[0091] PGm = 755 - 27*Ld - Xd*9 - Yd*3 - Zd Formula (8)

[0092] Lm = PGm / 27 Formula (9)

[0093] Xm = PGm / 9 Formula (10)

[0094] Ym = PGm / 3 Formula (11)

[0095] Zm = PGm / 3 Formula (12)

[0096] If it is determined at box 513 that the current node and the jump node are in the same first node group in the second layer topology network, then at box 514, the data is routed from the current node to the jump node, and the process proceeds to box 520. If it is determined at box 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 box 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):

[0097] Gn = Gc Formula (13)

[0098] Ln = Lc Formula (14)

[0099] PLn = 26 - Xm*9 - Ym*3 - Zm Formula (15)

[0100] Xn = PLn / 9 Formula (16)

[0101] Yn = PLn / 3 Formula (17)

[0102] Zn=PLn%3 Formula (18)

[0103] At box 516, the data is sent from the current node to the ferry node, then 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 box 510 that the current node and the destination node are in the same second node group in the third layer topology network, it is determined at box 520 whether the current node and the destination node are in the same first node group in the second layer topology network. In some embodiments, it can be determined based on the following formula (19) 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:

[0104] Ld == Lc Formula (19)

[0105] If it is determined at box 520 that the current node and the destination node are in the same first node group in the second layer topology network, then at box 530, in the first layer topology network where the same first node group is located, the data is routed from the current node to the destination node, and the process proceeds to box 540. If it is determined at box 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 box 521, it is determined whether there is a direct link between the current node and the destination node. If it is determined at box 521 that there is a direct link, for example, satisfying the following formula (20), then at box 522, the data is directly forwarded from the L-Link port of the current node to the L-Link port where the destination node is located, and the process proceeds to box 530.

[0106] Lc = Ld - PLc && PLc = 26 - PLd Formula (20)

[0107] If it is determined at block 521 that there is no direct link, 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 may be determined based on the following equations (21) to (25):

[0108] Gm=Gc Formula (21)

[0109] Lm=Ld-26+Xd*9+Yd*3+Zd && PLm=26-Xd*9-Yd*3-Zd Formula (22)

[0110] Xm=PLm / 9 Formula (23)

[0111] Ym=PLm / 3 Formula (24)

[0112] Zm=PLm%3 Formula (25)

[0113] At block 524, data is sent from the current node to the jump node, and then forwarded from the jump node to the destination node. At block 540, the positive and negative directions of the port are determined based on the X-dimensional coordinate Xc of the current node, the X-dimensional coordinate Xd of the target node, 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 X-dimensional coordinate of the target node and the X-dimensional coordinate of the current node and the value [Kx / 2] rounded up to half the X-dimensional length. 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 rounded-up value [Kx / 2] of 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, when 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, and when 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 to half the length of the X-dimensional coordinate, this indicates that the loopback link distance is the shortest in the X-dimensional of the first-layer topology network. Then, at box 542, when 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. When 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 box 550, the positive and negative directions of the port are 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 and negative directions of the port are 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 to 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 length of the Y dimension [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 is the shortest in the Y-dimensional of the first-layer topology network. Then, at box 552, when 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. When 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 and negative directions of the port are 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 and negative directions of the port are 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 in 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 is the shortest in the Z dimension of the first-layer topology network. Then, at box 562, when 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, and when 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 box 560, the data arrives at the destination node to receive the data via the communication engine, 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, a ferry node, etc. can receive data transmitted based on the data routing path from the source node to the destination node; or receive data transmitted based on the data routing path from the source node to the destination node and a forwarding request, and forward the data to the destination node based on the destination node indicated by the forwarding request.

[0114] According to the embodiments 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 a source node to a target node can be determined to achieve the shortest distance communication with the lowest communication delay. Since the node coordinates in the data communication system according to the embodiments of the present disclosure can be determined in the form of ports to achieve a deterministic topological feature, the shortest route can be quickly calculated to effectively facilitate hardware implementation.

[0115] The inventors of the present disclosure further discovered that both the Torus network topology and the Full-mesh network topology have loops and deadlock risks, such as the circular occupation of communication resources (buffers). For example, for the four nodes in the X dimension of the Torus network topology, if each node sends data to the next adjacent node, and the four nodes send data at the same time, the port resources will be cyclically occupied, which will cause deadlock, resulting in communication congestion and network paralysis in severe cases. In this regard, it is considered to set up virtual channels for ports to avoid deadlock effects.

[0116] Fig. 6A and Figure 6B A schematic example diagram of a deadlock avoidance method according to an embodiment of the present disclosure is shown. In an embodiment of the present disclosure, a positive first port and a negative first port corresponding to each dimension of a plurality of 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. Fig. 6A Specifically, it shows the communication path between four nodes in the first layer topology network L1 based on the Torus topology structure at a dimensional level. Figure 6B Specifically, it shows Fig. 6A The communication paths between the four nodes in two dimensions are shown, wherein each port is configured with a first virtual channel VL0 and a second virtual channel VL1. Fig. 6A and Figure 6B As shown, the communication dependencies between nodes in the first layer topology network L1 are not looped and will not cause deadlock.

[0117] 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 the global routing of 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, and for the first global routing of 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 the global routing of 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, and for the first global routing of 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 dependence between nodes in the second layer topology network L2 and the third layer topology network L3 is not looped, and deadlock will not be generated.

[0118] According to an embodiment of the present disclosure, an overall multi-layer topological network is constructed based on a first type of topological network and a second type of topological network, and the node coordinates are directly determined by the port number corresponding to each layer of the topological 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 topological 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 topological 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 topological 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 topological 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, its nodes are based on a 40-port switch, and its network diameter is 15 hops, but it can only support a maximum of 131,072-port network, and cannot meet the network scale of 500,000 nodes. Comparison Example 5 is constructed based on a Dragonfly topology network structure, its nodes are based on a 64-port switch, and its network diameter is 4 hops, but it can only support a maximum of 279,040-port network, and cannot meet the network scale of 500,000 nodes. Therefore, according to the embodiments of the present disclosure, support for large-scale networking and reduction of network diameter can be achieved, thereby reducing network delays and improving communication efficiency.

[0119] Table 1 Topological network feature comparison results

[0120] Embodiments of the present disclosure Comparison Example 1 Comparison Example 2 Comparison Example 3 Comparison Example 4 Comparison Example 5 Number of node ports 8 10 10 8 40 64 Maximum number of network ports 572292 544320 557568 524288 131072 279040 Network diameter 15 53 47 19 15 4

[0121] Table 2 below shows the topological 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, at 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 and greatly reducing network costs and power consumption. For the CrossBar, which is a core resource-type internal crosspoint 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 embodiments of the present disclosure, extremely low network costs and power consumption can be achieved.

[0122] Table 2 Topology network cost comparison results

[0123]

[0124] Figure 7A schematic block diagram of a data routing device according to some embodiments of the present disclosure is shown. 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 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 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 number acquisition module 701, a path determination module 702, and a data transmission module 703. In some embodiments, the number acquisition module 701 may be configured to acquire the first source port number and the second source port number of the source node, and acquire the first destination port number and the second destination port number of the destination node. In some embodiments, the path determination module 702 may 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 may 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 overall topology structure of the surround network in the fully interconnected network, the multi-path characteristics of the surround network topology and the global communication characteristics of the fully interconnected network topology can be utilized to provide a large-scale networking suitable for high bandwidth, low latency, and high throughput requirements, so that the data routing device correspondingly improves communication efficiency and reduces communication failures and delays.

[0125] 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 includes 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 includes 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, so that the shortest route can be quickly calculated to effectively promote hardware implementation.

[0126] 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.

[0127] 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: for each of the first dimension, the second dimension, and the third dimension, determining 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 on 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 on the corresponding dimension. Alternatively, if the offset is less than the 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 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 value, 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, 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 node coordinates corresponding to ports and dimensions to quickly implement the shortest distance communication with the lowest communication delay.

[0128] In some embodiments, 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 the dimension of the first layer topology network, and the second jump port set includes at least one second jump port for node connection 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 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. According to an embodiment of the present disclosure, it is possible to implement data routing in each layer 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.

[0129] In some embodiments, 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 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, and 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, 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.

[0130] 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, then execute the second data routing processing 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, then execute the third data routing processing 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.

[0131] 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 node connection 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 there is a direct link in the third layer topology network 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 nodes in the second layer topology network, and 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 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 there is a direct link in the second layer topology network 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 the node coordinates with deterministic topological characteristics across different types of topology networks and different levels of topology networks, so as to achieve the shortest distance communication with the lowest communication delay while effectively promoting hardware implementation.

[0132] In some embodiments, the positive first port and the negative first port corresponding to each dimension 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 the 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, and 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 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, and 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, the port interleaving for data routing using virtual channels can effectively avoid the communication dependency loop problem between nodes in each level of topology network, thereby preventing the generation of deadlock.

[0133] In some embodiments, the first layer topology network is based on a surround network topology structure, and the first layer topology network includes 27 nodes constituting the 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 the 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. Wherein, the first source port set includes 6 first source ports, and the 6 first source ports include 3 positive first source ports and 3 negative first source ports corresponding to the three dimensions of the three-dimensional surround network topology structure, respectively, the second source port set includes 1 second source port for interconnecting the fully interconnected network topology structure, and the third source port set includes 1 third source port for interconnecting the fully interconnected network topology structure. Among them, the first destination port set includes 6 first destination ports, the 6 first destination ports include 3 positive first destination ports and 3 negative first destination ports corresponding to the three dimensions of the three-dimensional surround network topology structure, the second destination port set includes 1 second destination port for interconnecting the fully interconnected network topology structure, and the third destination port set includes 1 third destination port for interconnecting the fully interconnected network topology structure. According to the embodiments of the present disclosure, it can be particularly suitable for the global communication of the AI ​​large model using the Ring All-Reduce communication algorithm, so as to effectively realize the networking requirements of the E-class supercomputer while effectively reducing the network diameter and reducing the communication delay.

[0134] 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 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 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, may independently serve as a destination node, or may serve as both a source node and a destination node. As long as the functions or steps suitable for the data routing system of the present disclosure can be implemented, they may constitute all or at least a part of the data routing device 700 of the present disclosure.

[0135] It should be understood that the modules included in the data routing device of the data routing system are taken as 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. Among them, the computing instance may be at least one of a physical host (computing device), a virtual machine, a container and other computing devices. Further, 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 (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 a data center or multiple data centers with similar geographical locations. Among them, usually a region may include multiple AZs.

[0136] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed in the same virtual private cloud (VPC) or in multiple VPCs. Usually, a VPC is set up in a region. For cross-region communication between two VPCs in the same region and between VPCs in different regions, a communication gateway needs to be set up in each VPC to achieve interconnection between VPCs through the communication gateway.

[0137] As an example of a hardware functional unit, a data routing system and / or a data routing device may include at least one computing device, such as a server, etc. Alternatively, each module of the data routing device may also be a device implemented by 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.

[0138] The multiple computing devices included in the data routing system and / or the data routing device can be distributed in the same region or in different regions. The multiple computing devices included in the data routing system and / or the data routing device can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the data routing system and / or the data routing device 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.

[0139] The embodiment of the present disclosure further provides a computing device 800 , and a node of the embodiment of the present disclosure may include at least one computing device 800 . Figure 8 A schematic block diagram of an example device that can be used to implement an example implementation of the present disclosure is shown. Figure 8 As shown, 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 through the bus 802. The computing device 800 can 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 can 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, Figure 8Only one line is used to represent it, but it does not mean that there is only one bus or one type of bus. Bus 804 may include a path for transmitting information between various components of computing device 800 (e.g., memory 806, processor 804, communication interface 808). Processor 804 may include any one or more of processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP). Memory 806 may include volatile memory, such as random access memory (RAM). Processor 804 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD) or solid state drive (SSD). The memory 806 stores executable program codes, and the processor 804 executes the executable program codes 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 aforementioned 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.

[0140] The embodiment of the present disclosure further provides a computing device cluster 900 . Fig. 9A schematic block diagram of an example device cluster that can be used to implement an exemplary implementation of the present disclosure is shown. The database control system according to an embodiment of the present disclosure is deployed on the computing device cluster 900, and the computing device cluster 900 includes at least one computing device 800. In some embodiments, the computing device cluster 900 may include a computing device 800 to implement all or part of the database control system of the embodiment of the present disclosure. In some embodiments, the computing device cluster 900 may include a plurality of computing devices 800, and the plurality of computing devices may implement all or part of the database control system of the embodiment of the present disclosure synchronously or asynchronously, serially or in parallel, independently or in a distributed manner. The computing device 800 in the computing device cluster 900 may 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 may also be a terminal device such as a desktop computer, a laptop computer, or a smart phone. Fig. 9 As shown, 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 method and function 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 store partial instructions for executing the method and function of the embodiment of the present disclosure in any of the above embodiments. In other words, the combination of one or more computing devices 800 can jointly execute the instructions for the method and function of the embodiment of the present disclosure. It should be noted that the memory 806 in different computing devices 800 in the computing device cluster may store different instructions, which are respectively used to execute part of the functions of the device 800. That is, the instructions stored in the memory 806 in different computing devices 800 can implement the functions of one or more modules or submodules of the number acquisition module 701, the path determination module 702 and the data transmission module 703.

[0141] In some possible implementations, one or more computing devices in the computing device cluster may be connected via a network, which may be a wide area network or a local area network. Fig.10 1 shows a schematic block diagram of another example device that can be used to implement the exemplary implementation of the present disclosure, wherein a possible implementation 1000 is shown. Fig.10 As shown, two computing devices 800A and 800B are connected via a network 1010 . Fig.10 The connection between the computing device clusters shown may be considered to be part of the functions to be performed by the computing device 800B, considering that the method of the present application needs to store a large amount of user data and perform intensive real-time or near-real-time calculations. It should be understood that Fig.10The functions of the computing device 800A shown in FIG. 8 may also be completed by multiple computing devices 800. Similarly, the functions of the computing device 800B may also be completed by multiple computing devices 800.

[0142] The embodiments of the present disclosure also 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 method and function of any of the above embodiments.

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

[0144] In general, various embodiments of the present disclosure may be implemented in hardware or dedicated circuits, 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 performed 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 graphical 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 circuits or logic, general purpose hardware or controllers or other computing devices, or some combination thereof.

[0145] 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 a program module, which are executed in a device on a real or virtual processor of the target to perform the process / method as described above with reference to the accompanying drawings. Typically, 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 functions of program modules can be combined or divided between program modules as needed. Machine executable instructions for program modules can be executed in local or distributed devices. In distributed devices, program modules can be located in local and remote storage media.

[0146] The computer program code for realizing the method of the present disclosure can be written in one or more programming languages. These computer program codes can be provided to the processor of general-purpose computer, special-purpose computer or other programmable data processing device, so that the program code, when being executed by computer or other programmable data processing device, causes the function / operation specified in flow chart and / or block diagram to be implemented. The program code can be executed completely on computer, partly on computer, as independent software package, partly on computer and partly on remote computer or completely on remote computer or server.

[0147] In the context of the present disclosure, computer program codes or related data may be carried by any appropriate 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 propagation signals, such as carrier waves, infrared signals, and the like.

[0148] A computer-readable medium may be any tangible medium containing or storing a program for or related 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.

[0149] In addition, although the operation of the method of the present disclosure is 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 flow chart can change the order of execution. Additionally or alternatively, some steps can be omitted, multiple steps can be combined into one step for execution, and / or one step can be decomposed into multiple steps for execution. 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.

[0150] The various implementations of the present disclosure have been described above, and 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, it should be understood by those of ordinary skill in the art that the technical solutions described in the aforementioned embodiments can still be modified, or some of the technical features therein can be replaced by equivalents; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the protection scope of the technical solutions of the various embodiments of the present invention. Without departing from the scope and spirit of the various implementations described, many modifications and changes are obvious to those of ordinary skill in the art. The choice of terms used in this article is intended to explain the principles of each implementation, practical application or improvement of technology in the market, or to enable other 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, 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.

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 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 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, 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 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 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.

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, wherein the 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

Cited By

  • Routing method, device, equipment, medium and product

    CN120729773A

  • Communication method, communication apparatus, and computing cluster

    WO2026184389A1