A dragonfly topology oriented distributed online adaptive routing method and device

By employing a distributed online adaptive routing method in the dragonfly topology network to dynamically select routing paths, the congestion problem caused by complex traffic in the dragonfly topology network is solved, achieving low latency and high network performance.

CN121309447BActive Publication Date: 2026-03-24NAT UNIV OF DEFENSE TECH
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-12-08
Publication Date
2026-03-24

AI Technical Summary

Technical Problem

In dragonfly topology networks, existing technologies struggle to effectively adapt to complex traffic patterns, leading to network congestion and excessive resource consumption, making it difficult to achieve high-performance routing.

Method used

A distributed online adaptive routing method is adopted, which dynamically selects the route path through local and global channel detection, including shortest path mode, source group optimization mode, target group optimization mode and dual-group intra-forward mode. Combined with congestion judgment, the route output port is selected by priority traversal of the port set.

Benefits of technology

It achieves congestion relief, reduces hop count, adapts to complex traffic in dragonfly topology networks, and features low latency, flexible configuration, and avoids deadlock.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121309447B_ABST
    Figure CN121309447B_ABST
Patent Text Reader

Abstract

The application discloses a kind of distributed online adaptive routing method and device for dragonfly topology, the method of the application includes determining the multiple path mode of data from source node to target node transmission in dragonfly topology, judging condition enters inter-group routing procedure or group routing procedure for input data packet;In inter-group routing procedure, a plurality of different priority port sets are generated according to the multiple path mode, and the routing output port selection is completed by traversing each port set according to priority order;In group routing procedure, the routing output port selection of local port is completed according to the mode of directly reaching local port, and the data packet is output through the selected routing output port.The application aims to realize online dynamic selection routing by detecting based on local and global channel, alleviate congestion and reduce hop count, can adapt to various complex traffic, with the advantages of low delay, flexible configuration and no deadlock.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to routing optimization techniques in high-performance networks, specifically to a distributed online adaptive routing method and apparatus for dragonfly topology. Background Technology

[0002] High-performance networks are a crucial infrastructure for supercomputing and intelligent computing centers. The rapid development of high-performance computers over the past decade, with continuously increasing system scale, has brought enormous challenges to network cost, power consumption, and stability. The most common "fat tree" topology offers balanced traffic and high distributed bandwidth, but suffers from poor scalability; even the Tianhe and Sunway supercomputers have only reached a maximum scale of tens of thousands of nodes. While "fat trees" expand by adding layers, the power consumption and cost of tree topologies with more than four layers increase exponentially, making it difficult to support the hundreds of thousands of nodes of future 10E-level high-performance computers. Recently, new topologies based on ultra-high-order routers have emerged, such as FlattenedButterfly, HyperX, Dragonfly, Slimfly, Megafly, and Galaxyfly. Among these, the Dragonfly topology is gradually being adopted in some systems, such as Frontier and Aurora, due to its scalability and cost-effectiveness. The Dragonfly topology provides low-diameter networks and high path diversity, making high-performance routing a challenging task. Minimum routing (minimum) is suitable for uniform traffic, but if only static minimum routing is used, the limited path selection will struggle to adapt to complex network traffic patterns (such as adversarial traffic patterns), easily leading to congestion and reduced network performance. To address this challenge, routing schemes typically employ Valiant load balancing routing to alleviate network congestion by introducing a large number of non-shortest (non-minimum) paths, fully utilizing path diversity. The selection of non-minimum paths is crucial; local traffic selection cannot detect remote congestion, leading to suboptimal decisions; random path selection achieves a high degree of load balancing, but the path length is not optimal, and excessive resource consumption will limit throughput performance. How large-scale dragonfly topologies can adapt to various complex traffic patterns, dynamically select ideal paths to alleviate congestion and reduce network resource consumption has become a critical technical problem that communication systems urgently need to solve. Summary of the Invention

[0003] The technical problem to be solved by this invention is to provide a distributed online adaptive routing method and apparatus for dragonfly topology, which addresses the above-mentioned problems in the prior art. This invention aims to alleviate congestion and reduce the number of hops by realizing online dynamic route selection based on local and global channel detection. It can adapt to various complex traffic and has the advantages of low latency, flexible configuration and no deadlock.

[0004] To solve the above-mentioned technical problems, the technical solution adopted by the present invention is as follows:

[0005] A distributed online adaptive routing method for dragonfly topology includes the following steps:

[0006] S101, Determine if the data in the dragonfly topology originates from source node C. s = <G s ,R s >To target node C d = <G d ,R d Multiple path modes during transmission include: shortest path mode ①, source group optimization mode ②, destination group optimization mode ③, and intra-group forwarding mode ④; where G s ,R s G is the index number of the source packet and the source router. d ,R d For the destination packet and the index number of the destination router;

[0007] S102, for the input data packet, determine whether the current node is the source node and the current packet is not the destination packet. If it is true, jump to step S103 to enter the inter-group routing process; otherwise, jump to step S104 to enter the intra-group routing process.

[0008] S103, search for global ports under various path modes to obtain the port set under each path mode, and traverse all port sets under all path modes according to the preset priority order of the path modes to complete the selection of the route output port, and jump to step S105.

[0009] S104, Perform intra-group routing to complete the selection of the local port's routing output port, then proceed to step S105;

[0010] S105 outputs data packets through the selected route output port.

[0011] Optionally, in step S101, the source node is denoted as C. s = <G s ,R s >, The target node is C d = <G d ,R d >, where G s ,R s G is the index number of the source packet and the source router. d ,R dHere, the index number represents the destination packet and the destination router. The various path modes include shortest path mode ①, source group optimization mode ②, target group optimization mode ③, and intra-group forwarding mode ④. In shortest path mode ①, the source node's data is sent directly to the target node's target packet after passing sequentially through the source router within the source packet, the router with the shortest path within the group, and the global port of the source packet. In source group optimization mode ②, the source node's data is sent to an intermediate packet after passing sequentially through the source router within the source packet and the global port of the source packet, and then forwarded to the target node's target packet via the intermediate packet. The intermediate packet satisfies the following conditions:

[0012] G i ∈{hR s ,…,hR s +h-1},

[0013] Among them G i For intermediate packets, h is the number of global ports on the router, R s This represents the index number of the source router; in target group optimization mode ③, the data from the source node is sequentially sent to the intermediate packet via the source router within the source packet, the router with the non-minimum path within the first group, and the global port of the source packet, and then forwarded to the target packet where the target node is located by the intermediate packet, and the intermediate packet satisfies:

[0014] G i ∈{hR d ,…,hR d +h-1},

[0015] Where R d The index number of the destination router is used to indicate the data. In the dual-group forwarding mode ④, the data of the source node is sent to the intermediate group after passing through the source router in the source group, the router of the non-minimum path in the second group, and the global port of the source group. Then, it is forwarded to the target group where the target node is located by the intermediate group.

[0016] Optionally,

