Slimmed fat-tree network topology and method for transmitting a route request

By optimizing the fat-tree network topology, reducing the number of high-level routing nodes, increasing low-level connection links, and using a binary XOR function to determine the common parent node, the problem of low utilization of high-level links is solved, thus improving network efficiency and reliability.

CN119906662BActive Publication Date: 2026-01-09SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510401851.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-04-01
Publication Date
2026-01-09
Estimated Expiration
2045-04-01

AI Technical Summary

Technical Problem

In existing switching networks, the link utilization of higher-layer routing nodes is low, resulting in reduced network throughput, and lower-layer routing nodes are prone to congestion hotspots.

Method used

A lean fat-tree network topology is adopted. By reducing the number of high-level routing nodes and increasing the connection links of low-level routing nodes, the encoding relationship between routing nodes and ports is optimized, and the common parent node is determined by using a binary XOR function to dynamically adjust the routing path.

Benefits of technology

It improves the link utilization of higher-level routing nodes, reduces network complexity and cost, enhances network load balancing and reliability, and avoids network congestion and transmission delays.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119906662B_ABST
    Figure CN119906662B_ABST
Patent Text Reader

Abstract

The embodiment of the application provides a kind of fat tree network topology and the method for sending routing request of thinning, wherein the relationship between the total number of the fat tree network topology and the total number of source node: the relationship between the number of the routing node of the first layer and the number of the routing node of the first layer: Wherein, it is the integer greater than or equal to 1. Through the application, the problem of low link utilization rate of high-level routing node in the related art is solved, and the effect of improving the link utilization rate of high-level routing node is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] Embodiments of the present application relate to the field of computers, and in particular, to a slimmed fat-tree network topology and a method for sending a routing request. BACKGROUND

[0002] With the rapid popularization and development of the Internet and the continuous deployment of satellite Internet constellation plans, more user terminals access the network, which has derived Internet applications in various fields of people's production and life, making the traffic in the Internet show an explosive growth trend. The development and application of optical fiber technology and inter-satellite laser communication technology have shifted the bottleneck of information transmission networks to switching equipment such as switches and routers at Internet exchange nodes. The core technology of these switching equipment is switching technology, which includes switching networks and scheduling algorithms. Therefore, in order to improve the performance of information switching networks and meet the new application and business needs emerging today, it is essential to study larger capacity, better performance switching networks and high-performance scheduling algorithms adapted to them.

[0003] Currently, in the actual application of switching networks, the link utilization rate of the routing nodes at a higher layer is not high, and the higher the layer, the lower the link utilization rate. The load of the links of the routing nodes at a lower layer is much higher than that of the links of the routing nodes at a higher layer, so the routing nodes at a lower layer are more likely to appear congestion hotspots than the routing nodes at a higher layer, thereby reducing the throughput of the network.

[0004] At present, there is no effective solution to the above problems. SUMMARY

[0005] Embodiments of the present application provide a slimmed fat-tree network topology and a method for sending a routing request, to at least solve the problem of low link utilization rate of routing nodes at a higher layer in related technologies.

[0006] According to an embodiment of the present application, a slimmed fat-tree network topology is provided, comprising: the total number of layers of the slimmed fat-tree network topology and the total number of source nodes between them: ; the number of routing nodes at the first layer and the number of routing nodes at the first layer between them: , wherein, , is an integer greater than or equal to 1.

[0007] ​​In one exemplary embodiment, the thinned fat-tree network topology further includes: the first... Each routing node in the layer is connected to the first... The four routing nodes of the layer are connected.

[0008] In one exemplary embodiment, the first in the thinned fat tree network structure Each routing node in the layer is connected to the first... The four routing nodes of the layer are connected, including: the first The layer is encoded as The routing nodes, respectively, are connected to the first... The layer is encoded as , , , The four routing nodes are connected, the and , , , The relationship between them is:

[0009] ;

[0010] ;

[0011] ;

[0012] ;

[0013] in, It converts integers to binary form; This is a bitwise XOR function in binary form.

[0014] In one exemplary embodiment, the thinned fat-tree network topology further includes: the first... Each routing node in the layer is connected to the first... The two routing nodes of the layer are connected.

[0015] In one exemplary embodiment, the first in the thinned fat tree network structure Each routing node in the layer is connected to the first... The connection between two routing nodes in the layer includes: the first The layer is encoded as The routing nodes, respectively, are connected to the first... The layer is encoded as , The connection between the two routing nodes, the and , wherein the relationship between the number of source nodes

[0016] ;

[0017] ;

[0018] wherein is a function of converting an integer into a binary number, is a binary form bitwise XOR function, is a floor function.

[0019] In one exemplary embodiment, the slimmed fat-tree network topology further comprises: the number of routing nodes in the 0th layer is related to the number of source nodes

[0020] ;

[0021] wherein is an integer greater than or equal to 4.

[0022] In one exemplary embodiment, the slimmed fat-tree network topology further comprises: the routing nodes in the 0th layer encoded as are connected with four source nodes encoded as , , , the relationship between the and , , ,

[0023] ;

[0024] ;

[0025] ;

[0026] ;

[0027] wherein is a function of converting an integer into a binary number; is a binary form bitwise XOR function.

[0028] ​​In an example embodiment, the thinned fat-tree network topology further comprises: each of the routing nodes in the thinned fat-tree network topology comprises: four downstream ports, respectively a first downstream port, a second downstream port, a third downstream port and a fourth downstream port, the encoding of the first downstream port, the encoding of the second downstream port, the encoding of the third downstream port and the encoding of the fourth downstream port increase sequentially; the first routing node in the thinned fat-tree network topology comprises: four upstream ports, respectively a first upstream port, a second upstream port, a third upstream port and a fourth upstream port, the encoding of the first upstream port, the encoding of the second upstream port, the encoding of the third upstream port and the encoding of the fourth upstream port increase sequentially; the first routing node in the thinned fat-tree network topology further comprises: a fifth downstream port and a sixth downstream port, the fifth downstream port and the sixth downstream port are connected with the fourth routing node in the thinned fat-tree network topology, the encoding of the fifth downstream port and the encoding of the sixth downstream port are the same as the encoding of the fourth routing node in the thinned fat-tree network topology. the routing nodes on the layer the first downstream port, the second downstream port, the third downstream port and the fourth downstream port of the routing node on the layer with the encoding , , , are connected with the four routing nodes , , , on the layer, the encoding of the fourth routing node in the thinned fat-tree network topology increases sequentially.

[0029] According to another embodiment of the present application, a method for sending a routing request is provided, comprising: obtaining the encoding of a source terminal and a target terminal, wherein the source terminal and the target terminal are source nodes in the thinned fat-tree network topology; determining the target layer in which the nearest common parent node is located in the thinned fat-tree network topology according to the encoding of the source terminal and the target terminal, wherein the common parent node is a parent node common to the source terminal and the target terminal; sending the target routing request sent by the source terminal to the target parent node on the target layer, and sending the target routing request to the target terminal through the target parent node.

[0030] In an example embodiment, determining the target layer in which the nearest common parent node is located in the thinned fat-tree network topology according to the encoding of the source terminal and the target terminal comprises: performing a binary form bitwise XOR operation on the encoding of the source terminal and the encoding of the target terminal to obtain an XOR result, in the case that the encoding of the source terminal and the encoding of the target terminal are represented by X-bit binary numbers, wherein X is an integer greater than 2; determining the target layer in which the nearest common parent node is located in the thinned fat-tree network topology through the XOR result.

