A multi-channel high-dimension torus network architecture and adaptive routing method
Patent Information
- Application Number
- CN202311189612.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-09-15
- Publication Date
- 2026-10-09
- Estimated Expiration
- 2043-09-15
AI Technical Summary
[0007]目前,Torus网络如果要集成的计算节点个数过多,例如要集成7、8万个计算节点时,Torus网络的网络直径一般控制在20~40,相比于高阶网络,Torus网络的网络直径不可能控制的很低,因此传输数据会带来较大的延迟
[0029]This invention discloses a multi-channel high-dimensional Torus network architecture and adaptive routing method. By configuring a computing unit comprising multiple demultiplexers, multiple multiple selectors, multiple routers, and multiple CPUs, where each demultiplexer corresponds to one multiple selector, each multiple selector corresponds to one router, and each router corresponds to multiple CPUs, the demultiplexers, multiple selectors, and routers are connected sequentially. Routers are connected to multiple CPUs, and the demultiplexers are connected to all multiple selectors within the computing unit. This constructs a multi-channel high-dimensional Torus network architecture. Compared to existing high-dimensional Torus network architectures where the computing unit consists of only one router connected to one CPU, the multi-channel high-dimensional Torus network architecture constructed in this invention significantly reduces the network diameter (by multiple times), significantly improves network scalability (i.e., system scalability), and achieves a marked improvement in system performance (i.e., network performance).
Smart Images