[0017] It also includes generating routing configuration tables for the router, whose ports include internal ports, intra-group ports, and global ports. All ports include a node area for local internal communication, a broadcast area for intra-group communication, and a global area for inter-group communication. For internal ports, the routing configuration table configures a minimum routing table (A) for the node area, and a minimum routing table (A) and a non-minimum routing table (B) for the broadcast area and global area. For intra-group ports, the routing configuration table configures a minimum routing table (A) for the node area and broadcast area, and a minimum routing table (A) for the global area. Alternatively, a non-minimum routing table (B) is configured; for global ports, the routing configuration table configures a minimum routing table (A) for the node area and broadcast area, and a minimum routing table (A) and a non-minimum routing table (B) for the global area, where the minimum routing table (A) is the routing table that records the shortest path, and the non-minimum routing table (B) is the routing table that records non-shortest paths; step S103 includes: searching for global ports of shortest path mode ① to obtain a first port set (GA); searching for global ports of source group optimization mode ② to obtain a second port set (G2); searching for target group optimization mode ③ The global ports are used to obtain the third port set (G3); the intersection of the second port set (G2) and the third port set (G3) is used to obtain the fourth port set (GB); the union of the second port set (G2) and the third port set (G3) minus the fourth port set (GB) is used to obtain the fifth port set (GC); the global ports in the first port set (GA) excluding the union of the second port set (G2) and the third port set (G3) are used as the sixth port set (GD); the port sets are traversed in the priority order of the first port set (GA), the fourth port set (GB), the fifth port set (GC), and the sixth port set (GD) to complete the route output port selection; and the global ports for the shortest path mode ① to obtain the first port set (GA) means to find the global ports of the directly reaching target packets from the minimum routing table (A) to obtain the first port set (GA); the global ports for the source group optimization mode ② to obtain the second port set (G2) means to find the global ports of the intermediate packets directly connected to the source router from the non-minimum routing table (B), and the intermediate packets satisfy:

[0018] G i ∈{hR s ,…,hR s +h-1};

[0019] Where h is the number of global ports on the router, R s This indicates the index number of the source router; in step S102, finding the global port of the target group optimization mode ③ to obtain the third port set (G3) means finding the global port of the intermediate packet directly connected to the target packet from the non-minimum routing table (B), and the intermediate packet satisfies:

[0020] Gi ∈{hR d ,…,hR d +h-1};

[0021] Where h is the number of global ports on the router, R d Indicates the index number of the destination router.

[0022] Optionally,

[0023] In step S103, the step of traversing each port set according to the priority order of the first port set (GA), the fourth port set (GB), the fifth port set (GC), and the sixth port set (GD) to complete the route output port selection includes:

[0024] S201: Traverse each global port in the first port set (GA) and perform congestion judgment on the global port and its corresponding local port. If a global port and its corresponding local port are not congested, end the traversal, select the global port as the output port, end and return; if no satisfactory global port is found in the end, jump to the next step.

[0025] S202, traverse each global port in the fourth port set (GB) and perform congestion judgment on the global port and its corresponding local port. If a global port and its corresponding local port are not congested, end the traversal, select the global port as the output port, end and return; if no satisfactory global port is found in the end, jump to the next step.

[0026] S203, traverse each global port in the fifth port set (GC) and perform congestion judgment on the global port and its corresponding local port. If a global port and its corresponding local port are not congested, end the traversal, select the global port as the output port, end and return; if no satisfactory global port is found in the end, jump to the next step.

[0027] S204: Traverse each global port in the sixth port set (GD) and perform congestion judgment on the global port and its corresponding local port. If a global port and its corresponding local port are not congested, end the traversal, select the global port as the output port, end and return; if no satisfactory global port is found in the end, jump to the next step.

[0028] S205: Randomly select a global port from the union of the first port set (GA), the fourth port set (GB), the fifth port set (GC), and the sixth port set (GD) as the selected output port, then end and return.

[0029] Optionally, in step S104, the selection of the routing output port for the local port to complete intra-group routing includes:

[0030] S301, find the local ports that match the target node and are directly reachable in the non-minimum routing table (B) and add them to the preferred local port set (LE); find the local ports that match the target node but are not directly reachable in the non-minimum routing table (B) and add them to the backup local port set (LF).

[0031] S302, traverse each local port in the priority local port set (LE) and perform congestion judgment. If a local port is not congested, end the traversal, select the local port as the output port, end and return; if no satisfactory local port is found in the end, jump to the next step.

[0032] S303: Traverse each local port in the set of standby local ports (LF) and perform congestion judgment. If a local port is not congested, end the traversal, select that local port as the output port, end and return; if no satisfactory local port is found in the end, jump to the next step.

[0033] S304: Randomly select a local port from the union of the preferred local port set (LE) and the alternate local port set (LF) as the selected output port, then end and return.

[0034] Optionally, when performing congestion judgment, the congestion judgment of local ports is implemented based on the local port congestion bitmap, and the congestion judgment of global ports is implemented based on the global port congestion bitmap. Each bit in the local port congestion bitmap represents the congestion state of a local port, and each bit in the global port congestion bitmap represents the congestion state of a global port. The congestion state value is 1 or 0. The generation of the global port congestion bitmap includes: each node in the Dragonfly topology collects the congestion state of each global port according to the neighbor number R_bid configured on its local port, calculates the global port offset according to R_bid×h based on the collected global port congestion state to obtain the global port congestion bitmap of the whole group, and broadcasts the global port congestion bitmap of the whole group to the routers in the Dragonfly topology through global congestion state broadcast. The routers in the Dragonfly topology then concatenate the global port congestion bitmaps of all groups to obtain the final global port congestion bitmap.

[0035] The present invention also provides a distributed online adaptive routing apparatus for applying the aforementioned distributed online adaptive routing method for dragonfly topology, comprising:

[0036] The address decoder is used to determine whether the current node is the source node and the current packet is not the destination packet for the input data packet, so as to determine whether to enter the inter-group routing process or the intra-group routing process.

[0037] The component selector is used to select the inter-group routing calculation component (RTA) to perform the inter-group routing procedure or the intra-group routing calculation component (RTB) to perform the intra-group routing procedure based on the decoding result of the address decoder.

[0038] The Inter-group Route Calculation (RTA) component is used to find global ports under various path modes to obtain the port set for each path mode, and to traverse the port sets under all path modes according to the preset priority order of the path modes to complete the selection of the route output port.

[0039] The intra-group routing calculation unit (RTB) is used to select the route output port for the local port of intra-group routing completion.

[0040] The virtual channel switching logic is used to perform virtual channel switching on the output port of the route obtained by the inter-group routing calculation unit (RTA) executing the inter-group routing process or the intra-group routing calculation unit (RTB) executing the intra-group routing process in order to output the data packets.

[0041] Optionally, the inter-group routing calculation component (RTA) includes:

[0042] The first global port generation module (A1) is used to generate a minimum valid global port request N1 based on the minimum routing table (A) for the input data packet;