[0031] In an exemplary embodiment, determining the target layer where the nearest common parent node is located in the thinned fat tree network topology using the XOR result includes: deleting the lowest two bits of the XOR result to obtain a first target binary number; determining the first non-zero value appearing in the first target binary number as the target non-zero value in descending order; determining the number of bits in the bit position of the target non-zero value in ascending order; and determining the number of bits in the bit position as the layer number of the target layer where the nearest common parent node is located.

[0032] In one exemplary embodiment, sending the target routing request sent by the source terminal to the target parent node on the target layer includes: transmitting the target routing request upward to the thinned fat-tree network topology in the first... Layer encoding is In the case of routing nodes, determine the first In the layer and the Encoding of the two connected routing nodes , , The target layer is the m-th layer, where m is greater than or equal to 1 and less than or equal to the target layer. ; in the , The first target routing node is determined, and the target routing request is sent to the first target routing node.

[0033] In one exemplary embodiment, the , The process of determining a first target routing node and sending the target routing request to the first target routing node includes: in the process of determining a first target routing node and sending the target routing request to the first target routing node. , Randomly select a routing node from the list and determine it as the first target routing node; or, use the... , In and the above The routing node with the shortest distance is determined as the first target routing node; or, the... , The routing node with the lowest load is determined as the first target routing node.

[0034] In an exemplary embodiment, sending the target routing request to the target terminal via the target parent node includes: determining m valid bits in the encoding of the target terminal, where X is an integer greater than 2, when the encoding of the target terminal is represented by an X-bit binary number; and transmitting the target routing request downward to the target terminal by the target parent node through the downlink port of the routing node in the thinned fat tree network topology based on the m valid bits.

[0035] In one example embodiment, in case that the encoding of the target terminal is represented by an X-bit binary number, determining the m significant bits in the encoding of the target terminal comprises: deleting the lower two bits in the encoding of the target terminal to obtain a second target binary number; in case that the target layer where the nearest common parent node is located is the mth layer, determining the m bits from low to high in the second target binary number as the m significant bits.

[0036] In one example embodiment, transmitting the target routing request downward to the target terminal by the target parent node through the downstream ports of the routing nodes in the thinned out fat tree network topology according to the m significant bits comprises: in case that the target routing request is transmitted to the routing node in the mth layer , , , , , , , , , the target layer is the mth layer, the m is greater than or equal to 1 and less than or equal to the ; determining a second target routing node in the , , , according to the m significant bits, and sending the target routing request from the to the second target routing node.

[0037] In one example embodiment, determining a second target routing node in the , , , according to the m significant bits, and sending the target routing request from the to the second target routing node comprises: in case that the corresponding significant bit in the m significant bits is a non-zero value, determining the second target routing node in , , , , , connected with the third downstream port of the , , a first downlink port of the second target routing node a second downlink port of the second target routing node a third downlink port of the second target routing node determining the second target routing node in the m effective bits corresponding to the first layer encoding

[0038] In an exemplary embodiment, in the case that the corresponding effective bit is a non-zero value, in the m effective bits corresponding to the first layer encoding a third downlink port of the second target routing node a fourth downlink port of the second target routing node determining the second target routing node in the m effective bits corresponding to the first layer encoding 、 determining the second target routing node in the m effective bits corresponding to the first layer encoding 、 randomly selecting one routing node in the m effective bits corresponding to the first layer encoding as the second target routing node; or determining the routing node in the m effective bits corresponding to the first layer encoding with the shortest distance to the second target routing node as the second target routing node; or determining the routing node in the m effective bits corresponding to the first layer encoding with the smallest load as the second target routing node 、 determining the second target routing node in the m effective bits corresponding to the first layer encoding 、 determining the second target routing node in the m effective bits corresponding to the first layer encoding 、 determining the second target routing node in the m effective bits corresponding to the first layer encoding 、 determining the second target routing node in the m effective bits corresponding to the first layer encoding a first downlink port of the second target routing node a second downlink port of the second target routing node a third downlink port of the second target routing node determining the second target routing node in the m effective bits corresponding to the first layer encoding 、 randomly selecting one routing node in the m effective bits corresponding to the first layer encoding as the second target routing node; or determining the routing node in the m effective bits corresponding to the first layer encoding with the shortest distance to the second target routing node as the second target routing node; or determining the routing node in the m effective bits corresponding to the first layer encoding with the smallest load as the second target routing node 、 determining the second target routing node in the m effective bits corresponding to the first layer encoding 、 determining the second target routing node in the m effective bits corresponding to the first layer encoding 、

[0039] According to another embodiment of this application, an apparatus for sending a routing request is provided, comprising: an acquisition module, configured to acquire the encodings of a source terminal and a target terminal, wherein the source terminal and the target terminal are source nodes in the thinned fat-tree network topology; a determination module, configured to determine the target layer in the thinned fat-tree network topology where the nearest common parent node is located based on the encodings of the source terminal and the target terminal, wherein the common parent node is a common parent node of the source terminal and the target terminal; and a sending module, configured to send the target routing request sent by the source terminal to the target parent node on the target layer, and send the target routing request to the target terminal through the target parent node.

[0040] According to yet another embodiment of this application, a computer-readable storage medium is also provided, wherein a computer program is stored therein, and the computer program is configured to perform the steps in any of the above method embodiments when it is run.

[0041] According to yet another embodiment of this application, an electronic device is also provided, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.

[0042] According to yet another embodiment of this application, a computer program product is also provided, including a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.

[0043] This application reduces the total number of layers in the lean fat-tree network topology. Total number of source nodes The relationship between them: ;No. Number of layer routing nodes With the Number of layer routing nodes The relationship between them: ,in, , It is an integer greater than or equal to 1.

[0044] By dynamically reducing the number of higher-level routing nodes as the network layer increases, the problem of network bandwidth bottlenecks near the root node is addressed, while simultaneously reducing the number of higher-level links, thus lowering network complexity and costs. Therefore, this approach can solve the problem of low link utilization of higher-level routing nodes in related technologies, thereby improving their link utilization. Attached Figure Description

[0045] Figure 1is a schematic diagram of a topology of a five-layer fat tree network on chip;

[0046] Figure 2 is a schematic diagram of a topology of a fat tree network according to an embodiment of the present application;

[0047] Figure 3 is a schematic diagram of encoding of a downward output port of a routing node according to an embodiment of the present application;

[0048] Figure 4 is a hardware structure block diagram of a server device of a method for sending a routing request according to an embodiment of the present application;

[0049] Figure 5 is a flow chart of a method for sending a routing request according to an embodiment of the present application;

[0050] Figure 6 is a structure block diagram of an apparatus for sending a routing request according to an embodiment of the present application. DETAILED DESCRIPTION

[0051] A new on-chip system structure, "network on chip", was proposed at the end of the century to overcome the defects of on-chip system in terms of delay, clock synchronization, scalability, energy consumption, reusability, etc. It overcomes the limitations of bus structure and fully uses the related network technology in existing computer networks. Compared with the traditional on-chip system, its advantages are as follows:

[0052] (1) Network on chip uses the network structure in computer networks. The entire network is connected by multiple point-to-point lines, and there is no interference between them, which can meet the communication requirements of multiple users.