Figure CN119652803B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of distributed computing technology, and in particular to a multi-channel high-dimensional Torus network architecture and an adaptive routing method. Background Technology
[0002] Interconnection networks are a bus technology that overcomes performance limitations imposed by electrical constraints, becoming a universal solution for system-level communication problems in modern digital systems. Interconnection networks are crucial modules affecting the performance and scalability of the entire multiprocessor system. How to provide low-latency, high-efficiency communication between processing nodes in interconnection networks, based on existing technologies, is a key problem that urgently needs to be solved.
[0003] Interconnection networks mainly consist of three elements: topology, switching mechanism, and routing method. High-performance interconnection networks are the core technology for building supercomputers. High-performance interconnection mainly develops in two directions: (1) low-degree networks (low-order networks), where each computing node (or processor) has a low degree, mainly including low-dimensional Torus networks (ring networks), and (2) high-order networks: such as fat trees, dragonfly, dragonfly+, and slingshot networks.
[0004] For example, CrayTitan's Gemini interconnect has a node degree of 3. A 3D torus architecture has 8 physical channels connecting adjacent nodes in 6 directions and 4 physical channels connecting nodes in two directions, so the Gemini interconnect uses a 48-port switching chip. IBM Blue / Gene L and P have a node degree of 6; IBM Blue / Gene Q uses a 5D torus interconnect network. Japan's K-Computer mainly uses a 6D torus network architecture and a modified dimension-order routing algorithm. The characteristics of low-degree networks are: high throughput per physical channel, but simple switch design per node and a large network diameter.
[0005] Torus networks are interconnected networks with a completely symmetrical topology. They possess many excellent characteristics, such as all nodes having the same degree, simple structure, numerous paths, and good scalability, making them widely used in commercial systems. However, the performance of routing methods in Torus networks still needs improvement; moreover, the bandwidth sharing is relatively low.
[0006] High-Radix networks, including FatTree and Dragonfly networks, are characterized by a low network diameter (typically less than 5), but a high number of switch ports, complex design, and relatively low throughput per physical channel. Current technology supports 64-port IB switches with 400G-800G throughput per port.
[0007] Currently, when a Torus network needs to integrate a large number of computing nodes, such as 70,000 to 80,000 nodes, the network diameter is typically controlled between 20 and 40. Compared to higher-order networks, the network diameter of a Torus network cannot be kept very low, resulting in significant latency in data transmission. Therefore, how to significantly reduce the network diameter of a Torus network while simultaneously improving its scalability and performance has become a pressing issue for those skilled in the art. Summary of the Invention
[0008] The purpose of this invention is to provide a multi-channel, high-dimensional Torus network architecture and an adaptive routing method, which can significantly reduce the network diameter of the Torus network, greatly improve network scalability, and significantly improve system performance.
[0009] To achieve the above objectives, the present invention provides the following solution:
[0010] A multi-channel high-dimensional Torus network architecture, comprising multiple unit dimensions arranged sequentially from low to high dimensions; wherein, the multiple unit dimensions include k n There are 1 computational unit, k n The node coordinates of the computing units are k0, k1, ..., k n-1 ;k n The computing units are arranged according to 0, 1, ..., k i -1 are connected sequentially to form a closed loop; k n Let i be a positive integer greater than or equal to 2, where i represents the number of dimensions, and 0 ≤ i ≤ n-1.
[0011] The computing unit includes multiple demultiplexers, multiple multiplexers, multiple routers, and multiple CPUs; wherein, one demultiplexer corresponds to one multiplexer, one multiplexer corresponds to one router, one router corresponds to multiple CPUs, the demultiplexers, multiplexers, and routers are connected in sequence, the routers are connected to multiple CPUs, and the demultiplexers are connected to all the multiplexers in the computing unit;
[0012] When performing routing, the multi-unit dimension refers to the current node coordinates c of the transmitted data packets.i With the target node coordinates d i When they are not equal, the corresponding values are i = 0 to n-1:
[0013] If d i -c i >k i / 2 or -k i / 2≤d i -c i If <0, then select the next computational unit as the routing node in the negative direction of the i-th dimension;
[0014] If 0 <d i -c i <k i / 2 or d i -c i <-k i If the value is 2, then the next computational unit is selected as the routing node along the positive direction of the i-th dimension;
[0015] Wherein, the next computing unit selects a routing node while meeting the preset security requirements set by the flow control technology; when the flow control technology is a flow control technology with independent management of multi-channel buffers, the preset security requirements are:
[0016] If one of the routers of the next computing unit includes f idle virtual channels and s secure virtual channels, then: if f>1, or f=1 and s≥1, the current data packet is transmitted to the next-hop router; if f=1 and s=0 and the p*-cube routing algorithm is followed from the current computing unit to the next computing unit, then the next computing unit acts as a routing node.
[0017] When the flow control technology is a flow control technology with unified management of multi-channel buffers, the preset security requirement is:
[0018] If one of the input ports of the multiple routers in the next hop has at least two idle buffers, or if one of the input ports of the multiple routers in the next hop has at least one idle buffer and at least one secure packet, or if one of the multiple input ports has at least one idle buffer, and the hop steps of the p*-cube routing algorithm are followed, the packet is pushed to the next hop.
[0019] The present invention also provides the following solutions:
[0020] An adaptive routing method is provided, wherein the adaptive routing method is applied to the aforementioned multi-channel high-dimensional Torus network architecture; the adaptive routing method includes:
[0021] Step 1: Obtain the coordinates of the current node and the target node; In a multi-channel n-dimensional Torus network architecture, when routing data packets, the coordinates of the current node are C(c0, c1, ..., c2). i , ..., c n-1 The destination node is one of multiple next-hop routers, and its coordinates are D(d0, d1, ..., dn). i , ..., d n-1 );
[0022] Step 2: Determine the relationship between the current node coordinates and the target node coordinates; the relationship includes the current node coordinates and the target node coordinates being equal, adjacent, or not equal; when the relationship is that the current node coordinates and the target node coordinates are not equal, proceed to Step 3;
[0023] Step 3: From dimension i = 0 to dimension i = n-1, determine the number of computation nodes in dimension i; the cases include dimension i having 3 computation nodes, dimension i having 4 computation nodes, dimension i having more than 4 computation nodes, and i = n; when dimension i has 3 computation nodes, proceed to step 4; when dimension i has 4 computation nodes, proceed to step 5; when dimension i has more than 4 computation nodes, proceed to step 6; when i = n, proceed to step 7.
[0024] Step 4: Determine the set of optional output channels for the data packet based on the difference between the coordinates of the current node and the coordinates of the target node; when d i -c i <0 and |d i -c i When |=1, CH=CH∪{ch i -};CH is the set of optional output channels for data packets, initially set to an empty set Φ; when d i -c i <0 and |d i -c i When |=2, CH=CH∪{ch i +};When d i -c i >0 and |d i -c i When |=1, CH=CH∪{ch i +};When d i -c i >0 and |d i -c i When |=2, CH=CH∪{ch i -}; then return to step three;
[0025] Step 5: Determine the set of optional output channels for the data packet based on the difference between the coordinates of the current node and the coordinates of the target node; when d i -c i <0 and |d i -c i When |≤2, CH=CH∪{ch i -};When d i -c i <0 and |d i -c i When |>2, CH=CH∪{ch i +};When d i -c i >0 and |d i -c i When |≤2, CH=CH∪{ch i +};When d i -c i >0 and |d i -c i When |>2, CH=CH∪{ch i -}; then return to step three;
[0026] Step Six: Determine the set of optional output channels for the data packet based on the difference between the coordinates of the current node and the coordinates of the target node; when d i -c i >k i / 2 or -k i / 2≤d i -c i When < 0, the jump step ch from the current node C along the i-th negative direction. i - Transmit data packets, CH = CH∪{ch i -};When 0 <d i -c i ≤k i / 2 or d i -c i <-k i When / 2, provide the jump step ch of the data packet along the current node C to its i-th positive direction. i +Forward, CH=CH∪{ch i +}; then return to step three;
[0027] Step 7: Adaptively select one channel from the set CH as the final output channel ch.
[0028] According to specific embodiments provided by the present invention, the present invention discloses the following technical effects:
[0029] This invention discloses a multi-channel high-dimensional Torus network architecture and adaptive routing method. By configuring a computing unit comprising multiple demultiplexers, multiple multiple selectors, multiple routers, and multiple CPUs, where each demultiplexer corresponds to one multiple selector, each multiple selector corresponds to one router, and each router corresponds to multiple CPUs, the demultiplexers, multiple selectors, and routers are connected sequentially. Routers are connected to multiple CPUs, and the demultiplexers are connected to all multiple selectors within the computing unit. This constructs a multi-channel high-dimensional Torus network architecture. Compared to existing high-dimensional Torus network architectures where the computing unit consists of only one router connected to one CPU, the multi-channel high-dimensional Torus network architecture constructed in this invention significantly reduces the network diameter (by multiple times), significantly improves network scalability (i.e., system scalability), and achieves a marked improvement in system performance (i.e., network performance). Attached Figure Description
[0030] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0031] Figure 1 This is a schematic diagram of the multi-channel high-dimensional Torus network architecture of the present invention;
[0032] Figure 2 This is a schematic diagram of a multi-channel three-node ring;
[0033] Figure 3 This is a schematic diagram of a multi-channel loop.
[0034] Figure 4 A schematic diagram of a 3x3x3 torus network;
[0035] Figure 5 Performance evaluation diagram for a multi-channel 3x3x3x3x3x3x3x5 torus network;
[0036] Figure 6 This is a graph for evaluating the fault-tolerant routing performance of the system. Detailed Implementation
[0037] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0038] The purpose of this invention is to provide a multi-channel, high-dimensional Torus network architecture and an adaptive routing method, which can significantly reduce the network diameter of the Torus network, greatly improve network scalability, and significantly improve system performance.
[0039] To make the above-mentioned objects, features and advantages of the present invention more apparent and understandable, the present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0040] The multi-channel high-dimensional Torus network architecture of this invention is as follows: Figure 1 As shown, Figure 1 This diagram illustrates the structure of a multi-channel, high-dimensional Torus network architecture where the computing unit (computing node) 101 includes four demultiplexers 105, four multiplexers 106, and four routers 102. The CPU is not present in this architecture. Figure 1 As shown in the figure, Figure 1 In the diagram, 103 represents the X channel and 104 represents the Y channel. The multi-channel high-dimensional Torus network architecture of this invention is a 3D Torus network. Due to page limitations, this multi-channel high-dimensional Torus network architecture can only be shown as a 2D diagram (e.g., ...). Figure 1 The diagram shows the 4-channel 5x32D torus network structure of this invention.
[0041] like Figure 1 As shown, the multi-channel high-dimensional Torus network architecture of this invention includes multiple unit dimensions arranged sequentially from low to high dimensions; wherein, the multiple unit dimensions include k n 101 computing units, k n The node coordinates of each computing unit 101 are k0, k1, ..., k n-1 ;k n Each computing unit 101 is configured according to 0, 1, ..., k. i -1 are connected sequentially to form a closed loop; k n is a positive integer greater than or equal to 2, where i represents the number of dimensions, and 0 ≤ i ≤ n-1.
[0042] The computing unit 101 includes multiple demultiplexers 105, multiple multiplexers 106, multiple routers 102, and multiple CPUs. Each demultiplexer 105 corresponds to one multiplexer 106, each multiplexer 106 corresponds to one router 102, and each router 102 corresponds to multiple CPUs. The demultiplexers 105, multiplexers 106, and routers 102 are connected sequentially. Each router 102 is connected to multiple CPUs. Each demultiplexer 105 is connected to all the multiplexers 106 in the computing unit 101.
[0043] When performing routing in a multi-cell dimension, the current node coordinates c of the transmitted data packets are... i With the target node coordinates d i When they are not equal, the corresponding values are i = 0 to n-1:
[0044] If d i -c i >k i / 2 or -k i / 2≤d i -c i If <0, then select the next computational unit 101 as the routing node in the negative direction of the i-th dimension.
[0045] If 0 <d i -c i <k i / 2 or d i -c i <-k i If / 2, then the next computational unit 101 is selected as the routing node along the positive direction of the i-th dimension.
[0046] Specifically, when the next computing unit 101 selects a routing node, it meets the preset security requirements set by the flow control technology. When the flow control technology is a multi-channel buffer independently managed flow control technology, the preset security requirements are:
[0047] If one of the multiple routers 102 of the next computing unit 101 includes f idle virtual channels and s secure virtual channels, then: if f>1, or f=1 and s≥1, the current data packet is transmitted to the next-hop router 102; if f=1 and s=0 and the p*-cube routing algorithm is followed from the current computing unit 101 to the next computing unit 101, then the next computing unit 101 acts as a routing node.
[0048] When the flow control technology is a unified flow control technology that manages multiple channel buffers, the preset security requirements are:
[0049] If one of the input ports corresponding to the multiple routers 102 in the next hop contains at least two idle buffers, or if one of the input ports of the multiple routers 102 in the next hop contains at least one idle buffer and at least one secure packet, or if one of the multiple input ports has at least one idle buffer, and the hop steps of the p*-cube routing algorithm are followed, the packet is pushed to the next hop.
[0050] Specifically, the dimension of a multi-channel, high-dimensional Torus network architecture is greater than or equal to 2.
[0051] Based on the aforementioned multi-channel high-dimensional Torus network architecture, this invention also provides an adaptive routing method, which is a fully adaptive routing algorithm. This adaptive routing method is applied to the aforementioned multi-channel high-dimensional Torus network architecture and includes the following steps:
[0052] Step 1: Obtain the coordinates of the current node and the target node; In a multi-channel n-dimensional Torus network architecture, when routing data packets, the coordinates of the current node are C(c0, c1, ..., c2). i , ..., c n-1 The destination node is one of multiple next-hop routers, and its coordinates are D(d0, d1, ..., dn). i , ..., d n-1 ).
[0053] Step 2: Determine the relationship between the current node coordinates and the target node coordinates; the relationship includes the current node coordinates and the target node coordinates being equal, adjacent, and not equal; when the relationship is that the current node coordinates and the target node coordinates are not equal, proceed to Step 3.
[0054] Step 3: From dimension i = 0 to dimension i = n-1, determine the number of computation nodes in dimension i; the cases include 3 computation nodes in dimension i, 4 computation nodes in dimension i, more than 4 computation nodes in dimension i, and i = n; when the number of computation nodes in dimension i is 3, proceed to step 4; when the number of computation nodes in dimension i is 4, proceed to step 5; when the number of computation nodes in dimension i is more than 4, proceed to step 6; when i = n, proceed to step 7.
[0055] Step 4: Determine the set of optional output channels for the data packet based on the difference between the coordinates of the current node and the coordinates of the target node; when d i -c i <0 and |d i -c i When |=1, CH=CH∪{ch i -};CH is the set of optional output channels for data packets, initially set to an empty set Φ; when d i -c i <0 and |d i -c i When |=2, CH=CH∪{ch i +};When d i -c i >0 and |d i -c i When |=1, CH=CH∪{ch i +};When d i -c i>0 and |d i -c i When |=2, CH=CH∪{ch i -}; then return to step three.
[0056] Step 5: Determine the set of optional output channels for the data packet based on the difference between the coordinates of the current node and the coordinates of the target node; when d i -c i <0 and |d i -c i When |≤2, CH=CH∪{ch i -};When d i -c i <0 and |d i -c i When |>2, CH=CH∪{ch i +};When d i -c i >0 and |d i -c i When |≤2, CH=CH∪{ch i +};When d i -c i >0 and |d i -c i When |>2, CH=CH∪{ch i -}; then return to step three.
[0057] Step Six: Determine the set of optional output channels for the data packet based on the difference between the coordinates of the current node and the coordinates of the target node; when d i -c i >k i / 2 or -k i / 2≤d i -c i When < 0, the jump step ch from the current node C along the i-th negative direction. i - Transmit data packets, CH = CH∪{ch i -};When 0 <d i -c i ≤k i / 2 or d i -c i <-k i When / 2, provide the jump step ch of the data packet along the current node C to its i-th positive direction. i +Forward, CH=CH∪{ch i +}; then return to step three.
[0058] Step 7: Adaptively select one channel from the set CH as the final output channel ch.
[0059] Specifically, step seven includes: when the flow control technology is a multi-channel buffer independently managed flow control technology, adaptively selecting one channel from the set CH that meets the flow control conditions returned by the multi-channel buffer independently managed flow control technology as the output channel ch for the final transmitted data packet. Step seven also includes: when the flow control technology is a multi-channel buffer unified managed flow control technology, adaptively selecting one channel from the set CH that meets the flow control conditions returned by the multi-channel buffer unified managed flow control technology as the output channel ch for the final transmitted data packet.
[0060] Specifically, the adaptive routing method also includes:
[0061] Provides the shortest path for data packets to reach the destination node.
[0062] Providing the shortest path for data packets to reach the destination node specifically includes:
[0063] Step S1: Define secure and insecure data packets; when the next hop of a data packet passes through a surrounding channel within a cell dimension, the number of compute nodes placed in the dimension is greater than 4, and the dimension containing the surrounding channel is the lowest dimension in the surrounding channel that the data packet needs to pass through from the current node to the destination node, the data packet is a secure data packet for the node in the next hop; when the data packet no longer needs to pass through any surrounding channel with more than 4 compute nodes placed in any dimension to reach the destination node, and the next hop of the data packet follows the p*-cube routing algorithm, the data packet is a secure data packet for the node in the next hop; otherwise, the data packet is an insecure data packet.
[0064] Step S2: Under virtual pass-through switching technology, the input port of any node router contains two buffers, each buffer storing at least one complete data packet, and the two buffers are not classified; let f represent the number of idle virtual channels in the input port, and s represent the number of secure virtual channel resources in the input port; the state of the buffer includes idle, secure and insecure. An idle virtual channel means that no data packet is stored in the buffer; a secure virtual channel means that the buffer stores secure data packets, or the buffer resource originally stored insecure data packets, and the insecure data packets have requested buffer resources on the next hop node; an insecure virtual channel means that the buffer stores insecure data packets, and the insecure data packets have not yet requested buffer resources on the next hop node.
[0065] Step S3: Based on the buffer state information provided in step S2, assume that the next-hop router node has f free virtual channels and s secure virtual channels, and has the following flow control mechanism: when f>1, the data packet proceeds to the next node; when f=1 and s≥1, the data packet proceeds to the next node; when f=1 and s=0, if the p*-cube method is followed from the current node to the next node, the data packet proceeds to the next node; otherwise, the data packet cannot proceed to the next node.
[0066] At target node d i and the current node c i When the distances differ by only one hop, the p*-cube routing algorithm is used, which includes:
[0067] Set the current node (c0, c1, ..., c) as... i , ..., c n-1 ) and target node (d0, d1, ..., d i , ..., d n-1 The dimensions with different labels are divided into two subsets, U1 and U2, and U1 and U2 are initially set to an empty set Φ; where U1 is the dimension for positive push and U2 is the dimension for negative push.
[0068] For all dimensions i = 0 to i = n-1, when c i ≠d i And the next jump step of the dimension is ch i +, then U1←U1∪{d i Otherwise, the next jump step of the dimension is ch; i -,U2←U2∪{d i}
[0069] From the coordinates of the current node (c0, c1, ..., c... i , ..., c n-1 The coordinates (d0, d1, ..., dn) from the destination node i , ..., d n-1 The data packet first adaptively traverses all dimensions in U2. After all dimensions in U2 have been traversed, the data packet is then adaptively selected from the dimensions in U1 to transmit the data packet.
[0070] The multi-channel high-dimensional Torus network architecture and adaptive routing method provided by this invention effectively reduce the network diameter and improve the network's bandwidth sharing and data transmission efficiency, which is beneficial to improving network performance. The technical solution of this invention's novel multi-channel high-dimensional Torus network architecture and adaptive routing method is illustrated below with a specific embodiment:
[0071] This invention provides a multi-channel Torus network architecture and an adaptive routing method. It is a high-dimensional multi-channel Torus network architecture and a fully adaptive routing method. The high-dimensional multi-channel Torus network architecture of this invention (multi-channel high-dimensional Torus network architecture) consists of multiple routers per node, and each router can connect to multiple CPUs. Although it is a low-order network, it can reduce the network diameter to a very low level.
[0072] The high-dimensional Torus network architecture provided by this invention includes a multi-unit dimension arranged sequentially from low-dimensional to high-dimensional, with each multi-unit dimension i (0≤i≤n-1) configured with k. i Each computing unit (computing node) contains multiple routers, and each router is configured with multiple CPUs. There are multiple physical channels connecting every two adjacent nodes (computing nodes) in the same dimension. When the number of physical channels between two adjacent nodes and the number of CPUs configured in each router are both set to one, the multi-channel high-dimensional Torus network becomes a traditional high-dimensional Torus network.
[0073] The high-dimensional multi-channel Torus network architecture of this invention can be described as follows: A multi-channel high-dimensional Torus network includes: multiple unit dimensions arranged sequentially from low to high dimensions; the i-th dimension of the multi-unit dimension Torus network includes k i There are 1 computational unit, k i The node coordinates of the computational units are k0, k1, ..., k i -1. k i Each computing unit is assigned a value of 0, 1, ..., k. i -1 are connected sequentially to form a closed loop; k i Let be a positive integer greater than or equal to 2, where i represents the dimension number; in multi-unit dimensions, when routing, if the current node coordinates and the target node coordinates of the transmitted data packet are not equal, the corresponding i = 0 to n-1: if d i -c i >k i / 2 or -k i / 2≤d i -c i If <0, then select the next computational unit as the routing node in the negative direction of the i-th dimension; if 0 <d i -c i <k i / 2 or d i -c i <-k i / 2, then the next computational unit is selected as the routing node along the positive direction of the i-th dimension, which improves the efficiency of the routing method in the Torus network and increases the bandwidth sharing. Here, multi-unit dimension means that the i-th dimension contains k iThere are 10 computational units (i = 0, 1, ..., n-1), k i The node coordinates of each computational unit are 0, 1, ..., k. i -1. The number of dimensions in a high-dimensional Torus network architecture is ≥2.
[0074] In a multi-channel, high-dimensional Torus network architecture, the computing unit includes four demultiplexers, four multiplexers, and four routers. Each pair of adjacent computing nodes is connected by four different physical channels. Each node contains four different routers, and each different router within the same node can be configured with two different CPUs. The number of physical channels with the same hop size and the number of CPUs connected to the same router can vary depending on the network configuration. Any output port of each router connects to a demultiplexer, and the output of this demultiplexer can connect to the four routers in the next hop in that direction. Figure 1 The diagram only shows the multi-way decomposer of the node ring from left to right; there is also a decomposer from right to left. Figure 3 The structure in section (b) is similar, consisting of a right-hand unidirectional ring with five computing nodes. Each data packet transmission can have four different routing options for the next hop in the same direction, thus greatly improving routing flexibility and increasing system scalability.
[0075] This invention improves system performance and solves the problems of low efficiency and low bandwidth sharing in existing routing methods for Torus networks. Specifically, this invention also provides the following fully adaptive routing solution. A fully adaptive routing algorithm is proposed for the multi-channel, high-dimensional Torus network architecture of this invention. The adaptive routing method includes:
[0076] For the buffers of multiple input ports in the next hop, a unified planning and management approach can be adopted, or the buffers can be managed independently based on the input ports of each router. The former results in higher performance, while the latter is relatively simpler to control but has lower performance. The two methods are described below:
[0077] Method 1: Implement a fully adaptive routing algorithm by managing each multi-channel buffer separately.
[0078] Step 1: Obtain the coordinates of the current node and the target node.
[0079] Specifically, in a multi-channel n-dimensional Torus network architecture, when routing data packets, the coordinates of the current node are C(c0,c1,...,c...). i ,…,c n-1 The destination node is one of multiple next-hop routers, with coordinates D(d0,d1,…,d). i ,…,dn-1 ).
[0080] Step 2: Determine the coordinates of the current node and the target node.
[0081] If the coordinates C of the current node where the data packet is located are equal to the coordinates D of the destination node, then the data packet has reached the destination node and the routing ends.
[0082] If the coordinates C of the current node of the data packet are not equal to the coordinates D of the destination node, proceed to step three.
[0083] Step 3: From dimension i = 0 to dimension i = n-1, determine dimension i.
[0084] If the number of computation nodes for dimension i is 3, then proceed to step four.
[0085] If the number of computation nodes for dimension i is 4, then proceed to step five.
[0086] If the number of computation nodes in dimension i is greater than 4, proceed to step six.
[0087] If i = n, then proceed to step seven.
[0088] Step 4: Calculate the difference between the current node coordinates and the target node coordinates (this dimension includes 3 calculation nodes).
[0089] If d i -c i <0 and |d i -c i If |=1, then CH=CH∪{ch i -}.
[0090] If d i -c i <0 and |d i -c i If |=2, then CH=CH∪{ch i +}.
[0091] If d i -c i >0 and |d i -c i If |=1, then CH=CH∪{ch i +}.
[0092] If d i -c i >0 and |d i -c i If |=2, then CH=CH∪{ch i -}.
[0093] Where CH is the set of optional output channels for data packets, initially set to an empty set Φ; ch i Indicates the number of channels.
[0094] Return to step three and repeat step three.
[0095] Step 5: Calculate the difference between the current node coordinates and the target node coordinates (the number of calculation nodes for dimension i is 4).
[0096] If d i -c i <0 and |d i -c i If |≤2, then CH=CH∪{ch i -}.
[0097] If d i -c i <0 and |d i -c i |>2, then CH=CH∪{ch i +}.
[0098] If d i -c i >0 and |d i -c i If |≤2, then CH=CH∪{ch i +}.
[0099] If d i -c i >0 and |d i -c i |>2, then CH=CH∪{ch i -}.
[0100] Return to step three and repeat step three.
[0101] Step 6: Calculate the difference between the current node coordinates and the target node coordinates (for calculation nodes in dimension i, the number of nodes is greater than 4).
[0102] If d i -c i >k i / 2 or -k i / 2≤d i -c i <0, from the current point C, the possible jump step ch along the i-th negative direction. i - Transmit data packets (i.e., provide the jump step ch of the data packet along the current point C to its i-th negative direction). i -Forward), CH=CH∪{ch i -}.
[0103] If 0 <d i-c i ≤k i / 2 or d i -c i <-k i / 2, the jump steps ch from the current point C along the i-th positive direction. i +Transmit data packets (i.e., provide the jump step ch of the data packet along the current point C to its i-th positive direction). i +forward), CH=CH∪{ch i +}.
[0104] Return to step three and repeat step three.
[0105] Step 7: p*-cube-route() algorithm for multi-channel high-dimensional Torus networks.
[0106] The different dimensions of the source and target nodes are divided into two subsets, U1 and U2. U1 represents the dimension for forward pushing, and U2 represents the dimension for negative pushing. The p*-cube-route() algorithm adaptively traverses the dimensions in U2 first, and then adaptively traverses the dimensions in U1. For multi-channel high-dimensional Torus networks, as long as there is one idle channel in the next-hop multi-port, the data packet can be pushed forward. The specific description of the p*-cube-route() routing algorithm, which manages the multi-channel buffers respectively, is as follows:
[0107] 7.1: Obtain the coordinates of the current node and the target node.
[0108] Specifically, in a multi-channel n-dimensional Torus network architecture, when routing data packets, the coordinates of the current node are C(c0,c1,...,c...). i ,…,c n-1 The destination node is one of multiple next-hop routers, with coordinates D(d0,d1,…,d). i ,…,d n-1 ).
[0109] 7.2: Divide all dimensions into two subsets U1 and U2, for i = 0 to n-1 dimensions:
[0110] (a) If c i ≠d i And the next jump step in this dimension is ch i +, then U1←U1∪{d i}
[0111] (b) Otherwise, if (a) is not true, the next jump step in this dimension is ch. i -,U2←U2∪{d i}
[0112] 7.3: If U2 is not empty, adaptively select a dimension a from U2 to transmit the data packet, U2←U2-{a}; repeat the above operation until U2 is empty; if U2 is empty initially, skip directly to step four.
[0113] 7.4: If U1 is not empty, adaptively select a dimension b from U1 to transmit the data packet, U1←U1-{b}; repeat the above operation until U1 is empty.
[0114] Step 8: Determine the security of the data packet.
[0115] The p*-cube() routing algorithm from step seven is invoked to determine whether the data packet is a safe data packet. If the hop follows the p*-cube() routing algorithm, the data packet is a safe data packet in the next hop; otherwise, it is an insecure data packet.
[0116] Step 9: Randomly select one channel from the CH obtained in the above steps to transmit the data packet.
[0117] The selected channel must meet the flow control conditions for independent management of multi-channel buffers (flow-control()).
[0118] The flow-control() technique, which manages multiple buffers independently, is described below:
[0119] 9.1: The number of idle buffers f and the number of secure packets s in multiple input ports of the next hop:
[0120] (a) f is a 2n-tuple (f0+, f0-, f1+, f1-, ..., f i +,f i -,…,f n-1 +,f n-1 -), where f i +、f i - These represent the number of idle buffers in the l input ports of the adjacent nodes of the current node C in the i-th positive and negative directions, respectively. i +:(f i,0 +,f i,1 +,…,f i,l-1 +) and f i- :(f i,0 +,f i,1 +,…,f i,l-1 +).
[0121] (b) The number of secure packets s is a 2n-tuple: (s0+, s0-, s1+, s1-, ..., s i +,s i -,…,sn-1 +,s n-1 -), s i +、s i - represents the number of security buffer channels s in the input ports of the adjacent nodes of the current node C in the i-th positive and negative directions, respectively. i +:(s i,0 +,s i,1 +,…,s i,l-1 +) and s i -:(s i,0 +,s i,1 +,…,s i,l-1 +).
[0122] Among them, c i d represents the coordinates of the current node containing the message in the i-th dimension. i This represents the coordinates of the destination node in the i-th dimension.
[0123] 9.2: Determine the specific router and push the data packet in that direction.
[0124] A data packet can be pushed to the router in that direction if any of the following conditions are met:
[0125] (a) If one of the input ports of the l routers corresponding to the shortest path in this direction has at least two idle buffers, return true.
[0126] (b) If the input ports of the l routers that are the next hops of the shortest path in this direction contain at least one idle buffer and at least one secure packet, return true.
[0127] (c) If one of the l input ports in this direction has at least one idle buffer, and this direction follows the hops of the baseline routing algorithm p*-cube routing algorithm, return true.
[0128] (d) In other cases, if the data packet cannot be advanced to the next hop node, return false.
[0129] In summary, the `flow-control()` function provides four different conditions and judgments for its flow control function, which can be simply described as follows: 1. One of the input ports of the multiple routers corresponding to the next hop in this direction contains two idle buffers; 2. One of the input ports of the multiple routers corresponding to the next hop in this direction contains at least one idle buffer and at least one secure packet; 3. One of the multiple input ports in this direction has at least one idle buffer, and this direction follows the hop steps of the p*-cube routing algorithm. When any one of the above three conditions is met, the packet can be pushed to the next hop. The p*-cube routing algorithm is a partially adaptive routing algorithm. This algorithm only needs to complete a loop with more than four computing nodes to smoothly use the flow control function for fully adaptive routing.
[0130] The following is a description of the second method (the main difference between methods one and two lies in the flow control conditions in step nine).
[0131] Method 2: Implement unified planning and management of the buffer.
[0132] In the fully adaptive shortest path routing algorithm for multi-channel, high-dimensional Torus network architectures, the current node and the target point are at least two hops apart. The buffers of multiple router input ports for the next hop are uniformly planned and managed, making flow control conditions relatively easy to satisfy. Both Method 2 and Method 1's adaptive routing methods include steps one through nine. Some steps are the same in Method 2 and Method 1; the following only describes the steps in Method 2 that differ from Method 1.
[0133] Step two of method two is to determine the coordinates of the current node and the coordinates of the target node.
[0134] If the coordinates C of the current node where the data packet is located are equal to the coordinates D of the destination node, then the data packet has reached the destination node and the routing ends.
[0135] If the current node C of the data packet is adjacent to the destination node D, the flow control conditions uniformly consider the flow control status of multiple router input ports of the next-hop node to transmit the data packet.
[0136] If the current node coordinates C of the data packet are not equal to the destination node coordinates D, and the difference is at least two hops, then proceed to step three.
[0137] Step seven of Method 2 is: the p*-cube-route() algorithm for multi-channel high-dimensional Torus networks.
[0138] 7.1: Set the current node (c0, c1, ..., c...) i ,…,cn-1 ) and target node (d0, d1, ..., d i ,…,d n-1 The dimensions with different labels are divided into two subsets, U1 and U2, and initially U1 and U2 are set as empty sets Φ.
[0139] 7.2: for i = 0 to n-1:
[0140] (a) If c i ≠d i And the next jump step in this dimension is ch i +, then U1←U1∪{d i}
[0141] (b) Otherwise, if (a) is not true, the next jump step in this dimension is ch. i -,U2←U2∪{d i};
[0142] 7.3: From the coordinates C(c0,c1,…,c) of the current node n-1 The coordinates from the destination node D(d0,d1,…,d) are... n-1 The data packets adaptively traverse all dimensions of U2, meaning that if the input port of the next hop in that direction has an idle buffer, the data packet can be pushed to the input port of the next hop router.
[0143] 7.4: After all dimensions of U2 have been traversed, the data packet is adaptively selected from the dimensions of U1 for transmission. That is, as long as there is an idle buffer at the next-hop input port in this direction, the data packet can be pushed to the input port of the next-hop router.
[0144] Step nine of method two is as follows: randomly select a channel from the channels obtained in steps one to eight, and the input port of the next hop of the channel satisfies the following flow control conditions, and transmit the data packet along that direction.
[0145] The selected channel must meet the flow control conditions of the multi-channel buffer unified management flow-control1(). That is, it adaptively selects one channel from the set CH that meets the flow control conditions returned by flow-control1() as the final channel for transmitting data packets. The multi-channel buffer unified management flow-control1() flow control technology is explained as follows:
[0146] 9.1: The number of idle buffers f and the number of secure packets s in multiple input ports of the next hop:
[0147] (a) f is a 2n-tuple (f0+, f0-, f1+, f1-, ..., f i +,fi -,…,f n-1 +,f n-1 -), where f i +、f i - These represent the number of idle buffers in the l input ports of the adjacent nodes of the current node C in the i-th positive and negative directions, respectively. i +:(f i,0 +,f i,1 +,…,f i,l-1 +) and f i- :(f i,0 +,f i,1 +,…,f i,l-1 +).
[0148] (b) The number of secure packets s is a 2n-tuple: (s0+, s0-, s1+, s1-, ..., s i +,s i -,…,s n-1 +,s n-1 -), s i +、s i - represents the number of security buffer channels s in the input ports of the adjacent nodes of the current node C in the i-th positive and negative directions, respectively. i +:(s i,0 +,s i,1 +,…,s i,l-1 +) and s i -:(s i,0 +,s i,1 +,…,s i,l-1 +).
[0149] Among them, c i d represents the coordinates of the current node containing the message in the i-th dimension. i This represents the coordinates of the destination node in the i-th dimension.
[0150] 9.2: Determine the specific router and push the data packet in that direction. The data packet can be pushed in that direction to determine the specific router if any of the following conditions are met:
[0151] (a) Return true if the input ports of the l routers corresponding to the shortest path in this direction contain at least two idle buffers.
[0152] (b) If the input ports of the l routers in the shortest path in this direction cumulatively satisfy the condition that there is at least one idle buffer and at least one secure packet, return true.
[0153] (c) If the l input ports in this direction have at least one idle buffer and this direction follows the jump steps of the baseline routing algorithm p*-cube routing algorithm, return true.
[0154] (d) In other cases, if the data packet cannot be advanced to the next hop node, return false.
[0155] For the set CH obtained by the above routing algorithm, the buffers of multiple input ports of the next hop are uniformly planned and managed in all directions. Unlike the route() algorithm, which requires multiple input ports of the same direction in each next hop to independently meet the flow control conditions, the buffers of multiple input ports of the same direction in the next hop are uniformly managed, so the flow control conditions are much more relaxed.
[0156] Based on the aforementioned adaptive routing algorithms route() and route1(), the process of ensuring that data packets reach their destination node along the shortest path includes:
[0157] (1) Define secure and insecure data packets. A data packet is considered secure if it meets one of the following conditions:
[0158] If the next hop of a data packet is through a loop channel, the number of compute nodes placed in that dimension is greater than 4, and the dimension of the loop channel is the lowest dimension in the loop channel that the data packet needs to pass through from the current point to the destination node, then the data packet is a safe data packet for the node in the next hop.
[0159] If a data packet does not need to pass through any dimension to reach its destination node from the current node, and the dimension contains a surrounding channel with more than 4 compute nodes, and the next hop of the data packet follows the p*-cube method, then the data packet is a safe data packet for the node in the next hop.
[0160] Otherwise, the data packet is an insecure data packet.
[0161] (2) Under the Virtual Pass-Through (VCT) switching technology, the input port of any node router contains two buffers, each buffer stores at least one complete data packet, and the two buffers are not classified.
[0162] Let f represent the number of idle virtual channels in the input port, and s represent the number of secure virtual channel resources in the input port. The state of the buffer includes idle, secure, and insecure. An idle virtual channel means that no data packets are stored in the buffer. A secure virtual channel means that the buffer stores secure data packets, or the buffer resource originally stored insecure data packets, and the insecure data packets have requested buffer resources on the next hop node, so the data packets have changed from insecure to secure. Therefore, the state definition of this data packet is based on dynamic data packet state information. An insecure virtual channel means that the buffer stores insecure data packets, and the insecure data packets have not yet reserved buffer resources on the next hop node.
[0163] In contrast, the p*-cube-route1() routing algorithm for a single-channel high-dimensional Torus network is described as follows: The different dimensions of the source and destination nodes are divided into two subsets, U1 and U2. U1 represents the forward-pushing dimension, and U2 represents the negative-pushing dimension. The p*-cube routing algorithm adaptively traverses the dimensions in U2 first, and then adaptively traverses the dimensions in U1. For multi-channel high-dimensional Torus networks, as long as there is an idle channel in the next-hop port, the data packet can be pushed forward. For multi-channel high-dimensional Torus networks, the probability of p*-cube-route() executing is much higher. That is to say, multi-channel high-dimensional Torus networks can provide far more route options.
[0164] In a multi-channel, high-dimensional Torus network, the p*-cube routing algorithm can be directly applied after routing data packets through a loop containing at least four compute nodes, without needing to traverse loops in all dimensions. The routing algorithm consists of two phases. Phase 1: The data packet first travels along the lowest dimension containing at least five compute nodes and requiring loop traversal, with a maximum of one hop. This operation is repeated until all loops in such dimensions are traversed. The routing then enters Phase 2, directly applying the p*-cube routing algorithm as the basic routing algorithm and employing new flow control techniques to achieve fully adaptive, deadlock-free routing. Phase 1 does not necessarily involve transmitting data packets along a unique path; fully adaptive routing can also be achieved in this phase, but with relatively higher flow control requirements. For dimensions containing five compute nodes, Phase 1 has a maximum of one hop. The multi-channel, high-dimensional Torus network used in this invention employs at most one such dimension, meaning the maximum number of hops in Phase 1 is one. Therefore, the routing algorithm quickly enters Phase 2. For example, in a 4-channel, 8-dimensional Torus network (3x3x3x3x3x3x3x5), each router is configured with 2 CPUs, which can integrate 87,480 CPUs, and the network diameter is 9.
[0165] Figure 2 as well as Figure 3The diagram shows a schematic of a 3-node and 5-node ring network architecture provided by an embodiment of the present invention. Figure 2 and Figure 3 Each dashed box represents a computing node, and 107 represents a terminal. Figure 2 Part (a) represents a 3-node right-hand loop. Figure 2 Part (b) represents a 3-node left-direction loop. Figure 3 Part (a) represents a 5-node left-hand loop. Figure 3 Part (b) represents a 5-node right-hand loop. The router fans directly out to a 4-output demultiplexer, which in turn fans out to four different multiplexers. The output of each multiplexer directly drives the next compute node. For example... Figure 2 As shown, each node is configured with 4 routers, and each router is configured with 2 CPUs. These two numbers can be varied depending on the specific situation. Figure 3 The high-dimensional Torus network architecture of this invention is presented as a 5-node ring. Figure 4 A 3x3x3 Torus network is shown.
[0166] In the multi-channel high-dimensional Torus network of this invention, i represents the number of dimensions, each computing node contains l (l≥1) routers, and each router is configured with l' (l'≥1) CPUs; there are l connections between any two adjacent computing nodes in the i-th dimension. i The network consists of multiple physical channels, and the number of physical channels connecting adjacent nodes in different dimensions and directions can vary. In the multi-channel high-dimensional Torus network of this invention, for any direction, there are multiple different physical channels connecting every two adjacent nodes. Each node contains multiple different routers, and the number of routers on the same node is the same as the number of physical channels between two adjacent nodes. Each different router on the same node is configured with multiple different CPUs. The number of physical channels with the same hop count and the number of CPUs connected to the same router can vary depending on the network configuration. Any output port of each router is connected to a demultiplexer and a multiplexer. The output of the demultiplexer is connected to multiple routers in the next hop in that direction via a multiplexer. Specifically, in the multi-channel high-dimensional Torus network, the number of computing nodes in each dimension can be mainly set to 3, 5, or 4; such a setting is beneficial for the execution of routing algorithms.
[0167] In this embodiment of the invention, the calculation unit is arranged in the order of calculation unit 0 → calculation unit 1 → ... → calculation unit k. n-1 sequential connection. As a specific implementation, the multi-channel high-dimensional Torus network architecture of this invention includes: N three-unit dimensions arranged sequentially from low to high dimension, where N is a positive integer greater than or equal to 0; each three-unit dimension includes three computational units, with node coordinates of 0, 1, and 2 respectively; the three computational units are connected sequentially from 0 to 1 to 2 to form a closed loop. This invention prefers to arrange 3 computational units in one dimension rather than 2, mainly because the former can integrate more computational units. Similarly, this invention prefers to set 5 units in one dimension rather than 4 units, also because it requires at most two hops, but the former integrates more computational units. The above discussion does not consider encapsulation factors. In fact, setting four computational units in the same dimension does not require traversing the entire loop to transmit data packets based on flow control technology, which is very important for the implementation of routing algorithms.
[0168] In multi-channel, high-dimensional Torus network architectures, routing is required during data packet transmission, and equal bandwidth is a crucial parameter for evaluating network performance. The equal bandwidth of the same network will differ depending on the number of computing nodes deployed along different dimensions; specifically, transmission along dimensions with more computing nodes results in a smaller equal bandwidth, while transmission evenly distributed along dimensions with fewer computing nodes results in a larger equal bandwidth.
[0169] Routing methods determine the path that each message or packet takes in the network, ensuring that the packet is correctly delivered to its destination node. Typically, messages or packets always provide the same path between any pair of nodes, regardless of network state. This method is simple, but the path is usually not optimal. For a 3-unit dimension, to improve bandwidth distribution, the shortest path should be selected for packet transmission. Specifically, in a 3-unit dimension, when performing routing, the current node coordinates c of the transmitted packet are considered. i With the target node coordinates d i If the data packets are not equal, meaning the data packets have not been transmitted to the target node, the following situations may occur:
[0170] If d i -c i =-1, then data packets are transmitted along the negative direction of that dimension, that is, the next computing unit is selected as the routing node in the opposite direction of the first direction.
[0171] Where, when d i -c i The scenario with =1 includes two combinations: combination (1)d i =0 and c i =1, or combination (2)d i =1 and c i =2. For combination (1)d i =0 and ci When = 1, the data packet transmission direction is 1→0, and the shortest path should be the negative direction of the first direction. The next calculation unit is selected as the routing node. For combination (2)d i =1 and c i =2, at this time the data packet transmission direction is 2→1, the shortest path should be the transmission in the opposite direction of the first direction, and the next calculation unit is selected as the routing node.
[0172] d i -c i The scenario with 2 includes a combination, namely combination (3)d i =2 and c i =0, at this time the data packet transmission direction is 0→2, the shortest path should be the transmission in the negative direction of the first direction, and the next calculation unit is selected as the routing node.
[0173] If d i -c i =1 or d i -c i If d = -2, then the next computational unit is selected as the routing node in the first direction. Specifically, d i -c i The scenario with =1 includes two combinations (4)d i =1 and c i =0, or combination (5)d i =2 and c i =1; Combination (4)d i =1 and c i When =0, the transmission direction of the data packet is 0→1. The shortest path should be to transmit in the positive direction of this dimension. Select the next calculation unit as the routing node. Combination (5) is similar to combination (4). The data packet is transmitted along the positive direction of this dimension.
[0174] d i -c i =-2 scenarios include combination (6)d i =0 and c i=2, at this time the data packet transmission direction is 2→0, and the shortest path for data packet transmission should be in the positive direction of this dimension. As a specific implementation, the high-dimensional Torus network architecture may include a 3-unit dimension, with 3 nodes in each unit, and each computing unit adopts a fully adaptive routing method when making routing selection; based on the shortest path principle, the optimal path is selected, considering the number of computing units in the current network, and by changing the transmission direction, the shortest path is selected. The high-dimensional Torus network designed in this invention can effectively improve the network's equal-width bandwidth and data transmission efficiency, which is beneficial to improving network performance. The high-dimensional Torus network architecture and adaptive routing method provided by the embodiments of this invention can improve system performance and solve the shortcomings of existing routing methods in Torus networks, such as low efficiency, low equal-width bandwidth, and high diameter.
[0175] When performing routing in a 4-unit dimension, the following adaptive routing method is executed: if the current node coordinates c of the transmitted data packet... i With the target node coordinates d i If they are not equal, then:
[0176] (1) If d i -c i <0 and |d i -c i |≤2 or d i -c i If d = 3, then the next computational unit is selected to transmit the data packet in the negative direction of that dimension. Where d i -c i <0 and |d i -c i In the case where |≤2, i.e. along the first direction, c i In d i The possible combinations ahead include: d i =0 and c i =1; d i =0 and c i =2; d i =1 and c i =2; d i =1 and c i =3; d i =2 and c i =3; d i =2 and c i =4; d i =3 and c i =4; in the above cases, c i Return to d via the original route. i A point is a node that selects the next computational unit as a routing node in the negative direction of that dimension. i -c iThe case where d = 3, including d i =3 and c i =0, in this case, the next calculation unit should be selected as the routing node in the opposite direction of the first direction.
[0177] (2) If d i -c i If d = 1 or 2, then the positive direction of that dimension is selected as the next computational unit and the routing node. i -c i =1 or 2, meaning data packets are transmitted along the positive direction of this dimension; d i -c i When = 1, the possible combinations include: d i =1 and c i =0,d i =2 and c i =1,d i =3 and c i =2; d i -c i When = 2, the possible combinations include: d i =2 and c i =0,d i =3 and c i =1, in the above cases, the data packet is transmitted to the next calculation unit in the positive direction.
[0178] In the above embodiments of the present invention, when performing routing selection in a multi-cell dimension, the following fully adaptive routing method is executed: the current node coordinates c of the transmitted data packet. i With the target node coordinates d i When they are not equal, the corresponding values are i = 0 to n-1:
[0179] (1) If d i -c i >k i / 2 or -k i / 2≤d i -c i If d < 0, then the next computational unit is selected as the routing node in the negative direction of the i-th dimension. Where d i -c i >k i When / 2, that is, along the positive direction, d i In c i The number of nodes in front of it, and the distance between them in the positive direction, is greater than k. i If the distance is 2, then the number of nodes between the two in the opposite direction is less than k. i Since the value is 2, transmitting data packets in the opposite direction is the shortest path; -k i / 2≤d i -c iWhen <0, the data packet should be transmitted in the negative direction of that direction.
[0180] (2) If 0 <d i -c i <k i / 2 or d i -c i <-k i If d = 2, then the next computational unit is selected as the routing node along the positive direction of the i-th dimension. Where d i -c i <k i When / 2, that is, along the positive direction, d i In c i The number of nodes in front of it, and the distance between them in the positive direction, is less than k. i If the distance is 2, then the number of nodes between the two in the opposite direction is greater than k. i Since the value is 2, transmitting data packets in the forward direction is the shortest path; d i -c i <-k i When the length is 2, the data packet should be transmitted in the negative direction of that dimension.
[0181] Specifically, the next computational unit selects a routing node while meeting the buffer requirements set by flow control technology. The preset security requirements are as follows:
[0182] If the next node includes f idle virtual channels and s secure virtual channels, then: if f > 1, or f = 1 and s ≥ 1, or f = 1 and s = 0 and the p*-cube routing algorithm is followed from the current computing unit to the next computing node, then the data packet can be transmitted to the next hop. Regarding the preset security requirements, secure data packets and insecure data packets are first defined. A data packet is considered secure if it meets one of the following conditions:
[0183] (1) If the next hop of the data packet is through a loop channel inside the cell dimension, the number of computational cells placed in that dimension is greater than 4, and the dimension where the loop channel is located is the lowest dimension in the loop channel that the data packet needs to pass through from the current node to the destination node, then the data packet is a safe data packet for the node in the next hop.
[0184] (2) If a data packet no longer needs to go through a loop channel with more than 4 dimensions to reach the destination node from the current node, and the next hop of the data packet follows a deadlock-free adaptive routing method in a high-dimensional torus network, such as the p*-cube routing method, then the data packet is a safe data packet for the node in the next hop.
[0185] If a data packet does not meet either of the above two conditions, then the data packet is an insecure data packet. Furthermore, regarding virtual channels, under Virtual-CutThrough (VCT) switching technology, the input port of any node router contains two virtual channels. Each virtual channel contains a buffer, and each buffer can completely store one data packet. The two buffers are not classified. Let f represent the number of idle virtual channels in the input port, and s represent the number of secure virtual channel resources in the input port. Buffers can be divided into three states: idle, secure, and insecure. An idle virtual channel indicates that the buffer does not store any data packets. If the number of idle virtual channels is greater than 1, then the next computational unit can act as a routing node.
[0186] Specifically, a secure virtual channel indicates that the buffer stores secure data packets, or that the buffer resource originally stored insecure data packets, but the insecure data packets have already requested buffer resources on the next-hop node; an insecure virtual channel indicates that the buffer stores insecure data packets, and the insecure data packets have not yet requested buffer resources on the next-hop node. If the number of idle virtual channels is equal to 1 and the number of secure virtual channels s≥1, then the next computational unit can act as a routing node.
[0187] Regarding the p*-cube routing method, it is a partially adaptive row routing method for hypercube networks, where the destination point (d0, d1, ..., d2) is a target point (d0, d1, ..., d2). n-1 ) and the current point (c0,c1,...,c n-1 When the distances between the two hops are only one hop apart, the p*-cube routing method can be used.
[0188] Divide the dimensions with different labels between the current node and the target node into two subsets, U1 and U2, initially setting U1 and U2 as empty sets Φ; for all dimensions i = 0 to i = n-1, if c i ≠d i And the next jump step in this dimension is ch i If +, then U1←U1∪{i}; otherwise, the next jump step in this dimension is ch. i -,U2←U2∪{d i}
[0189] The p*-cube routing method is as follows: from (c0, c1, ..., c...) n-1 (d0, d1, ..., d) n-1 The data packets first adaptively traverse all dimensions of U2. After all dimensions of U2 have been traversed, the data packets are adaptively selected from the dimensions of U1 for transmission. A fully adaptive routing algorithm for high-dimensional Torus networks is constructed by using the p*-cube routing algorithm as the baseline routing strategy and flow control technology based on dynamic data packet state information.
[0190] For the multi-channel high-dimensional Torus network proposed in this invention, each computing node contains four different routers, and each router can be configured with more than one CPU. Data packets at any router input can be transmitted to the inputs of the four next-hop routers. At any given time, each node router can only receive a maximum of one data packet. Flow control logic feeds back flow control information to the input ports of the four routers of the next computing node.
[0191] Two different flow control management methods are adopted: (1) independent management and (2) unified management. When the next computing unit selects a routing node, it can transmit the data packet to the next hop in that direction if the preset security requirements of the flow control technology are met. The first independent management method is relatively simple and the preset security requirements are: if one of the four routers of the next computing unit includes f idle buffers and s secure buffers, then: if f>1, or f=1 and s≥1, the current data packet can be transmitted to the router of the next hop; if f=1 and s=0 and the p*-cube method is followed from the current computing unit to the next computing unit, then the next computing unit is the routing node.
[0192] For the second unified flow control management method, the buffers of all four routers in the next hop are managed uniformly. This flow control technology can be simply described as follows: If one of the input ports corresponding to the multiple routers in the next hop of this direction contains at least two idle buffers, or if one of the input ports of the multiple routers in the next hop of this direction contains at least one idle buffer and at least one secure data packet, or if one of the multiple input ports in this direction contains at least one idle buffer, and this direction follows the hop steps of the p*-cube routing algorithm, then the data packet can be pushed to the next hop when one of the above three conditions is met. The p*-cube routing algorithm is a partially adaptive routing algorithm; it can be used directly after traversing a loop containing at least four computational nodes.
[0193] In the above embodiments of the present invention, the high-dimensional Torus network architecture employs an adaptive routing method for each computing unit during route selection. Based on the shortest path principle, it selects the optimal path, considering the number of computing units in the current network. By changing the transmission direction, it selects the shortest path. The designed high-dimensional Torus network can effectively improve the network's equal-width bandwidth and data transmission efficiency, thus contributing to improved network performance. The embodiments of the present invention address the problems of low efficiency and low equal-width bandwidth commonly found in existing routing methods in Torus networks.
[0194] Figure 5Performance evaluation of a multi-channel 8-dimensional torus network, specifically a 3x3x3x3x3x3x3x5 torus network, is presented. Figure 5 Parts (a) and (b) provide a performance evaluation of the network in uniform communication mode (including average latency and receive rate). Figure 5 Parts (c) and (d) provide performance evaluations (including average delay and receive rate) under transpose communication mode. Figure 5 Parts (e) and (f) provide performance evaluations (including average latency and receive rate) in hotspot communication mode. Figure 5 In the code, `p*-cube-2buffer-8injection` indicates that each input port is configured with two buffers, each buffer can store a complete data packet, and each router has two insertion ports, i.e., two CPUs; `p*-cube-3buffer-8injection` indicates that `c` uses a fully adaptive, deadlock-free routing algorithm with `p*-cube` as the baseline, each input port is configured with three buffers, each buffer can store a complete data packet, and each router has two CPUs, i.e., two insertion channels; `bubble-8injection` indicates that each router input port is configured with three buffers, and each router has two insertion channels, i.e., a bubble routing algorithm with two CPUs; `p*-cube-2buffer-8injection-sharedbuffer` indicates a new fully adaptive routing algorithm with unified buffer management, each input port is configured with two buffers; and `p*-cube-3buffer-8injection-sharedbuffer` indicates a new fully adaptive routing algorithm with unified buffer management, each input port is configured with three buffers.
[0195] For uniform communication mode, Figure 5 This paper presents fully adaptive routing algorithms based on p*-cube (using 2 and 3 buffers) as a baseline, an algorithm for unified management of the input buffers of 4 routers (i.e., each router has 2 or 3 buffers), and a bubble flow control algorithm. Experiments show that the unified buffer management algorithm significantly outperforms the other algorithms. The routing algorithm for managing buffers separately on the same node only slightly underperforms the bubble flow control technique when near saturation, especially when one less buffer is configured. The other two communication modes are similar.
[0196] Figure 6The system's fault-tolerant routing performance is evaluated, specifically the fault-tolerant performance of a 3x3x3x3x3x3x3x5 torus network (100 faulty nodes and 100 faulty connections). Figure 6 Parts (a) and (b) provide a performance evaluation of the network in uniform communication mode (including average latency and receive rate). Figure 6 Parts (c) and (d) provide performance evaluations (including average latency and receive rate) under transpose communication mode. Figure 6 Sections (e) and (f) provide performance evaluations (including average latency and receive rate) in hotspot communication mode. The system contains 100 faulty nodes and 100 faulty links. There is almost no difference between the fault-tolerant and non-fault-tolerant versions. Both are far superior to bubbling flow control. Figure 6 In the code, "Bubble" represents a bubble; "bubble-8injection" indicates the performance of the bubble sort algorithm when each input port is configured with three buffers and each router has two CPUs; "p*-cube-2buffer" indicates the performance of the new fully adaptive routing algorithm with two buffers per input port in a fault-free environment; "p*-cube-2buffer-fault-tolerant" indicates the performance evaluation of the new fully adaptive fault-tolerant routing algorithm with two buffers per input port; "p*-cube-3buffer" indicates the performance of the new fully adaptive routing algorithm with three buffers per input port in a fault-free environment; and "p*-cube-3buffer-fault-tolerant" indicates the performance evaluation of the new fully adaptive fault-tolerant routing algorithm with three buffers per input port.
[0197] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. The same or similar parts between the various embodiments can be referred to each other.
[0198] This document uses specific examples to illustrate the principles and implementation methods of the present invention. The descriptions of the above embodiments are only for the purpose of helping to understand the method and core ideas of the present invention. Furthermore, those skilled in the art will recognize that, based on the ideas of the present invention, there will be changes in the specific implementation methods and application scope. Therefore, the content of this specification should not be construed as a limitation of the present invention.
Claims
1. A multi-channel, high-dimensional Torus network architecture, characterized in that, The multi-channel high-dimensional Torus network architecture includes multiple unit dimensions arranged sequentially from low to high dimensions; wherein, the multiple unit dimensions include k n There are 1 computational unit, k n The node coordinates of the computing units are k0, k1, ..., k n-1 ;k n The computing units are arranged according to 0, 1, ..., k i -1 are sequentially connected to form a closed loop; k n Let i be a positive integer greater than or equal to 2, where i represents the number of dimensions, and 0 ≤ i ≤ n-1. The computing unit includes multiple demultiplexers, multiple multiplexers, multiple routers, and multiple CPUs; wherein, one demultiplexer corresponds to one multiplexer, one multiplexer corresponds to one router, and one router corresponds to multiple CPUs; the demultiplexers, multiplexers, and routers are connected sequentially; the routers are connected to multiple CPUs; and each demultiplexer is connected to all the multiplexers in the computing unit; multiple physical channels connect every two adjacent computing units along the same dimension. For any direction, there are multiple different physical channels connecting each two adjacent nodes. Each node contains multiple different routers. The number of routers in the same node is the same as the number of physical channels between two adjacent nodes. Each different router in the same node is configured with multiple different CPUs. When performing routing, the current node coordinates c of the transmitted data packets are considered in the multi-unit dimension. i With the target node coordinates d i When they are not equal, the corresponding values are i = 0 to n-1: If d i -c i >k i / 2 or -k i / 2≤d i -c i If <0, then select the next computational unit as the routing node in the negative direction of the i-th dimension; If 0 <d i -c i <k i / 2 or d i -c i <-k i If the value is 2, then the next computational unit is selected as the routing node along the positive direction of the i-th dimension; Wherein, the next computing unit selects a routing node while meeting the preset security requirements set by the flow control technology; when the flow control technology is a flow control technology with independent management of multi-channel buffers, the preset security requirements are: If one of the routers in the next computing unit includes f idle virtual channels and s secure virtual channels, then: if f > 1, or f = 1 and s ≥ 1, the current data packet is transmitted to the next-hop router; if f = 1 and s = 0 and the transmission from the current computing unit to the next computing unit follows p... - In the cube routing algorithm, the next computing unit serves as the routing node; When the flow control technology is a flow control technology with unified management of multi-channel buffers, the preset security requirement is: If one of the input ports corresponding to the multiple routers in the next hop contains at least two idle buffers, or if one of the input ports of the multiple routers in the next hop contains at least one idle buffer and at least one secure packet, or if one of the multiple input ports has at least one idle buffer and follows the condition p -Cube routing algorithm hops, pushing data packets to the next hop.
2. The multi-channel high-dimensional Torus network architecture according to claim 1, characterized in that, The dimension of the multi-channel high-dimensional Torus network architecture is greater than or equal to 2.
3. An adaptive routing method, characterized in that, The adaptive routing method is applied to the multi-channel high-dimensional Torus network architecture described in any one of claims 1-2; The adaptive routing method includes: Step 1: Obtain the coordinates of the current node and the target node; In a multi-channel n-dimensional Torus network architecture, when routing data packets, the coordinates of the current node are C(c0, c1, ..., c2). i , ..., c n-1 The destination node is one of multiple next-hop routers, and the coordinates of the destination node are D(d0, d1, ..., d2). i , ..., d n-1 ); Step 2: Determine the relationship between the current node coordinates and the target node coordinates; the relationship includes the current node coordinates and the target node coordinates being equal, adjacent, or not equal; when the relationship is that the current node coordinates and the target node coordinates are not equal, proceed to Step 3; Step 3: From dimension i=0 to dimension i=n-1, determine the number of computation nodes in dimension i; the cases include dimension i having 3 computation nodes, dimension i having 4 computation nodes, dimension i having more than 4 computation nodes, and i=n; when the number of computation nodes in dimension i is 3, proceed to step 4; when the number of computation nodes in dimension i is 4, proceed to step 5; when the number of computation nodes in dimension i is more than 4, proceed to step 6; when i=n, proceed to step 7. Step 4: Determine the set of optional output channels for the data packet based on the difference between the coordinates of the current node and the coordinates of the target node; when d i -c i <0 and |d i -c i When |=1, CH=CH∪{ch i -};CH is the set of optional output channels for data packets, initially set to an empty set Φ; when d i -c i <0 and |d i -c i When |=2, CH=CH∪{ch i +};When d i -c i >0 and |d i -c i When |=1, CH=CH∪{ch i +};When d i -c i >0 and |d i -c i When |=2, CH=CH∪{ch i -}; then return to step three; Step 5: Determine the set of optional output channels for the data packet based on the difference between the coordinates of the current node and the coordinates of the target node; when d i -c i <0 and |d i -c i When |≤2, CH=CH∪{ch i -};When d i -c i <0 and |d i -c i When |>2, CH=CH∪{ch i +};When d i -c i >0 and |d i -c i When |≤2, CH=CH∪{ch i +};When d i -c i >0 and |d i -c i When |>2, CH=CH∪{ch i -}; then return to step three; Step Six: Determine the set of optional output channels for the data packet based on the difference between the coordinates of the current node and the coordinates of the target node; when d i -c i >k i / 2 or -k i / 2≤d i -c i When < 0, the jump step ch from the current node C along the i-th negative direction. i - Transmit data packets, CH=CH∪{ch i -};When 0 <d i -c i ≤k i / 2 or d i -c i <-k i When / 2, provide the jump step ch of the data packet along the current node C to its i-th positive direction. i +Forward, CH=CH∪{ch i +}; then return to step three; Step 7: Adaptively select one channel from the set CH as the final output channel ch.
4. The adaptive routing method according to claim 3, characterized in that, The adaptive selection of a channel from the set CH as the final output channel ch specifically includes: When the flow control technology is a multi-channel buffer independently managed flow control technology, one channel that meets the return flow control conditions of the multi-channel buffer independently managed flow control technology is adaptively selected from the set CH as the output channel ch for the final transmission of data packets.
5. The adaptive routing method according to claim 4, characterized in that, The adaptive selection of a channel from the set CH as the final output channel ch also includes: When the flow control technology is a flow control technology with unified management of multi-channel buffers, one channel that meets the return flow control conditions of the flow control technology with unified management of multi-channel buffers is adaptively selected from the set CH as the output channel ch for the final transmission of data packets.
6. The adaptive routing method according to claim 5, characterized in that, The adaptive routing method also includes: Provides the shortest path for data packets to reach the destination node.
7. The adaptive routing method according to claim 6, characterized in that, Providing the shortest path for data packets to reach the destination node specifically includes: Step S1: Define secure and insecure data packets; when the next hop of a data packet passes through a surrounding channel within a cell dimension, where the number of compute nodes in that dimension is greater than 4, and the dimension containing the surrounding channel is the lowest dimension in the surrounding channel that the data packet needs to pass through from the current node to the destination node, the data packet is a secure data packet for the node in the next hop; when the data packet no longer needs to pass through any surrounding channel with more than 4 compute nodes in any dimension to reach the destination node, and the next hop of the data packet follows p In the -cube routing algorithm, for the node in the next hop, the data packet is a secure data packet; otherwise, the data packet is an insecure data packet. Step S2: Under virtual pass-through switching technology, the input port of any node router contains two buffers, each buffer storing at least one complete data packet, and the two buffers are not classified; let f represent the number of idle virtual channels in the input port, and s represent the number of secure virtual channel resources in the input port; the state of the buffer includes idle, secure and insecure. An idle virtual channel means that no data packet is stored in the buffer; a secure virtual channel means that the buffer stores secure data packets, or the buffer resource originally stores insecure data packets, and the insecure data packets have already requested buffer resources on the next-hop node; an insecure virtual channel means that the buffer stores insecure data packets, and the insecure data packets have not yet requested buffer resources on the next-hop node. Step S3: Based on the buffer state information provided in Step S2, assume the next-hop router node has f free virtual channels and s secure virtual channels, with the following flow control mechanism: when f > 1, the data packet proceeds to the next node; when f = 1 and s ≥ 1, the data packet proceeds to the next node; when f = 1 and s = 0, if the flow from the current node to the next node follows p... The -cube method allows the data packet to proceed to the next node; otherwise, the data packet cannot proceed to the next node.
8. The adaptive routing method according to claim 7, characterized in that, At target node d i and the current node c i When the difference is only one jump, use p - Cube routing algorithms, specifically including: Set the current node (c0, c1, ..., c) i , ..., c n-1 ) and target nodes (d0, d1, ..., d i , ..., d n-1 The dimensions with different labels are divided into two subsets, U1 and U2, and initially U1 and U2 are set as empty sets Φ; where U1 is the dimension pushed forward and U2 is the dimension pushed backward. For all dimensions i=0 to i=n-1, when c i ≠d i And the next jump step of the dimension is ch i +, then U1←U1∪{d i }; otherwise, the next jump step for the dimension is ch i -,U2←U2∪{d i }; From the coordinates of the current node (c0, c1, ..., c... i , ..., c n-1 The coordinates from the destination node (d0, d1, ..., d2) to the destination node. i , ..., d n-1 The data packets first adaptively traverse all dimensions in U2. After all dimensions in U2 have been traversed, the data packets are then adaptively selected from the dimensions in U1 to transmit the data packets.
Citation Information
Patent Citations
Router and interface device suitable for the extending on and among sheets of polycaryon processor
CN101753388A
Server design method based on fusion and 2D Torus network topology framework
CN104579786A
High-dimension Torus network architecture and adaptive routing method
CN114363241A