[0043] The second global port generation module (A2) is used to generate a non-minimum valid global port request N2 based on the non-minimum routing table (B) for the input data packet;

[0044] The intra-group congestion mapping unit (C1) is used to determine the congestion of global ports and local ports;

[0045] The priority filtering unit includes four filtering sub-modules, which are used to traverse each port set according to the priority order of the first port set (GA), the fourth port set (GB), the fifth port set (GC), and the sixth port set (GD) to complete the selection of the route output port;

[0046] The 512:1 arbitrator is used to arbitrate the route output ports obtained from the four filtering submodules in the priority filtering unit.

[0047] The multiplexer M is used to select the corresponding route output port based on the arbitration signal and port mapping information.

[0048] Optionally, the intra-group routing calculation component (RTB) includes:

[0049] The port filtering unit (F) is used to perform preliminary filtering on the input data packets according to the non-minimum routing table (B) to filter out the non-minimum path ports;

[0050] The minimum path congestion calculation unit (S1) is used to perform intra-group routing for the input data packet according to the minimum routing table (A) and select the routing output port of the local port corresponding to the minimum path.

[0051] The non-minimum path congestion calculation unit (S2) is used to perform intra-group routing for the input data packets based on the results filtered by the non-minimum routing table (B), and to select the routing output port of the local port corresponding to the non-minimum path.

[0052] The 64:1 arbitrator is used to arbitrate the route output ports obtained by the minimum path congestion calculation unit (S1) and the non-minimum path congestion calculation unit (S2) to complete the selection of the route output port of the local port.

[0053] The present invention also provides a distributed online adaptive routing device for dragonfly topology, comprising a processor and a memory interconnected thereto, wherein the processor is programmed or configured to execute the distributed online adaptive routing method for dragonfly topology.

[0054] Compared with existing technologies, the present invention mainly achieves the following beneficial effects: The method of the present invention includes determining multiple path modes when data is transmitted from the source node to the target node in the dragonfly topology, and entering the inter-group routing process or intra-group routing process based on the judgment conditions of the input data packet; in the inter-group routing process, multiple port sets with different priorities are generated according to multiple path modes, and each port set is traversed in priority order to complete the selection of the routing output port; in the intra-group routing process, the routing output port of the local port is selected according to the priority of direct access to the local port, and the data packet is output through the selected routing output port. The present invention, through local and global channel detection, can realize online dynamic route selection to alleviate congestion and reduce the number of hops, can adapt to various complex traffic, and has the advantages of low latency, flexible configuration and no deadlock. Attached Figure Description

[0055] Figure 1 This is a schematic diagram of the basic process of the method in an embodiment of the present invention.

[0056] Figure 2 This is a schematic diagram of various path modes in embodiments of the present invention.

[0057] Figure 3 This is a schematic diagram illustrating the specific flow of the inter-group routing process and the intra-group routing process in an embodiment of the present invention.

[0058] Figure 4 This is a schematic diagram illustrating the principle of generating and updating the global port congestion bitmap in an embodiment of the present invention.

[0059] Figure 5 This is a schematic diagram of the device in an embodiment of the present invention.

[0060] Figure 6 This is a schematic diagram of the inter-group routing calculation component RTA in an embodiment of the present invention.

[0061] Figure 7 This is a schematic diagram of the structure of the intra-group routing calculation component RTB in an embodiment of the present invention.

[0062] Figure 8 This is a schematic diagram showing the steps involved in the operation of the device in an embodiment of the present invention. Detailed Implementation

[0063] To enable those skilled in the art to better understand the technical solutions of the present invention, the technical solutions of the present invention will be further described in detail below with reference to the accompanying drawings in the embodiments of the present invention.

[0064] like Figure 1 As shown, the distributed online adaptive routing method for dragonfly topology in this embodiment includes the following steps:

[0065] S101, Determine if the data in the dragonfly topology originates from source node C. s = <G s ,R s >To target node C d = <G d ,R d Multiple path modes during transmission include: shortest path mode ①, source group optimization mode ②, destination group optimization mode ③, and intra-group forwarding mode ④; where G s ,R s G is the index number of the source packet and the source router. d ,R d For the destination packet and the index number of the destination router;

[0066] S102, determine condition C based on the input data packet P. i =C s and G i ≠G d Whether it is true or not, where C i and G i If the current intermediate node and intermediate group are true, proceed to step S103 to enter the inter-group routing process; otherwise, proceed to step S104 to enter the intra-group routing process.

[0067] S103, search for global ports under various path modes to obtain the port set under each path mode, and traverse all port sets under all path modes according to the preset priority order of the path modes to complete the selection of the route output port, and jump to step S105.

[0068] S104, Perform intra-group routing to complete the selection of the local port's routing output port, then proceed to step S105;

[0069] S105 outputs data packet P through the selected route output port.

[0070] In the dragonfly topology, the source node C s = <G s , R s >To target node C d = <G d , R d During transmission, source packets select different global ports, and intermediate packets select different local ports, each corresponding to a different number of hops. Distinguishing between the four global port selection strategies for source packets, any packet's Gth... i The global port connects to the Gth i Group. For example... Figure 2 As shown, among the various path modes in this embodiment:

[0071] Shortest path mode ① is source node C s The data are sequentially processed through source packet G s Source router R inside s Router R with the shortest path within the group m Source group G s After obtaining the global port, send it directly to the target node C. d Target group G d In shortest path mode ①, the minimum path passes through router R. m Direct to target group G d The solution with the fewest jumps and the path is LGL, which forms a three-hop path of "local-global-local" (LGL). This is the optimal solution for cross-group direct connection scenarios.

[0072] Source group optimization mode ② is source node C s The data are sequentially processed through source packet G s Source router R inside s Source group G s After the global port is obtained, it is sent to the intermediate packet G. i Then through the intermediate group G i Forwarded to target node C d Target group G d And the middle group G i Satisfy G i ∈{hR s ,…,hR s +h-1}, where h is the number of global ports on the router, R s This indicates the index number of the source router.

[0073] Target group optimization mode ③ is source node Cs The data are sequentially processed through source packet G s Source router R inside s Router R within the group that has a non-minimum path n1 Source group G s After the global port is obtained, it is sent to the intermediate packet G. i Then through the intermediate group G i Forwarded to target node C d Target group G d And the middle group G i Satisfy G i ∈{hR d ,…,hR d +h-1}, where R d This indicates the index number of the destination router.