[0053] (2) Unlike on-chip system, network on chip uses a "global asynchronous, local synchronous" approach to solve the clock synchronization problem. The local network works at its own clock frequency, avoiding the problem of global clock synchronization and solving the problem of clock drift, which greatly reduces the power consumption of the network.

[0054] (3) Network on chip has a high bandwidth utilization rate. Since network on chip supports multi-point parallel transmission, it can complete data transmission on multiple lines at the same time, and the communication efficiency is relatively high. Moreover, the addressing of network on chip is completed within the local network, and the expansion of network scale has little effect on addressing, so the number of bits occupied by addressing in bandwidth will not increase, and bandwidth will not become a bottleneck for network scale expansion.

[0055] (4) Since the bus structure uses a central decision unit to manage the use right of the line, and network on chip uses a random arbitration mechanism, there is no large delay problem.

[0056] (5) The core idea of the system on chip is that the decision delay will be larger and larger with the expansion of the network scale, which has a great influence on the performance of the system. The local decision strategy of the network on chip can complete an independent functional unit in the line in a distributed manner, and has good reusability. At the same time, the routing device in the network can be used in various environments, and has high reusability.

[0057] In summary, due to the good reusability of the network components, the network on chip has the characteristics of high cohesion, high scalability and portability, greatly shortens the development time of the system and improves the development efficiency, which is particularly important in the design of current large-scale networks.

[0058] The interconnection network is the key to building a high-performance large-scale parallel processing system, and its design goal is to connect a certain number of functional nodes to form a high-performance large-scale parallel system with reliable and efficient performance at the lowest cost. The core content of the interconnection network topology design mainly includes: the topology structure of the interconnection network, the routing algorithm and switching technology of the interconnection network, and the performance index of the interconnection network.

[0059] The interconnection network can be roughly divided into four categories, namely shared medium network, direct interconnection network, indirect interconnection network and hybrid interconnection network. The direct and indirect interconnection networks are distinguished by the role of the router. In the direct interconnection network, each terminal node is directly connected through the router, while in the indirect interconnection network, the communication between the terminal nodes is carried out through the interconnection of the routers. Such routers do not generate network traffic themselves, but are responsible for the transmission, routing and relay of the traffic generated by the terminal nodes. In the shared medium network, all terminal nodes share the same transmission medium, and the shared medium is realized by using appropriate medium access control mechanisms. The hybrid interconnection network contains two or more interconnection structures of the above three basic interconnection forms.

[0060] The interconnection topology structure usually has the following four main attributes: (1) Node degree: the number of channels connecting a node to its neighbor nodes, or the number of ports in the router of the node. (2) Network diameter: the maximum value of the shortest distance between two nodes in the network. The smaller the network diameter, the smaller the network communication delay. (3) Link number: the number of links in the entire network. Because the topology structure is determined, the number of links is also determined. (4) Bisection bandwidth: the minimum cut set of the link bandwidth corresponding to the two equal subnets of all nodes in the network. The higher the bisection bandwidth, the stronger the network communication ability. It should be particularly pointed out that with the increase of the number of nodes in the interconnection, the aggregate bandwidth of the entire system will also increase.

[0061] Figure 1 is a schematic diagram of the topology structure of the five-layer fat tree network on chip, as Figure 1As shown, the circles in the topology represent routing nodes, each of which contains two in and two out, i.e. four link ports, and the routing nodes themselves do not generate network traffic, but are responsible for the transmission, routing and relaying of the traffic generated by the terminal nodes; the squares in the topology represent terminal nodes, each of which has the need to send and receive traffic. Specifically, the topology has the following structural characteristics:

[0062] (1) the number of routing nodes in each layer is equal;

[0063] (2) the relationship between the number of routing nodes in each layer and the number of source nodes is:

[0064] (3) the relationship between the number of layers of the topology and the number of source nodes is:

[0065] (4) the link relationship between the routing nodes in the i-th layer and the routing nodes in the j-th layer is: is the binary form of the integer, and is the binary form of the bitwise XOR function.

[0066] (5) each routing node in the zero-th layer is connected to two source nodes.

[0067] (6) each line is bidirectional.

[0068] Although the above fat tree network solves the problem that the root node of the tree network is prone to become a network bandwidth bottleneck, as the number of source nodes increases, the number of routing nodes, the number of layers and the number of links of the network will also increase. In our actual application scenarios, the link utilization rate of the routing nodes in higher layers is not high, and the higher the number of layers, the lower the link utilization rate. At the same time, for the fat tree network, the link load of the routing nodes in lower layers is much higher than that of the routing nodes in higher layers, i.e. the routing nodes in lower layers are more prone to congestion hotspots than the routing nodes in higher layers, which leads to a decrease in the network throughput.

[0069] ​​​​​​​​​​​​​​​​​​​Therefore, to address the aforementioned issues, this application proposes a thinner fat-tree network topology. By dynamically reducing the number of high-level routing nodes as the network layer increases, it reduces network complexity, the number of high-level links, and network costs while ensuring that the area near the high-level root node is not a network bandwidth bottleneck. At the same time, it increases the number of links connecting routing nodes to low-level routing nodes, thereby increasing the number of links in the lower-level network and reducing the load on the links of routing nodes in the lower layers.

[0070] The embodiments of this application will be described in detail below with reference to the accompanying drawings and examples.

[0071] It should be noted that the terms "first," "second," etc., in the specification, claims, and drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.

[0072] This embodiment provides a thinned fat tree network topology. Figure 2 This is a schematic diagram of a thinned fat tree network topology according to an embodiment of this application, such as... Figure 2 As shown, this includes: the total number of layers in the thinned fat-tree network topology. Total number of source nodes The relationship between them: ;No. Number of layer routing nodes With the Number of layer routing nodes The relationship between them: ,in, , It is an integer greater than or equal to 1.

[0073] Specifically, in the thinned fat tree network structure, the first... Each routing node in the layer is connected to the first... The four routing nodes of the layer are connected.

[0074] Specifically, in the thinned fat tree network structure, the first... Each routing node in the layer is connected to the first... The two routing nodes of the layer are connected.

[0075] By using the above network topology, the number of higher-level routing nodes is dynamically reduced as the number of network layers increases. This reduces network complexity while ensuring that the area near the root node at higher levels does not become a network bandwidth bottleneck. This achieves the effect of reducing the number of higher-level links and lowering network costs.

[0076] As an optional implementation, the first in the thinned fat tree network structure Each routing node of the layer is connected with four routing nodes of the next layer, including: the routing node of the layer whose code is The four routing nodes of the layer whose code is The routing node of the layer whose code is is connected with the two routing nodes of the layer whose code is The four routing nodes of the layer whose code is , , , The relationship between the four routing nodes of the layer whose code is and , , , is:

[0077] ;

[0078] ;

[0079] ;

[0080] ;

[0081] wherein, is a function of converting an integer into a binary form; is a function of bitwise XOR of the binary form.

[0082] By connecting each routing node with four routing nodes of the next layer, the number of links of the routing nodes of the network connected with the routing nodes of the lower layer is increased, the utilization of the links of the higher layer is increased, meanwhile, the fault tolerance of the routing nodes of the higher layer is improved, and it is ensured that even if a routing node fails, data can still be transmitted through other available paths, thereby improving the reliability and stability of the whole network.

[0083] As an optional implementation, each routing node of the layer of the thinned fat tree network structure is connected with two routing nodes of the layer of the next layer, including: the routing node of the layer whose code is The two routing nodes of the layer whose code is are connected with the two routing nodes of the layer whose code is The two routing nodes of the layer whose code is The relationship between the two routing nodes of the layer whose code is and , is: ;

[0084] ;

[0085] ; ​​

[0086] wherein, is a function of converting an integer into a binary number, is a binary form bitwise XOR function, is a floor function.

[0087] By connecting each routing node with two routing nodes of the previous layer, the network diameter in the network is shortened, thereby effectively reducing the network transmission delay, and at the same time, the load balancing capability of the network can be improved, so that data is evenly distributed on different paths, avoiding network congestion caused by single point failure.

[0088] As an optional implementation, the lean fat tree network topology further comprises a relationship between the number of routing nodes of the 0th layer and the number of source nodes

[0089] ;

[0090] wherein, is an integer greater than or equal to 4.

[0091] As an optional implementation, the lean fat tree network topology further comprises that the routing node of the 0th layer coded as is connected with four source nodes coded as , , , The relationship between the and , , , is:

[0092] ;

[0093] ;

[0094] ;

[0095] ;

[0096] wherein, is a function of converting an integer into a binary number; is a binary form bitwise XOR function.

[0097] Since each routing node of the 0th layer is connected with four terminals, the number of links of the lower layer network is increased, so that each terminal has two links to choose from, thereby reducing the load of the links of the routing nodes in the lower layer.

[0098] ​​As an optional implementation, the thinned fat-tree network topology further comprises: each of the routing nodes in the thinned fat-tree network topology comprises: four downstream ports, respectively a first downstream port, a second downstream port, a third downstream port and a fourth downstream port, and the coding of the first downstream port, the coding of the second downstream port, the coding of the third downstream port and the coding of the fourth downstream port increase in turn; the first downstream port of the routing node in the i-th layer of the thinned fat-tree network topology is connected with the fourth routing node in the (i-1)-th layer of the thinned fat-tree network topology, the second downstream port of the routing node in the i-th layer of the thinned fat-tree network topology is connected with the third routing node in the (i-1)-th layer of the thinned fat-tree network topology, the third downstream port of the routing node in the i-th layer of the thinned fat-tree network topology is connected with the second routing node in the (i-1)-th layer of the thinned fat-tree network topology, and the fourth downstream port of the routing node in the i-th layer of the thinned fat-tree network topology is connected with the first routing node in the (i-1)-th layer of the thinned fat-tree network topology. Routing nodes on the layer The first downstream port, the second downstream port, the third downstream port and the fourth downstream port of the routing node are respectively connected with the fourth routing node, the third routing node, the second routing node and the first routing node in the (i-1)-th layer. The coding of the fourth routing node, the coding of the third routing node, the coding of the second routing node and the coding of the first routing node in the (i-1)-th layer increase in turn. , , , , , , , .

[0099] For example, Figure 3 is a coding diagram of a downstream output port of a routing node according to an embodiment of the present application, as shown in Figure 3 , each circle in the diagram represents a routing node, each routing node in the i-th layer has four downstream ports, which are respectively connected with four routing nodes in the (i-1)-th layer, wherein the four downstream ports of the routing node in the i-th layer are in the order of the first downstream port, the second downstream port, the third downstream port and the fourth downstream port from left to right, which are respectively connected with the four routing nodes in the (i-1)-th layer with the coding , , , , the routing node in the i-th layer can route through any downstream port connected therewith. It should be noted that the link between all routing nodes and their downstream ports can be bidirectional routing.

[0100] Based on the above thinned fat-tree network topology, the present application provides a method for sending a routing request.

[0101] The method embodiments provided in the embodiments of the present application can be executed in a server device or similar computing device. Taking the case of running on a server device, Figure 4 is a hardware structure block diagram of a server device of a method for sending a routing request according to an embodiment of the present application. As shown in Figure 4 , the server device can comprise one or more (CPU) central processing units, memories, buses and the like. Figure 4The server device shown in FIG. 4 includes one processor 402 (the processor 402 can include, but is not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA) and a memory 404 for storing data. The server device can further include a transmission device 406 for communication functions and an input / output device 408. Those skilled in the art can understand that the server device can include more or fewer components than those shown in FIG. 4, or have a different configuration from that shown in FIG. 4. Figure 4 The structure shown in FIG. 4 is merely illustrative and does not limit the structure of the server device. For example, the server device can include more or fewer components than those shown in FIG. 4, or have a different configuration from that shown in FIG. 4. Figure 4 The structure shown in FIG. 4 is merely illustrative and does not limit the structure of the server device. For example, the server device can include more or fewer components than those shown in FIG. 4, or have a different configuration from that shown in FIG. 4. Figure 4 The structure shown in FIG. 4 is merely illustrative and does not limit the structure of the server device. For example, the server device can include more or fewer components than those shown in FIG. 4, or have a different configuration from that shown in FIG. 4.

[0102] The memory 404 can be used to store computer programs, such as software programs of application software and modules, such as a computer program corresponding to the method for sending a routing request in the embodiments of the present application. The processor 402 can execute various functional applications and data processing, i.e., implement the above method, by running the computer programs stored in the memory 404. The memory 404 can include a high-speed random access memory, and can further include a non-volatile memory, such as one or more magnetic storage devices, a flash memory, or other non-volatile solid-state memories. In some examples, the memory 404 can further include a memory remotely arranged with respect to the processor 402, and the remote memory can be connected to the server device through a network. Examples of the network can include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and a combination thereof.

[0103] The transmission device 406 is used to receive or send data via a network. Specific examples of the network can include a wireless network provided by a communication service provider of the server device. In one example, the transmission device 406 includes a network adapter (Network Interface Controller, NIC) which can be connected to other network devices through a base station so as to communicate with the Internet. In one example, the transmission device 406 can be a radio frequency (Radio Frequency, RF) module which is used to communicate with the Internet in a wireless manner.

[0104] In the embodiments of the present application, a method for sending a routing request is provided, which is applied to the above-mentioned thin fat-tree network topology, Figure 5 is a flowchart of the method according to the embodiments of the present application, as shown in FIG. 5, the flow includes the following steps: Figure 5

[0105] In step S502, the codes of a source terminal and a target terminal are obtained, wherein the source terminal and the target terminal are source nodes in the above-mentioned thin fat-tree network topology.

[0106] ​The source terminal S can be a sending terminal of a routing request, and the code of the terminal can be represented by a binary number. For example, in a four-layer thin fat tree network topology, the terminal node 4 can be represented by 00100, and the destination terminal D can be a receiving terminal of a routing request, and the code of the terminal can be represented by a binary number. For example, in a four-layer thin fat tree network topology, the terminal node 6 can be represented by 00110. When routing is required, the binary representations of the source terminal and the destination terminal are obtained.

[0107] In step S504, the target layer in which the nearest common parent node is located in the thin fat tree network topology is determined according to the codes of the source terminal and the destination terminal, wherein the common parent node is a parent node common to the source terminal and the destination terminal.

[0108] The parent node can be a routing node directly connected to the current routing node in the layer above the layer in which the current routing node is located in the tree structure, and the common parent node can be a common parent node of the two routing nodes in the tree structure, that is, the lowest common ancestor node of the two nodes. For example, the parent nodes of the node 4 in the 0th layer are the nodes 2 and 3 in the 1st layer, the parent nodes of the node 9 in the 0th layer are the nodes 4 and 5 in the 1st layer, and the common parent nodes of the nodes 4 and 9 in the 0th layer are the nodes 0 and 1 in the 3rd layer. Figure 2