[0074] Dual-group intra-forwarding mode ④ is for source node C s The data are sequentially processed through source packet G s Source router R inside s Router R within the group that has a non-minimum path n2 Source group G s After the global port is obtained, it is sent to the intermediate packet G. i Then through the intermediate group G i Forwarded to target node C d Target group G d In the dual-group intra-forwarding mode ④, after passing through the intra-group R... n2 and the middle group G i Arrive at G d G i This involves one forwarding step, has the most hops, and follows the path LG-L-GL. In dual-group intra-forwarding mode ④, when the target group cannot be directly connected, the data must pass through intermediate group G. i Two forwards: First via G i Group router R n1 Complete local forwarding, then secondary routing via R n2 Global forwarding is performed, with a five-hop structure of "local-global-local-global" (LG-L-GL), where n1 and n2 are indices, distinguishing routers by their different numbers. Next, consideration is given to reducing intra-group hops within both the source and destination groups. In source group optimization mode ②, the hops are connected to the source router R... s Directly connected intermediate group G i Turning to G d G i It includes one local forwarding. One intra-group hop is omitted within the source group, and the path is GL-GL. In target group optimization mode ③, when Gi∈{hR} d , …, hR d When +h-1}, the target router R dDirect connection of global port to intermediate group G i Within the target group, one intra-group jump is omitted, and the path is LG-LG. Assume that source group optimization mode ② and target group optimization mode ③ occur simultaneously (R... s =R d In this case, one intra-group hop is omitted in both the source and destination groups, resulting in a path of GLG. Additionally, for source group optimization mode ②, destination group optimization mode ③, and dual intra-group forwarding mode ④, if in the intermediate group G... i If refraction occurs within a group, the jump step count is incremented by 1, and the paths are G-LL-GL, LG-LL-G, and LG-LL-GL, respectively. In source group optimization mode ②, the source node selection is related to the intermediate group G. i A directly connected global port, via R s After the router completes its initial local forwarding, via G i R within the group n Global forwarding is performed, forming a four-hop "GL-GL" path, saving one hop by eliminating secondary forwarding within the source group. Scenario ③ is the target group optimization mode, where the intermediate group G... i Satisfy G i ∈{hR d , …, hR d When the condition is +h-1} (i.e., G) i The group was targeted by router R d (Global port coverage), data only needs to be forwarded locally once within the target group, and the path exhibits a four-hop characteristic of "LG-LG". The path pattern changes under special conditions: if source group optimization mode ② and target group optimization mode ③ occur simultaneously (i.e., source router R...) s With the target router R d For the same device, the path will evolve into a dual-optimized "GLG" three-hop simplified mode, requiring no secondary forwarding within either the source or destination group; while when the intermediate group G... i When data refraction occurs (e.g., due to load balancing triggering rerouting), the hop count for each mode increases by one. Specifically, this manifests as a five-hop path: Source group optimization mode ② → "G-LL-GL", Target group optimization mode ③ → "LG-LL-G", and Dual-group intra-forwarding mode ④ → "LG-LL-GL". This mechanism dynamically selects global ports and combines intra-group congestion assessment to achieve an adaptive balance between hop count and network load while ensuring route reachability. Here, "-" is the inter-group separator. Routing involves hops at the router's exit point. Therefore, for a given packet, each routing operation may involve local hops (L) (source and destination are within the same packet) and global hops (G) (source and destination are not in the same packet). GL indicates that the router within this packet receives routing packets from other packets and then forwards them within this packet before reaching the destination router. LL indicates that the packet is forwarded twice.

[0075] This embodiment also includes generating a routing configuration table for the router. The router's ports include internal ports, intra-group ports, and global ports. All ports include a node area (N area) for local internal communication, a broadcast area (B area) for intra-group communication, and a global area (G area) for inter-group communication. For internal ports, the routing configuration table configures a minimum routing table A for N area, and a minimum routing table A and a non-minimum routing table B for B area and G area. For intra-group ports, the routing configuration table configures a minimum routing table A for N area and B area, and a minimum routing table A or a non-minimum routing table B for G area. For global ports, the routing configuration table configures a minimum routing table A for N area and B area, and a minimum routing table A and a non-minimum routing table B for G area. The minimum routing table A is a routing table that records the shortest path, and the non-minimum routing table B is a routing table that records non-shortest paths.

[0076] In this embodiment, step S103 includes: finding the global ports of the shortest path mode ① to obtain the first port set GA; finding the global ports of the source group optimization mode ② to obtain the second port set G2; finding the global ports of the target group optimization mode ③ to obtain the third port set G3; calculating the intersection of the second port set G2 and the third port set G3 to obtain the fourth port set GB; calculating the union of the second port set G2 and the third port set G3 minus the fourth port set GB to obtain the fifth port set GC; taking the global ports in the first port set GA excluding the union of the second port set G2 and the third port set G3 as the sixth port set GD; traversing each port set according to the priority order of the first port set GA, the fourth port set GB, the fifth port set GC, and the sixth port set GD to complete the route output port selection; and in step S103, finding the global ports of the shortest path mode ① to obtain the first port set GA means finding the direct target packet G from the minimum routing table A. d The global ports are used as the first port set GA; in step S103, searching for the global ports of source group optimization mode ② to obtain the second port set G2 refers to searching for the ports of the source router R from the non-minimum routing table B. s Directly connected intermediate group G i The global port, and the intermediate group G i satisfy:

[0077] G i ∈{hR s ,…,hR s +h-1};

[0078] Where h is the number of global ports on the router, R s This indicates the index number of the source router; in step S102, searching for the global port of the target group optimization mode ③ to obtain the third port set G3 refers to searching for the target packet G in the non-minimum routing table B.d Directly connected intermediate group G i The global port, and the intermediate group G i satisfy:

[0079] G i ∈{hR d ,…,hR d +h-1};

[0080] Where h is the number of global ports on the router, R d Indicates the index number of the destination router.

[0081] Based on the various path patterns determined by the above-mentioned dragonfly topology source grouping multipath selection strategy, the online adaptive routing algorithm based on channel detection in this embodiment can be adopted, and its operation process is as follows: Figure 1 and Figure 3 As shown, the algorithm dynamically selects the output port based on the information of the source, destination, and current router, giving priority to path hop count and congestion status.

[0082] like Figure 3 As shown, in step S103 of this embodiment, the step of traversing each port set according to the priority order of the first port set GA, the fourth port set GB, the fifth port set GC, and the sixth port set GD to complete the route output port selection includes:

[0083] S201, traverse each global port g in the first port set GA and perform congestion judgment on global port g and corresponding local port l. If a global port g and its corresponding local port l are not congested, end the traversal, use the global port g as the selected output port, end and return; if no satisfactory global port g is found in the end, jump to the next step.

[0084] S202, traverse each global port g in the fourth port set GB and perform congestion judgment on global port g and its corresponding local port l. If a global port g and its corresponding local port l are not congested, end the traversal, use the global port g as the selected output port, end and return; if no satisfactory global port g is found in the end, jump to the next step.

[0085] S203, traverse each global port g in the fifth port set GC and perform congestion judgment on global port g and corresponding local port l. If a global port g and its corresponding local port l are not congested, end the traversal, use the global port g as the selected output port, end and return; if no satisfactory global port g is found in the end, jump to the next step.

[0086] S204, traverse each global port g in the sixth port set GD and perform congestion judgment on global port g and its corresponding local port l. If a global port g and its corresponding local port l are not congested, end the traversal, use the global port g as the selected output port, end and return; if no satisfactory global port g is found in the end, jump to the next step.

[0087] S205: Randomly select a global port g from the union of the first port set GA, the fourth port set GB, the fifth port set GC, and the sixth port set GD as the selected output port, then end and return.

[0088] When condition (C) i =C s )&(G i ≠G d When the condition is met (indicating inter-group routing between source routers), the algorithm performs a global port lookup. First, it calculates four sets of groups with decreasing priorities: GA, GB, GC, and GD. These sets correspond to different path lengths from 3 to 5 hops. For simplicity, the shortest path mode ①, source group optimization mode ②, target group optimization mode ③, and intra-group forwarding mode ④ can be referred to as modes ① to ④, respectively. In this embodiment, the sets GA, GB, GC, and GD are traversed sequentially: For each group, the corresponding local port is obtained through a mapping table, and it is checked that the port has neither global nor local congestion. Once a port that meets the conditions is found, it is immediately selected, and the process terminates. If no suitable port is found in any group, a port is randomly selected from the union set as the final output. When processing inter-group routing (source group ≠ target group), the system first determines the source node C. s With target node C d Are they in the same group (G) s ≠G d If not, proceed to the inter-group routing process: 1) Port set generation: Calculate the GA set (mode ①): Select the directly accessible target group G from the minimum routing table A. d The global ports are used to form the minimum hop count path (LGL, 3 hops). The G2 set (mode ②) is calculated: a path matching the source router R is selected from the non-minimum routing table B. s Directly connected intermediate group G i global port (hR) s To hR s +h-1 range). Calculate G3 set (mode ③): filter from non-minimum routing table B to match the target router R. d Directly connected intermediate group G i global port (hR) d To hR d+h-1 range). The GB set is the intersection of G2 and G3 (mode ② + ③ dual optimization), the GC set is the union of G2 and G3 minus GB (mode ② or ③ single-sided optimization), and the GD set is the second-best global port in the minimum routing table A except G2∪G3 (mode ④). Hierarchical congestion detection and path selection: 2) Traverse each port set in priority order: GA routing: Traverse each global port g in GA and check its global port (CongG(g)) and the corresponding local port. l (Lport(tableC,g)) checks if all ports are uncongested. If the condition is met, a path is matched and the process exits. GB routing: If no path is available in GA, ports in GB are traversed, and the congestion status of global and local ports is checked. This mode reduces two hops through dual optimization (GLG, 3 hops). GC routing: If the first two fail, ports in GC are traversed, and the congestion status of global and local ports is checked. This is suitable for single-sided optimization scenarios (LG-L-GL, 4 hops). GD routing: If there is still no result, ports in GD are traversed, and the congestion status of global and local ports is checked. The corresponding suboptimal path is (LG-L-GL, 5 hops). Fallback mechanism: If all traversals fail, a port is randomly selected from GA∪GB∪GC∪GD to complete the matching, ensuring route reachability. TableC records the local port number associated with each global port. For example, Lport(tableC,g) means that global port g is looked up in tableC to obtain its associated local port.