[0109] The number of layers in which the nearest common parent node is located in the thin fat tree network topology is determined by calculating the binary representation of the source terminal S and the binary representation of the destination terminal D.

[0110] Specifically, in the case where the codes of the source terminal and the destination terminal are represented by X-bit binary numbers, a binary-form bitwise XOR operation is performed on the code of the source terminal and the code of the destination terminal to obtain an XOR result, wherein X is an integer greater than 2; and the target layer in which the nearest common parent node is located in the thin fat tree network topology is determined by the XOR result.

[0111] In step S506, the target routing request sent by the source terminal is sent to the target parent node on the target layer, and the target routing request is sent to the destination terminal by the target parent node.

[0112] The target parent node can be any common parent node in the number of layers in which the nearest common parent node is located. After the source terminal sends the target routing request to the target parent node, the destination terminal receives the target routing request sent by the target parent node.

[0113] ​By the above steps, the source terminal and the target terminal are obtained, and the source terminal and the target terminal are source nodes in the thinned fat tree network topology; the target layer in which the nearest common parent node is located is determined in the thinned fat tree network topology according to the encoding of the source terminal and the target terminal, wherein the common parent node is a parent node common to the source terminal and the target terminal; the target routing request sent by the source terminal is sent to the target parent node on the target layer, and the target routing request is sent to the target terminal through the target parent node, thereby avoiding network congestion and transmission delay, reducing the network transmission path, and improving the network transmission efficiency.

[0114] The execution subject of the above steps can be a server, a terminal, etc., but is not limited thereto.

[0115] As an optional implementation, the target layer in which the nearest common parent node is located is determined in the thinned fat tree network topology through the XOR result, including: deleting the lower two bits in the XOR result to obtain a first target binary number; determining the first non-zero value appearing in the first target binary number as a target non-zero value in descending order; determining the bit number of the bit in which the target non-zero value is located in ascending order; and determining the bit number of the bit as the number of layers of the target layer in which the nearest common parent node is located.

[0116] As an optional implementation, in the thinned network topology structure as shown in Figure 2 , it is assumed that the source terminal S is encoded as 17, and the target terminal D is encoded as 25, and the binary representations thereof are S=10001 and D=11001, respectively. The bitwise XOR operation is performed on S and D, and the lower two bits in the XOR result are deleted to obtain a first target binary number I. The specific calculation method of the first target binary number I is as follows:

[0117]

[0118] In descending order, each bit in the first target binary number I is traversed, and the highest bit in the bit having a value of 1 is determined as the number of layers of the target layer in which the nearest common parent node is located. For example, in the above I=010, it can be seen that the highest bit in the bit having a value of 1 is the second bit, and thus the number of layers of the target layer in which the nearest common parent node is located is the second layer.

[0119] As an optional implementation, sending the target routing request sent by the source terminal to the target parent node on the target layer includes: in the case where the target routing request is transmitted upward to the routing node having a layer code of 2 in the thinned fat tree network topology structure, , determining the routing node having a layer code of 2 in the thinned fat tree network topology structure, ​​Encoding of the two connected routing nodes , , The target layer is the m-th layer, where m is greater than or equal to 1 and less than or equal to the target layer. ; in the , The first target routing node is determined, and the target routing request is sent to the first target routing node.

[0120] Specifically, in the , Randomly select a routing node from the list and determine it as the first target routing node; or, use the... , In and the above The routing node with the shortest distance is determined as the first target routing node; or, the... , The routing node with the lowest load is determined as the first target routing node.

[0121] During the upward routing process, any upward link that the source terminal node S can reach to the nearest common parent node can be selected. For example, the routing node that is closest to the current routing node, or the routing node with the least load, or any routing node in the layer above the current routing node can be selected as the first target routing node, and the routing can be performed upward through the first target routing node to the nearest common parent node.

[0122] As in the above embodiment, the nearest parent node of the source terminal S=10001 and the target terminal D=11001 is at the second layer. Therefore, all upward links that S can reach can reach the nearest common parent node at the second layer, parent nodes 2 and 3. Thus, all upward links can be traversed.

[0123] As an optional implementation, sending the target routing request to the target terminal through the target parent node includes: determining m valid bits in the target terminal's encoding when the target terminal's encoding is represented by an X-bit binary number, where X is an integer greater than 2; and transmitting the target routing request downward to the target terminal by the target parent node through the downlink port of the routing node in the thinned fat tree network topology based on the m valid bits.

[0124] The aforementioned m valid bits can be the m bits corresponding to the binary representation of the target terminal D. Based on the m valid bits in the binary representation of the target terminal, the target routing request is transmitted down to the target terminal through the downlink port of the routing node in the thinned fat tree network topology.

[0125] Optionally, when the encoding of the target terminal is represented by an X-bit binary number, determining m valid bits in the encoding of the target terminal includes: deleting the two lowest bits in the encoding of the target terminal to obtain a second target binary number; and when the target layer where the nearest common parent node is located is the mth layer, determining the m bits from low to high in the second target binary number as the m valid bits.

[0126] As an optional implementation, assuming the target terminal D is encoded as 25, its binary representation is D=11001. Delete the last two bits in the binary representation of the target terminal to obtain the second target binary number 110__. Assuming the target layer where the nearest common parent node is located is layer 2, determine the two bits from low to high in the second target binary number as m valid bits DI=_10__.

[0127] As an optional implementation, the target parent node transmits the target routing request down to the target terminal through the downlink port of the routing node in the thinned fat-tree network topology, based on the m valid bits, including: in the target routing request being transmitted down to the thinned fat-tree network topology, the target parent node transmits the target routing request down to the target terminal through the downlink port of the routing node in the thinned fat-tree network topology. Layer encoding is In the case of routing nodes, determine the first In the layer and the Encoding of the four connected routing nodes , , , , The target layer is the m-th layer, where m is greater than or equal to 1 and less than or equal to the target layer. According to the m valid bits in , , , The second target routing node is determined in the middle, and the target routing request is sent from the middle. Send to the second target routing node.

[0128] Specifically, among the m valid bits, the first... Layer encoding is When the corresponding valid bit is a non-zero value, in relation to the above The third downlink port connection and the above The fourth downlink port connection The second target routing node is determined in the m valid bits; and compared with the first... Layer encoding is When the corresponding valid bit is zero, in relation to the above The first downlink port connection and the above The second downlink port connection The second target routing node is determined in the process.

[0129] like Figure 3 As shown, each routing node in the r-th layer is connected to four routing nodes in the next layer. The binary representation D of the target terminal is processed by deleting the lower two bits to obtain a second target binary number. Based on the layer number of the target layer where the nearest common parent node is located, m valid bits DI are obtained from the second target binary number. According to the value of each bit in DI, the second target routing node is determined in the downlink port of the routing node in the r-th layer, and a target routing request is sent through the second target routing node. , , , Connect the downstream ports coded as 1, 2, 3, and 4 in the diagram respectively.

[0130] As an optional implementation, in the m valid bits, the first... Layer encoding is When the corresponding valid bit is a non-zero value, in relation to the above The third downlink port connection and the above The fourth downlink port connection Determining the second target routing node includes: in the , Randomly select a routing node from the list and determine it as the second target routing node; or, use the... , In and the above The routing node with the shortest distance is determined as the second target routing node; or, the... , The routing node with the lowest load is determined as the second target routing node;

[0131] As an optional implementation, in the m valid bits, the first... Layer encoding is When the corresponding valid bit is zero, in relation to the above The first downlink port connection and the above The second downlink port connection Determining the second target routing node includes: in the , The second target routing node is determined by randomly selecting one of the routing nodes; or the routing node with the shortest distance to the source terminal is determined as the second target routing node; or the routing node with the smallest load is determined as the second target routing node. 、 The routing node with the shortest distance to the source terminal is determined as the second target routing node; or the routing node with the smallest load is determined as the second target routing node. 、 、 The routing node with the shortest distance to the source terminal is determined as the second target routing node; or the routing node with the smallest load is determined as the second target routing node.

[0132] As an optional implementation, assuming that the encoding of the source terminal S is 16 and the encoding of the target terminal D is 24, the binary representations of the source terminal and the target terminal are S=10000 and D=11000 respectively, the bitwise XOR operation is performed on S and D, and the low 2 bits of the XOR result are deleted to obtain a first target binary number I, and the specific calculation manner is as follows:

[0133]

[0134] The highest position of the bit with a value of "1" in I is viewed from low to high, which is the 2nd bit, and the nearest parent node of S=10000 and D=11000 is in the 2nd layer. The effective bits of I are 2 bits from low to high, .

[0135] Assuming that the common parent node 2 in the second layer is reached at this time, the low two bits in the binary representation of D are deleted to obtain a second target binary number, and two bit positions in the second target binary number are extracted from low to high, denoted as DI=_10__; the effective bits of DI are viewed from high to low, if the value is "1", the right output port with labels 2 and 3 is selected to route downward to the next layer, and if the value is "0", the left output port with labels 0 and 1 is selected to route downward to the next layer; after the effective bits of DI are traversed, the routing node in the 0th layer where D is located is reached, and the specific manner can be as follows:

[0136]

[0137] Then the lowest two effective bits of D are viewed, and the selected output port corresponding to the routing node in the 0th layer is routed to D, for example, if the lowest two effective bits of D are 00, the output port 0 in the 0th layer is routed downward to the routing node 11000, and the specific manner can be as follows:

[0138]

[0139] As an optional implementation, assuming that the encoding of the source terminal S is 24 and the encoding of the target terminal D is 16, the binary representations of the source terminal and the target terminal are S=11000 and D=10000 respectively, the bitwise XOR operation is performed on S and D, and the lower 2 bits of the XOR result are deleted to obtain a first target binary number I, and the specific calculation manner is as follows:

[0140]

[0141] The highest position of the bit with a value of "1" in I is viewed from low to high, and is the 2nd bit, so the nearest parent node of S=11000 and D=10000 is in the 2nd layer. The effective bits of I are 2 bits from low to high, .

[0142] Assuming that the common parent node 2 in the second layer is reached at this time, the lower two bits in the binary representation of D are deleted to obtain a second target binary number, and two bit positions in the second target binary number are extracted from low to high, denoted as DI=_00__; the effective bits of DI are viewed from high to low, if the value is "1", the right downward output port with labels 2 and 3 is selected to route downward to the next layer, and if the value is "0", the left downward output port with labels 0 and 1 is selected to route downward to the next layer; after the effective bits of DI are traversed, the routing node in the 0th layer where D is located is reached, and the specific manner can be as follows:

[0143]

[0144] Then, the lowest two effective bits of D are viewed, and the selected output port corresponding to the routing node in the 0th layer is routed to D, for example, if the lowest two effective bits of D are 00, the output port 0 in the 0th layer is routed downward to the routing node 10000, and the specific manner can be as follows:

[0145]

[0146] As an optional implementation, assuming that the encoding of the source terminal S is 2 and the encoding of the target terminal D is 25, the binary representations of the source terminal and the target terminal are S=00010 and D=11001 respectively, the bitwise XOR operation is performed on S and D, and the lower 2 bits of the XOR result are deleted to obtain a first target binary number I, and the specific calculation manner is as follows:

[0147]

[0148] The highest position of the bit with a value of "1" in I is viewed from low to high, and is the 3rd bit, so the nearest parent node of S=00010 and D=11001 is in the 3rd layer. The effective bits of I are 3 bits from low to high, .

[0149] S=00010、D=11001The nearest common parent node is in the 3rd layer, all upward links that S can reach can reach the common parent node, i.e. the 3rd layer father nodes 0 and 1, so all upward links can go; assuming that the common parent node 0 in the third layer is reached, the lower two bits in the binary representation of D are deleted to obtain a second target binary number, and two bits in the second target binary number are cut off from low to high, denoted as DI=110__; the effective bits of DI are viewed from high to low, if the value is "1", the right side labeled downward output ports 2 and 3 are selected to route downward to the next layer, if the value is "0", the left side labeled downward output ports 0 and 1 are selected to route downward to the next layer; after the effective bits of DI are traversed, the routing node in the 0th layer where D is located is reached, and the specific manner can be as follows:

[0150]

[0151] Then the lowest two effective bits of D are viewed, and the selected output port corresponding to the routing node in the 0th layer is routed to D, for example, if the lowest two effective bits of D are 01, the output port 1 in the 0th layer node is routed downward to the routing node 11001, and the specific manner can be as follows:

[0152]

[0153] Through the above manner, on the basis of solving the problem that the nodes near the root node of the high layer are easy to become the network bandwidth bottleneck, network congestion and transmission delay in the routing request transmission process are avoided, the network transmission efficiency is improved, and the routing manner is simple and easy to implement in hardware.

[0154] Through the description of the above implementation manner, those skilled in the art can clearly understand that the method according to the above embodiment can be realized by means of software and necessary general hardware platform, of course, it can also be realized by hardware, but in many cases, the former is a better implementation manner. Based on such understanding, the technical solutions of the present application can be embodied in the form of a software product, which is stored in a storage medium (such as a ROM / RAM, a magnetic disk, an optical disk), and includes a plurality of instructions to make a terminal device (which can be a mobile phone, a computer, a server, or a network device, etc.) execute the method described in each embodiment of the present application.

[0155] An apparatus for sending a route request is also provided in this embodiment, which is used to implement the above-mentioned embodiments and preferred embodiments, and will not be described again. As used below, the term "module" can be a combination of software and / or hardware that implements a predetermined function. Although the apparatus described in the following embodiments is preferably implemented in software, implementation in hardware, or a combination of software and hardware, is also possible and contemplated.

[0156] Figure 6 is a structural block diagram of an apparatus according to an embodiment of the present application, as shown in Figure 6 , the apparatus comprises: an acquisition module 602, configured to acquire encodings of a source terminal and a target terminal, wherein the source terminal and the target terminal are source nodes in a thinned fat-tree network topology; a determination module 604, configured to determine a target layer in which a nearest common parent node is located in the thinned fat-tree network topology according to the encodings of the source terminal and the target terminal, wherein the common parent node is a parent node common to the source terminal and the target terminal; and a sending module 606, configured to send a target route request sent by the source terminal to a target parent node on the target layer, and send the target route request to the target terminal through the target parent node.