[0089] When the above conditions (C) i =C s )&(G i ≠G d When the condition is not met (intra-group routing and other cases), the algorithm performs a local port lookup. First, two port sets are calculated: a priority local port set (LE) and a backup local port set (LF), referred to as the LE set and LF set, respectively. These sets are traversed in priority order, checking if each port is free of local congestion. If a port meeting the criteria is found, it is immediately selected and the process terminates. If all ports are congested, a port is randomly selected from the union of these sets for routing. Throughout the process, high-quality paths are always prioritized, with a random backoff mechanism used only when necessary to ensure connectivity. Specifically... Figure 4 As shown, in step S104 of this embodiment, the selection of the routing output port for the local port to complete the intra-group routing includes:

[0090] S301, find the path to the destination node C in the non-minimum routing table B. d The matching and directly reachable local port l is added to the preferred local port set LE, and the destination node C is found in the non-minimum routing table B. d Add the local port l that matches but is not directly accessible to the backup local port set LF;

[0091] S302, traverse each local port l in the priority local port set LE and perform congestion judgment. If a local port l is not congested, end the traversal, take the local port l as the selected output port, end and return; if no satisfactory local port l is found in the end, jump to the next step.

[0092] S303, traverse each local port l in the spare local port set LF and perform congestion judgment. If a local port l is not congested, end the traversal, use the local port l as the selected output port, end and return; if no satisfactory local port l is found in the end, jump to the next step.

[0093] S304: Randomly select a local port l from the union of the preferred local port set LE and the backup local port set LF as the selected output port, then end and return.

[0094] Intra-group routing processing (source group = destination group) If the source group and destination group are the same (G s =G d If the condition is met, the group routing process begins: Local port classification: Calculate the LE set: High-efficiency local ports (ports in the non-minimum routing table B that match the destination Cd and are directly reachable). Calculate the LF set: Backup local ports (ports in the non-minimum routing table B that match the destination Cd but are not directly reachable). Priority matching: First, traverse port l in the LE and check if the local port is not congested. If a match is found, it is output immediately. If no port is available in LE, the ports in LF are traversed, and the local port congestion status is checked again. If all local ports are congested, a port is randomly selected from LE∪LF to complete the match. This algorithm can improve network throughput efficiency by prioritizing low-congestion paths through hierarchical congestion detection (global / local ports). At the same time, the path candidate set is traversed in ascending order of hop count (GA→GB→GC→GD) to achieve load balancing while ensuring low latency. Moreover, when all preferred paths are unavailable, a random routing mechanism is enabled to avoid route congestion.

[0095] Figure 3 middle, CongG ( g ) is the global port g A function to determine congestion. CongL ( l ) is the local port lA congestion determination function is used. In this embodiment, the router relies on credit counts to record downstream port buffer status to determine congestion. Both credit counting and congestion determination occur at the switching component egress, reducing congestion determination latency. The generated global port congestion bitmap is carried on the physical coding layer and broadcast to all routers in the group, reducing global congestion propagation latency. For local or global ports, local and global congestion thresholds are configured at the switching component egress, respectively. For local ports, the CongL function in the router compares the credit count with the local congestion threshold to determine if the local port is congested. For global ports, it compares the value with the global congestion threshold and uses a historical window method to determine if the global port is congested. Since global ports use fiber optic transmission, the actual global congestion threshold is usually greater than the local congestion threshold. The global port status is then broadcast to neighbors in the group via a fast channel. Specifically, in this embodiment, when performing congestion judgment, the congestion judgment of local ports is implemented based on the local port congestion bitmap, and the congestion judgment of global ports is implemented based on the global port congestion bitmap. Each bit in the local port congestion bitmap represents the congestion state of a local port, and each bit in the global port congestion bitmap represents the congestion state of a global port. The congestion state value is 1 or 0; Figure 4 As shown, the generation of the global port congestion bitmap in this embodiment includes: each node in the Dragonfly topology collects the congestion status of each global port according to the neighbor number R_bid configured on its local port, calculates the global port offset based on R_bid × h to obtain the global port congestion bitmap of the entire group, and broadcasts the global port congestion bitmap of the entire group to the routers in the Dragonfly topology through global congestion status broadcast. The routers in the Dragonfly topology then concatenate the global port congestion bitmaps of all groups to obtain the final global port congestion bitmap. Since the local port is pre-configured with each neighbor number R_bid, the global port offset is calculated based on R_bid × h after collecting the congestion bitmap from the local port, and the global port congestion bitmap of the entire group is quickly formed. After receiving the h-bit bitmap from multiple group neighbors, the router loads it in a time-division multiplexing manner to form a 512-bit global channel congestion bitmap, and broadcasts it to the routing calculation unit of each port in a loop.

[0096] This embodiment presents a distributed online adaptive routing method for dragonfly topology. Based on local and global channel detection, it dynamically selects routes online to alleviate congestion and reduce the number of hops. It proposes a routing calculation structure and a reconfigurable routing configuration method, which features low latency, flexible configuration, and no deadlock.

[0097] like Figure 5 As shown, this embodiment also provides a distributed online adaptive routing device for applying the aforementioned distributed online adaptive routing method for dragonfly topology, comprising:

[0098] The address decoder is used to determine whether the current node is the source node and the current packet is not the destination packet for the input data packet, so as to determine whether to enter the inter-group routing process or the intra-group routing process.

[0099] The component selector is used to select the inter-group routing calculation component RTA to perform the inter-group routing procedure or the intra-group routing calculation component RTB to perform the intra-group routing procedure based on the decoding result of the address decoder.

[0100] The Inter-group Routing Calculation (RTA) component is used to find global ports under various path modes to obtain the port set for each path mode, and to traverse the port sets under all path modes according to the preset priority order of the path modes to complete the selection of the route output port.

[0101] The intra-group routing calculation unit RTB is used to select the output port of the local port for intra-group routing completion.

[0102] The virtual channel switching logic is used to perform virtual channel switching to output data packets based on the route output port obtained by the inter-group routing calculation unit RTA executing the inter-group routing process or the intra-group routing calculation unit RTB executing the intra-group routing process.

[0103] like Figure 6 As shown, the inter-group routing calculation component (RTA) in this embodiment includes:

[0104] The first global port generation module A1 is used to generate a minimum valid global port request N1 based on the minimum routing table A for the input data packet;

[0105] The second global port generation module A2 is used to generate a non-minimum valid global port request N2 based on the non-minimum routing table B for the input data packet.

[0106] The intra-group congestion mapping unit C1 is used to determine the congestion of global ports and local ports;

[0107] The priority filtering unit includes four filtering sub-modules: the first sub-module GAP, the second sub-module GBP, the third sub-module GCP, and the fourth sub-module GDP. These sub-modules are used to traverse each port set according to the priority order of the first port set GA, the fourth port set GB, the fifth port set GC, and the sixth port set GD to complete the selection of the route output port.

[0108] The 512:1 arbitrator is used to arbitrate the route output ports obtained from the four filtering submodules in the priority filtering unit.

[0109] The multiplexer M is used to select the corresponding route output port based on the arbitration signal and port mapping information.

[0110] like Figure 7 As shown, the intra-group routing calculation component (RTB) in this embodiment includes:

[0111] The port filtering unit F is used to perform preliminary filtering on the input data packets according to the non-minimum routing table B, and filter out the non-minimum path ports.

[0112] The minimum path congestion calculation unit S1 is used to perform intra-group routing based on the minimum routing table A for the input data packets and select the routing output port of the local port corresponding to the minimum path.

[0113] The non-minimum path congestion calculation unit S2 is used to perform intra-group routing for the input data packets based on the results filtered by the non-minimum routing table B, and to select the routing output port of the local port corresponding to the non-minimum path.

[0114] The 64:1 arbitrator is used to arbitrate the route output ports obtained by the minimum path congestion calculation unit S1 and the non-minimum path congestion calculation unit S2 to complete the selection of the route output port of the local port.

[0115] like Figure 8As shown, the distributed online adaptive routing device in this embodiment includes four stages: address decoding & component selection (STAGE_1), matching port set (STAGE_2), priority selection of non-congested port set (STAGE_3), and arbitrator selection of optimal output port (STAGE_4), referred to as STAGE_1 to STAGE_4. In STAGE_1, the target node and the current router are looked up in two tables to determine whether the current port belongs to an internal port and whether the target points to other packets. STAGE_2 provides a set of global or local ports. STAGE_3 performs a port request and, combined with the port congestion bitmap, uses a priority filtering unit to provide the best result. STAGE_4 combines the port mapping table and the result of STAGE_3 to provide the optimal output port number. In STAGE_1, the router relies on credit count records to check downstream port buffering and update the global port congestion bitmap and local port congestion bitmap. Both credit counting and congestion assessment occur at the router's switching component exit, reducing congestion assessment latency. The generated global port congestion bitmap is carried on the physical coding layer and broadcast to all routers within the group, reducing global congestion propagation latency. In STAGE_2, based on the result of STAGE_1 determining that the current port belongs to an internal port and its destination points to another packet, a sub-component is selected. If so, STAGE_2 provides the port sets given by the minimum routing table A and the non-minimum routing table. The port set given by the minimum routing table includes 8 local ports for the global model, while the port set given by the non-minimum routing table includes one local port and 16 global ports. Otherwise, minimum routing table A and non-minimum routing table B each provide 64 local ports. In STAGE_3, if it is an inter-group route, the global port request generation unit reads the routing table entry, expands it into a 512-bit global port request, and sends it to the valid global port request unit. The intra-group congestion calculation unit calculates the local port congestion status of 512 global ports based on the local port congestion bitmap and sends it to the valid global port request unit. This unit then refers to the global port congestion bitmap and local port congestion, sending minimum path global port requests without global or local congestion to the priority filtering unit, and also sending non-minimum path global port requests without congestion to the priority filtering unit. When it's intra-group routing, the request is sent to the non-minimum path congestion calculation unit S2. Then, the arbitrator selects the best port. In STAGE_4, the 512:1 arbitrator prioritizes the global port request with the lowest hop count, selecting a single winner for the multiplexer M. Then, based on the port mapping table, the single winning local port is selected for output. In other cases, the intra-group routing calculation unit RTB operates.The pipeline's Level 3 path congestion unit receives the global port congestion bitmap and local port congestion bitmap from the routing table entries, and requests the local port of the least congested path to another arbitrator; unit S2, which only calculates congestion for non-shortest paths, requests the local port of the non-least-path path to the 512:1 arbitrator. The inter-group routing calculation unit RTA or the intra-group routing calculation unit RTB selects the optimal output port for the data packet based on the routing table and the local and global congestion bitmaps, and outputs it.

[0116] Furthermore, this embodiment also provides a reconfigurable routing configuration method, the purpose of which is to adapt to different global ports selected by source packets. Different ports have different table configurations.

[0117] Table 1: Typical Routing Configuration Table for Dragonfly Topology

[0118]

[0119] The default configuration for entries in the minimum routing table A is a 64-bit bitmap LP, lp j (j=0,…,63) corresponds to 64 local ports, indicating whether transmission using the j-th local port is allowed. However, in the internal port G area, the minimum routing table A uses a global configuration, with entries for local port pc0 and a 16-bit global port bitmap GP, used to calculate the global ports for the inter-group route Min path. Secondly, the non-minimum routing table B only contains areas B and G, and its default configuration also uses a bitmap LP. A global configuration is also used in the internal port G area, with entries for 8 local ports pc0. k (k=1,…,8), global ports used to calculate the non-min path for inter-group routing. Since each local port corresponds to 16 global ports of adjacent routers, a maximum of 128 global ports can be supported. As shown in Table 1, local ports are further divided into internal ports and intra-group ports. First, for internal ports, in Zone N, the minimum routing table A is configured only for internal nodes. In Zone B, the minimum routing table A within the group points to the target router within the group, and the non-minimum routing table B points to other routers within the group. In Zone G, the minimum routing table A between groups points to the router directly connected to the target packet; the non-minimum routing table B is configured, and the non-minimum path points to other routers. Second, for intra-group ports, in Zone N, the minimum routing table A is configured only for internal nodes, and in Zone B, it points to the target router within the group. In Zone G, the minimum routing table A or non-minimum routing table B is configured for different entries, and the minimum routing table A and non-minimum routing table B are not configured simultaneously for the same entry. For entries of packets directly connected to the current router, only the minimum routing table A is configured; for other packets, only the non-minimum routing table B is configured, all using a 64-bit bitmap configuration. Third, for global ports, areas N and B are similar to ports within the group. Area G means that it is currently in an intermediate group. Configure the minimum routing table A to point to the intermediate group's exit router, and configure the non-minimum routing table B to point to other routers within the group for recursion.

[0120] Furthermore, this embodiment also provides a distributed online adaptive routing device for dragonfly topology, including a processor and a memory interconnected, wherein the processor is programmed or configured to execute the distributed online adaptive routing method for dragonfly topology.

[0121] Those skilled in the art will understand that the technical solutions provided by this invention may take the form of a method, system, or computer program product. Therefore, this invention may take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this invention may take the form of a computer program product embodied on one or more computer-readable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code. This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, produce an implementation of the flowchart... Figure 1 One or more processes and / or boxes Figure 1 The computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The functions specified in one or more boxes. These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable apparatus for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0122] The above description is merely a preferred embodiment of the present invention. The scope of protection of the present invention is not limited to the above embodiments. All technical solutions falling within the scope of the present invention's concept are within the scope of protection of the present invention. It should be noted that for those skilled in the art, any improvements and modifications made without departing from the principles of the present invention should also be considered within the scope of protection of the present invention.

Claims

1. A distributed online adaptive routing method for dragonfly topology, characterized in that, Includes the following steps: S101, determine multiple path modes when data is transmitted from the source node to the target node in the dragonfly topology; S102, for the input data packet, determine whether the current node is the source node and the current packet is not the destination packet. If it is true, jump to step S103 to enter the inter-group routing process. Otherwise, proceed to step S104 to enter the group routing process; S103, search for global ports under various path modes to obtain the port set under each path mode, and traverse all port sets under all path modes according to the preset priority order of the path modes to complete the selection of the route output port, and jump to step S105. S104, Perform intra-group routing to complete the selection of the local port's routing output port, then proceed to step S105; S105, outputs the data packet through the selected route output port; In step S101, the source node is denoted as C. s = <G s ,R s >, The target node is C d = <G d ,R d >, where G s ,R s G is the index number of the source packet and the source router. d ,R d Here, the index number represents the destination packet and the destination router. The various path modes include shortest path mode ①, source group optimization mode ②, target group optimization mode ③, and intra-group forwarding mode ④. In shortest path mode ①, the source node's data is sent directly to the target node's target packet after passing sequentially through the source router within the source packet, the router with the shortest path within the group, and the global port of the source packet. In source group optimization mode ②, the source node's data is sent to an intermediate packet after passing sequentially through the source router within the source packet and the global port of the source packet, and then forwarded to the target node's target packet via the intermediate packet. The intermediate packet satisfies the following conditions: G i ∈{hR s ,…,hR s +h-1}, Among them G i For intermediate packets, h is the number of global ports on the router, R s This represents the index number of the source router; in target group optimization mode ③, the data from the source node is sequentially sent to the intermediate packet via the source router within the source packet, the router with the non-minimum path within the first group, and the global port of the source packet, and then forwarded to the target packet where the target node is located by the intermediate packet, and the intermediate packet satisfies: G i ∈{hR d ,…,hR d +h-1}, Where R d The index number of the destination router is used to indicate the data. In the dual-group forwarding mode ④, the data of the source node is sent to the intermediate group after passing through the source router in the source group, the router of the non-minimum path in the second group, and the global port of the source group. Then, it is forwarded to the target group where the target node is located by the intermediate group.

2. The distributed online adaptive routing method for dragonfly topology according to claim 1, characterized in that, It also includes generating routing configuration tables for the router, whose ports include internal ports, intra-group ports, and global ports. All ports include a node area for local internal communication, a broadcast area for intra-group communication, and a global area for inter-group communication. For internal ports, the routing configuration table configures a minimum routing table (A) for the node area, and a minimum routing table (A) and a non-minimum routing table (B) for the broadcast area and global area. For intra-group ports, the routing configuration table configures a minimum routing table (A) for the node area and broadcast area, and a minimum routing table (A) for the global area. Alternatively, a non-minimum routing table (B) is configured; for global ports, the routing configuration table configures a minimum routing table (A) for the node area and broadcast area, and a minimum routing table (A) and a non-minimum routing table (B) for the global area, where the minimum routing table (A) is the routing table that records the shortest path, and the non-minimum routing table (B) is the routing table that records non-shortest paths; step S103 includes: searching for global ports of shortest path mode ① to obtain a first port set (GA); searching for global ports of source group optimization mode ② to obtain a second port set (G2); searching for target group optimization mode ③ The global ports are used to obtain the third port set (G3); the intersection of the second port set (G2) and the third port set (G3) is used to obtain the fourth port set (GB); the union of the second port set (G2) and the third port set (G3) minus the fourth port set (GB) is used to obtain the fifth port set (GC); the global ports in the first port set (GA) excluding the union of the second port set (G2) and the third port set (G3) are used as the sixth port set (GD); the port sets are traversed in the priority order of the first port set (GA), the fourth port set (GB), the fifth port set (GC), and the sixth port set (GD) to complete the route output port selection; and the global ports for the shortest path mode ① to obtain the first port set (GA) means to find the global ports of the directly reaching target packets from the minimum routing table (A) to obtain the first port set (GA); the global ports for the source group optimization mode ② to obtain the second port set (G2) means to find the global ports of the intermediate packets directly connected to the source router from the non-minimum routing table (B), and the intermediate packets satisfy: G i ∈{hR s ,…,hR s +h-1}; Where h is the number of global ports on the router, R s This indicates the index number of the source router; in step S102, finding the global port of the target group optimization mode ③ to obtain the third port set (G3) means finding the global port of the intermediate packet directly connected to the target packet from the non-minimum routing table (B), and the intermediate packet satisfies: G i ∈{hR d ,…,hR d +h-1}; Where h is the number of global ports on the router, R d Indicates the index number of the destination router.

3. The distributed online adaptive routing method for dragonfly topology according to claim 2, characterized in that, In step S103, the step of traversing each port set according to the priority order of the first port set (GA), the fourth port set (GB), the fifth port set (GC), and the sixth port set (GD) to complete the route output port selection includes: S201: Traverse each global port in the first port set (GA) and perform congestion judgment on the global port and its corresponding local port. If a global port and its corresponding local port are not congested, end the traversal, select the global port as the output port, end and return; if no satisfactory global port is found in the end, jump to the next step. S202, traverse each global port in the fourth port set (GB) and perform congestion judgment on the global port and its corresponding local port. If a global port and its corresponding local port are not congested, end the traversal, select the global port as the output port, end and return; if no satisfactory global port is found in the end, jump to the next step. S203, traverse each global port in the fifth port set (GC) and perform congestion judgment on the global port and its corresponding local port. If a global port and its corresponding local port are not congested, end the traversal, select the global port as the output port, end and return; if no satisfactory global port is found in the end, jump to the next step. S204: Traverse each global port in the sixth port set (GD) and perform congestion judgment on the global port and its corresponding local port. If a global port and its corresponding local port are not congested, end the traversal, select the global port as the output port, end and return; if no satisfactory global port is found in the end, jump to the next step. S205: Randomly select a global port from the union of the first port set (GA), the fourth port set (GB), the fifth port set (GC), and the sixth port set (GD) as the selected output port, then end and return.

4. The distributed online adaptive routing method for dragonfly topology according to claim 2, characterized in that, In step S104, the selection of the routing output port for the local port during intra-group routing includes: S301, find the local ports that match the target node and are directly reachable in the non-minimum routing table (B) and add them to the preferred local port set (LE); find the local ports that match the target node but are not directly reachable in the non-minimum routing table (B) and add them to the backup local port set (LF). S302, traverse each local port in the priority local port set (LE) and perform congestion judgment. If a local port is not congested, end the traversal, select the local port as the output port, end and return; if no satisfactory local port is found in the end, jump to the next step. S303: Traverse each local port in the set of standby local ports (LF) and perform congestion judgment. If a local port is not congested, end the traversal, select that local port as the output port, end and return; if no satisfactory local port is found in the end, jump to the next step. S304: Randomly select a local port from the union of the preferred local port set (LE) and the alternate local port set (LF) as the selected output port, then end and return.

5. The distributed online adaptive routing method for dragonfly topology according to claim 3 or 4, characterized in that, When performing congestion judgment, the congestion judgment of local ports is implemented based on the local port congestion bitmap, and the congestion judgment of global ports is implemented based on the global port congestion bitmap. Each bit in the local port congestion bitmap represents the congestion state of a local port, and each bit in the global port congestion bitmap represents the congestion state of a global port. The congestion state value is 1 or 0. The generation of the global port congestion bitmap includes: each node in the Dragonfly topology collects the congestion state of each global port according to the neighbor number R_bid configured on its local port, calculates the global port offset according to R_bid×h based on the collected global port congestion state to obtain the global port congestion bitmap of the whole group, and broadcasts the global port congestion bitmap of the whole group to the routers in the Dragonfly topology through global congestion state broadcast. The routers in the Dragonfly topology then concatenate the global port congestion bitmaps of all groups to obtain the final global port congestion bitmap.

6. A distributed online adaptive routing apparatus for applying the distributed online adaptive routing method for dragonfly topology as described in any one of claims 1 to 5, characterized in that, include: The address decoder is used to determine whether the current node is the source node and the current packet is not the destination packet for the input data packet, so as to determine whether to enter the inter-group routing process or the intra-group routing process. The component selector is used to select the inter-group routing calculation component (RTA) to perform the inter-group routing procedure or the intra-group routing calculation component (RTB) to perform the intra-group routing procedure based on the decoding result of the address decoder. The Inter-group Route Calculation (RTA) component is used to find global ports under various path modes to obtain the port set for each path mode, and to traverse the port sets under all path modes according to the preset priority order of the path modes to complete the selection of the route output port. The intra-group routing calculation unit (RTB) is used to select the route output port for the local port of intra-group routing completion. The virtual channel switching logic is used to perform virtual channel switching on the output port of the route obtained by the inter-group routing calculation unit (RTA) executing the inter-group routing process or the intra-group routing calculation unit (RTB) executing the intra-group routing process in order to output the data packets.

7. The distributed online adaptive routing device according to claim 6, characterized in that, The inter-group routing calculation component (RTA) includes: The first global port generation module (A1) is used to generate a minimum valid global port request N1 based on the minimum routing table (A) for the input data packet; The second global port generation module (A2) is used to generate a non-minimum valid global port request N2 based on the non-minimum routing table (B) for the input data packet; The intra-group congestion mapping unit (C1) is used to determine the congestion of global ports and local ports; The priority filtering unit includes four filtering sub-modules, which are used to traverse each port set according to the priority order of the first port set (GA), the fourth port set (GB), the fifth port set (GC), and the sixth port set (GD) to complete the selection of the route output port; The 512:1 arbitrator is used to arbitrate the route output ports obtained from the four filtering submodules in the priority filtering unit. The multiplexer M is used to select the corresponding route output port based on the arbitration signal and port mapping information.

8. The distributed online adaptive routing device according to claim 6, characterized in that, The intra-group routing calculation (RTB) component includes: The port filtering unit (F) is used to perform preliminary filtering on the input data packets according to the non-minimum routing table (B) to filter out the non-minimum path ports; The minimum path congestion calculation unit (S1) is used to perform intra-group routing for the input data packet according to the minimum routing table (A) and select the routing output port of the local port corresponding to the minimum path. The non-minimum path congestion calculation unit (S2) is used to perform intra-group routing for the input data packets based on the results filtered by the non-minimum routing table (B), and to select the routing output port of the local port corresponding to the non-minimum path. The 64:1 arbitrator is used to arbitrate the route output ports obtained by the minimum path congestion calculation unit (S1) and the non-minimum path congestion calculation unit (S2) to complete the selection of the route output port of the local port.

9. A routing device comprising a processor and a memory interconnected, characterized in that, The processor is programmed or configured to execute the distributed online adaptive routing method for dragonfly topology as described in any one of claims 1 to 5.

Citation Information

Patent Citations

  • Self-adaptive routing method of two-dimensional network-on-chip topological structure

    CN104901899A

  • Method to route packets in a distributed direct interconnect network

    US20160344618A1