[0157] In one example embodiment, the apparatus is further configured to, in a case where the encodings of the source terminal and the target terminal are represented by X-bit binary numbers, perform a binary-form bitwise XOR operation on the encoding of the source terminal and the encoding of the target terminal to obtain an XOR result, wherein X is an integer greater than 2; and determine the target layer in which the nearest common parent node is located in the thinned fat-tree network topology through the XOR result.

[0158] In one example embodiment, the apparatus is further configured to delete the lower two bits in the XOR result to obtain a first target binary number; determine a target non-zero value as a first non-zero value appearing in the first target binary number in a high-to-low order; determine a bit number of a bit position in which the target non-zero value is located in a low-to-high order; and determine the bit number as a layer number of the target layer in which the nearest common parent node is located.

[0159] In one example embodiment, the apparatus is further configured to, in a case where the target route request is transmitted upward to a routing node in an m-th layer in the thinned fat-tree network topology, wherein m is an integer greater than or equal to 1 and less than or equal to the layer number of the target layer, determine encodings of two routing nodes connected to the routing node in the m-th layer. , the target layer is the m-th layer, and m is an integer greater than or equal to 1 and less than or equal to the layer number of the target layer.​​​​​​ ; in the , The first target routing node is determined, and the target routing request is sent to the first target routing node.

[0160] In one exemplary embodiment, the device is further configured to be used in the... , Randomly select a routing node from the list and determine it as the first target routing node; or, use the... , In and the above The routing node with the shortest distance is determined as the first target routing node; or, the... , The routing node with the lowest load is determined as the first target routing node.

[0161] In an exemplary embodiment, the apparatus is further configured to determine m valid bits in the encoding of the target terminal, where X is an integer greater than 2, when the encoding of the target terminal is represented by an X-bit binary number; and to transmit the target routing request down to the target terminal by the target parent node through the downlink port of the routing node in the thinned fat tree network topology based on the m valid bits.

[0162] In an exemplary embodiment, the apparatus is further configured to delete the lower two bits of the encoding of the target terminal to obtain a second target binary number; and if the target layer where the nearest common parent node is located is the m-th layer, to determine the m bits from low to high in the second target binary number as the m valid bits.

[0163] In one exemplary embodiment, the apparatus is further configured to transmit the target routing request downward to the thinned fat-tree network topology. Layer encoding is In the case of routing nodes, determine the first In the layer and the Encoding of the four connected routing nodes , , , , The target layer is the m-th layer, where m is greater than or equal to 1 and less than or equal to the target layer. According to the m valid bits in , , , The second target routing node is determined in the middle, and the target routing request is sent from the middle. Send to the second target routing node.

[0164] In an example embodiment, the apparatus is further configured to determine the second target routing node in the m significant bits corresponding to the first target routing node in the first layer encoding as follows: in a case that the corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. The layer encoding is The corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. The corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. The corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. The corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. The corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. The layer encoding is The corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. The corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. The corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. The corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. The corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node.

[0165] In an example embodiment, the apparatus is further configured to determine the second target routing node in the m significant bits corresponding to the first target routing node in the first layer encoding as follows: in a case that the corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. , In an example embodiment, the apparatus is further configured to determine the second target routing node in the m significant bits corresponding to the first target routing node in the first layer encoding as follows: in a case that the corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. , In an example embodiment, the apparatus is further configured to determine the second target routing node in the m significant bits corresponding to the first target routing node in the first layer encoding as follows: in a case that the corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. , In an example embodiment, the apparatus is further configured to determine the second target routing node in the m significant bits corresponding to the first target routing node in the first layer encoding as follows: in a case that the corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. , In an example embodiment, the apparatus is further configured to determine the second target routing node in the m significant bits corresponding to the first target routing node in the first layer encoding as follows: in a case that the corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. , In an example embodiment, the apparatus is further configured to determine the second target routing node in the m significant bits corresponding to the first target routing node in the first layer encoding as follows: in a case that the corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. , In an example embodiment, the apparatus is further configured to determine the second target routing node in the m significant bits corresponding to the first target routing node in the first layer encoding as follows: in a case that the corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node. , In an example embodiment, the apparatus is further configured to determine the second target routing node in the m significant bits corresponding to the first target routing node in the first layer encoding as follows: in a case that the corresponding significant bit is a non-zero value, in the routing nodes connected to the third downstream port of the first target routing node; in a case that the corresponding significant bit is a zero value, in the routing nodes connected to the first downstream port of the first target routing node.

[0166] It should be noted that the above modules can be implemented by software or hardware, and the hardware can be implemented in the following ways, but is not limited thereto: all the modules are located in the same processor; or the modules are located in different processors in any combination.

[0167] Embodiments of the present application also provide a computer readable storage medium, which stores a computer program, wherein the computer program is configured to execute the steps in any of the above method embodiments when running.

[0168] In an example embodiment, the computer readable storage medium described above can include, but is not limited to, a U disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a mobile hard disk, a magnetic disk or an optical disk, and various media that can store computer programs.

[0169] Embodiments of the present application also provide an electronic device including a memory and a processor, the memory storing a computer program, and the processor being configured to execute the computer program to perform the steps in any of the method embodiments described above.

[0170] In an example embodiment, the electronic device described above can further include a transmission device connected to the processor and an input and output device connected to the processor.

[0171] Embodiments of the present application also provide a computer program product including a computer program, which, when executed by a processor, implements the steps in any of the method embodiments described above.

[0172] The specific examples in the present embodiment can refer to the examples described in the above embodiments and example embodiments, which will not be repeated here.

[0173] Obviously, those skilled in the art should understand that the modules or steps of the present application described above can be realized by general computing devices, which can be concentrated on a single computing device or distributed on a network composed of multiple computing devices, and they can be realized by program codes executable by computing devices, so that they can be stored in storage devices and executed by computing devices, and in some cases, the steps shown or described can be executed in different order, or they can be manufactured into individual integrated circuit modules, or multiple modules or steps can be manufactured into a single integrated circuit module. Thus, the present application is not limited to any specific combination of hardware and software.

[0174] The above only describes the preferred embodiments of the present application and is not intended to limit the present application. For those skilled in the art, the present application can have various modifications and changes. Any modification, equivalent replacement, improvement, etc. within the principles of the present application shall be included in the protection scope of the present application.

Claims

1. A lean, fat-tree network topology, characterized in that, include: The total number of layers in the lean fat tree network topology Total number of source nodes The relationship between them: ; No. Number of layer routing nodes With the Number of layer routing nodes The relationship between them: ,in, , It is an integer greater than or equal to 1; In the thinned fat tree network structure, the first... Each routing node in the layer is connected to the first... The four routing nodes of the layer are connected; The encoding of the 0th layer is: The routing nodes and their encodings are , , , The four source nodes are connected, the and , , , The relationship between them is: ; ; ; ; in, It converts integers to binary form; This is a bitwise XOR function in binary form.

2. The thinned fat tree network topology according to claim 1, characterized in that, In the thinned fat tree network structure, the first... Each routing node in the layer is connected to the first... The four routing nodes of the layer are connected, including: The first The layer is encoded as The routing nodes, respectively, are connected to the first... The layer is encoded as , , , The four routing nodes are connected, the and , , , The relationship between them is: ; ; ; ; in, It converts integers to binary form; This is a bitwise XOR function in binary form.

3. The thinned fat tree network topology according to claim 1, characterized in that, The thinned fat tree network topology also includes: In the thinned fat tree network structure, the first... Each routing node in the layer is connected to the first... The two routing nodes of the layer are connected.

4. The thinned fat tree network topology according to claim 3, characterized in that, In the thinned fat tree network structure, the first... Each routing node in the layer is connected to the first... The connection between the two routing nodes in the layer includes: The first The layer is encoded as The routing nodes, respectively, are connected to the first... The layer is encoded as , The connection between the two routing nodes, the and , The relationship between them is: ; ; in, It converts integers into binary numbers. This is a bitwise XOR function in binary form. It is a floor function.

5. The thinned fat tree network topology according to any one of claims 1 to 4, characterized in that, The thinned fat tree network topology also includes: Number of Layer 0 routing nodes Number of source nodes The relationship between them is: ; in, It is an integer greater than or equal to 4.

6. The thinned fat tree network topology according to claim 1, characterized in that, The thinned fat tree network topology also includes: Each routing node in the thinned fat tree network topology includes four downlink ports: a first downlink port, a second downlink port, a third downlink port, and a fourth downlink port, wherein the encoding of the first downlink port, the encoding of the second downlink port, the encoding of the third downlink port, and the encoding of the fourth downlink port increase sequentially. In the thinned fat tree network topology, the first... Routing nodes on the layer The first downlink port, the second downlink port, the third downlink port, and the fourth downlink port are respectively connected to the first... The layer is encoded as , , , The connection of the four routing nodes, the , , , The codes increase sequentially.

7. A method for sending routing requests, applied to the thinned fat-tree network topology according to any one of claims 1 to 6, characterized in that, include: Obtain the encodings of the source terminal and the target terminal, wherein the source terminal and the target terminal are source nodes in the thinned fat tree network topology; Based on the encoding of the source terminal and the target terminal, the target layer where the nearest common parent node is located is determined in the thinned fat tree network topology, wherein the common parent node is the common parent node of the source terminal and the target terminal; The target routing request sent by the source terminal is sent to the target parent node on the target layer, and then the target parent node sends the target routing request to the target terminal.

8. The method according to claim 7, characterized in that, Based on the encodings of the source and target terminals, the target layer containing the nearest common parent node in the thinned fat-tree network topology is determined, including: When the encodings of the source terminal and the target terminal are represented by X-bit binary numbers, the encodings of the source terminal and the encodings of the target terminal are XORed in binary form to obtain the XOR result, where X is an integer greater than 2; The target layer containing the nearest common parent node is determined by the XOR result in the thinned fat tree network topology.

9. The method according to claim 8, characterized in that, Determining the target layer containing the nearest common parent node in the thinned fat tree network topology using the XOR result includes: Delete the lowest two bits of the XOR result to obtain the first target binary number; The first non-zero value appearing in the first target binary number is determined as the target non-zero value in descending order; The number of bits containing the target non-zero value is determined in ascending order. The number of bits is determined as the layer number of the target layer where the nearest common parent node is located.

10. The method according to claim 7, characterized in that, Sending the target routing request sent by the source terminal to the target parent node on the target layer includes: In the target routing request being transmitted upwards to the thinned fat-tree network topology, the first... Layer encoding is In the case of routing nodes, determine the first In the layer and the Encoding of the two connected routing nodes , , The target layer is the m-th layer, where m is greater than or equal to 1 and less than or equal to the target layer. ; In the , The first target routing node is determined, and the target routing request is sent to the first target routing node.

11. The method according to claim 10, characterized in that, In the , The process of determining a first target routing node and sending the target routing request to the first target routing node includes: In the , A routing node is randomly selected from the list of routing nodes to be the first target routing node; or, The , In and the above The routing node with the shortest distance is determined as the first target routing node; or, The , The routing node with the lowest load is determined as the first target routing node.

12. The method according to claim 7, characterized in that, Sending the target routing request to the target terminal through the target parent node includes: When the encoding of the target terminal is represented by an X-bit binary number, m valid bits are determined in the encoding of the target terminal, where X is an integer greater than 2; Based on the m valid bits, the target parent node transmits the target routing request down to the target terminal through the downlink port of the routing node in the thinned fat tree network topology.

13. The method according to claim 12, characterized in that, When the encoding of the target terminal is represented by an X-bit binary number, m valid bits are determined in the encoding of the target terminal, including: The lowest two bits of the encoding of the target terminal are deleted to obtain the second target binary number; If the target layer where the nearest common parent node is located is the mth layer, the m bits from low to high in the second target binary number are determined as the m valid bits.

14. The method according to claim 12, characterized in that, Based on the m valid bits, the target parent node transmits the target routing request down to the target terminal through the downlink port of the routing node in the thinned fat tree network topology, including: In the target routing request being transmitted down to the thinned fat tree network topology, the first... Layer encoding is In the case of routing nodes, determine the first In the layer and the Encoding of the four connected routing nodes , , , , The target layer is the m-th layer, where m is greater than or equal to 1 and less than or equal to the target layer. ; According to the m significant bits in , , , The second target routing node is determined in the middle, and the target routing request is sent from the middle. Send to the second target routing node.

15. The method according to claim 14, characterized in that, According to the m significant bits in , , , The second target routing node is determined in the middle, and the target routing request is sent from the middle. Sending to the second target routing node includes: Among the m valid bits, the first Layer encoding is When the corresponding valid bit is a non-zero value, in relation to the above The third downlink port connection and the above The fourth downlink port connection The second target routing node is determined in the middle; Among the m valid bits, the first Layer encoding is When the corresponding valid bit is zero, in relation to the above The first downlink port connection and the above The second downlink port connection The second target routing node is determined in the process.

16. The method according to claim 15, characterized in that, Among the m valid bits, the first Layer encoding is When the corresponding valid bit is a non-zero value, in relation to the above The third downlink port connection and the above The fourth downlink port connection The process of determining the second target routing node includes: In the , A routing node is randomly selected from the list of routing nodes to be designated as the second target routing node; or, The , In and the above The routing node with the shortest distance is determined as the second target routing node; or, The , The routing node with the lowest load is determined as the second target routing node; Among the m valid bits, the first Layer encoding is When the corresponding valid bit is zero, in relation to the above The first downlink port connection and the above The second downlink port connection The process of determining the second target routing node includes: In the , A routing node is randomly selected from the list of routing nodes to be designated as the second target routing node; or, The , In and the above The routing node with the shortest distance is determined as the second target routing node; or, The , The routing node with the lowest load is determined as the second target routing node.

17. An apparatus for sending a routing request, characterized in that, The method for sending a routing request according to any one of claims 7 to 16 includes: The acquisition module is used to acquire the encodings of the source terminal and the target terminal, wherein the source terminal and the target terminal are source nodes in the thinned fat tree network topology; The determination module is used to determine the target layer where the nearest common parent node is located in the thinned fat tree network topology based on the encoding of the source terminal and the target terminal, wherein the common parent node is the common parent node of the source terminal and the target terminal; The sending module is used to send the target routing request sent by the source terminal to the target parent node on the target layer, and then send the target routing request to the target terminal through the target parent node.

18. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the method described in any one of claims 7 to 16.

19. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method described in any one of claims 7 to 16.

20. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method described in any one of claims 7 to 16.

Citation Information

Patent Citations

  • Network topology structure based on fat tree high scalability hypercube

    CN103957163A

  • Method, system and device for implementing dual-host routing and medium

    CN117155842A