Policy routing system based on distributed computing

A hierarchical network structure with a global two-dimensional and local binary tree design, along with a hybrid routing algorithm, enhances adaptability and fault tolerance in distributed computing networks, addressing inefficiencies in existing policy routing systems.

CN119211100APending Publication Date: 2024-12-27JIANGSU ENLINK NETWORK TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411219346.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-02
Publication Date
2024-12-27

AI Technical Summary

Technical Problem

Existing policy routing systems struggle with insufficient adaptability, local information, and fault tolerance in irregular topologies of distributed computing networks, leading to inefficient and unreliable routing.

Method used

A hierarchical network structure combining a global two-dimensional network with a local binary tree, utilizing a hybrid routing algorithm and node addressing method, including a 32-bit message header format and distributed routing strategy, to enhance adaptability and fault tolerance.

Benefits of technology

The solution effectively reduces the probability of deadlock and improves scheduling efficiency, ensuring flexible and reliable routing in irregular distributed computing systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119211100A_ABST
    Figure CN119211100A_ABST
Patent Text Reader

Abstract

The invention discloses a strategy routing system based on distributed computing, which is designed aiming at a global two-dimensional network and a local binary tree, the address of the global two-dimensional network is described by adopting a binary coding combination of offsets of an X coordinate and a Y coordinate of a head node, and the address of the local binary tree adopts a Hufman-like coding mode; the routing of the global two-dimensional network is carried out on the X coordinate dimension according to the offsets of the destination node and the current node on the X coordinate and the Y coordinate, and when the offset of the X coordinate is 0, the routing is carried out on the Y coordinate dimension until the offsets of the X coordinate and the Y coordinate are 0; the routing of the local binary tree adopts a routing strategy of step-by-step comparison, a destination address is graded, step-by-step comparison is performed on the destination address and a current address according to a sequence from a high order to a low order, and a routing direction is judged according to a difference value. According to the method, the deadlock probability of the irregular distributed computing system can be effectively reduced, and the scheduling efficiency can be effectively improved compared with a traditional land editing mode.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of routing in a distributed computing system, and in particular to a policy routing system based on distributed computing. Background Art

[0002] The network structure of distributed computing can be divided into two categories: regular topology and irregular topology. Figure 1 Several typical topologies are shown.

[0003] Regular topology is easy to design and reuse, but it is not easy to customize for non-universal and homogeneous architectures. In a distributed computing system, each resource node is responsible for tasks of different complexity, which determines that the consumption and information flow of each computing node are different, and regular topology will no longer apply. Irregular topology customized for specific applications is more suitable for solving such problems. Hierarchical structure is a type of irregular topology. In this structure, the network presents a two-layer or multi-layer hierarchical structure, usually including two levels of global network and local network. Regular structure or irregular structure can be selected according to needs.

[0004] The existing policy routing has the following shortcomings when applied to irregular topologies:

[0005] Insufficient adaptability: Existing policy routing systems are difficult to adapt to changes in irregular topology structures. For networks that may contain heterogeneous nodes and links, traditional routing algorithms cannot effectively cope with these heterogeneities, resulting in performance degradation or poor routing selection.

[0006] Insufficient local information: In irregular topologies, nodes may not be able to obtain sufficient local information for intelligent routing decisions. Traditional routing algorithms may only be based on global information and cannot fully utilize the characteristics of local topological structures. For complex scenarios where the consumption and information flow of each computing node are different, the existing regular topology is not applicable, resulting in inflexible and inefficient routing selection.

[0007] Insufficient fault tolerance: Irregular topology may increase uncertainty and complexity in the network, while existing policy routing systems may be insufficient in terms of fault tolerance. In the event of node failure or link interruption, the existing system may fail to provide sufficient fault tolerance mechanisms, resulting in communication interruption or performance degradation, low scheduling efficiency, and a high probability of deadlock. Summary of the invention

[0008] Purpose of the invention: The hierarchical structure targeted by the present invention is a typical one among hierarchical topologies, such as Figure 1As shown in the lower right middle figure, in this hierarchical structure, the global network adopts a regular two-dimensional topology, and the local network adopts a binary tree. The present invention provides a policy routing system based on distributed computing, and designs a new hybrid routing algorithm and a new node addressing method for the above-mentioned hierarchical network. This design can effectively reduce the probability of deadlock in this irregular distributed computing system, and can effectively improve its scheduling efficiency compared to the traditional addressing method.

[0009] Technical solution: The distributed computing-based policy routing system of the present invention is applied to a distributed computing network structure, wherein the distributed computing network structure includes a global two-dimensional network and a local binary tree, wherein the local binary tree is connected to one or several nodes in the global two-dimensional network; the distributed computing network structure adopts a hierarchical node addressing method, wherein: the address of each node in the global two-dimensional network is described by a binary coding combination of the X coordinate of the first node and the Y coordinate offset, and the address of the local binary tree adopts a Huffman-like coding method, wherein the address of the leaf node is represented by 2 binary bits; The strategy routing system first performs routing judgment on the global two-dimensional network, and then performs routing judgment on the local binary tree. The routing judgment of the global two-dimensional network adopts an XY dimensional order routing algorithm. According to the offset of the destination node and the current node on the XY coordinates, routing is first performed on the X coordinate dimension. When the X coordinate offset is 0, routing is then performed to the Y dimension until both the X and Y coordinate offsets are 0. The routing judgment of the local binary tree adopts a level-by-level comparison routing strategy, which grades the destination address, compares the destination address and the current address level by level in order from high to low, and determines the routing direction according to the difference.

[0010] To further improve the above technical solution, a 32-bit message header format is provided for the node addressing method. The 32-bit message header format is divided into: bits 0 to 1 and bits 16-17 are the switching technology used; bits 2 to 15 are the destination address, bits 18 to 10 are the channel number, bits 21 to 28 are reserved bits, and bits 30 to 31 are the message length. The destination address supports a 4-layer full binary tree topology architecture in an 8x8 global two-dimensional network.

[0011] Furthermore, the message supports a minimum transmission network scale of 16-bit buffer capacity and data channel, and each message header is divided into 2 physical micro-slices; if the message supports a larger network scale, the capacity of the buffer and data channel needs to be increased by a multiple of 2n, and n>4.

[0012] Furthermore, when the switching technology adopts circuit switching, a distributed routing strategy is adopted. The channel number of the intermediate node is calculated by each switching node separately instead of being stored in the message header. The switching node has a minimum of 2 output links and a maximum of 5. The 3-bit segment from 18 to 20 is required to store the channel number of the routing link. It is not defined in other cases.

[0013] Furthermore, the channels between the global two-dimensional networks have no loops, and the channels between the local binary trees have no loops.

[0014] Furthermore, the routing stage of the global two-dimensional network adopts the following judgment method:

[0015] S1: Check the difference between the X coordinate of the target node and the X coordinate of the current node;

[0016] S2: If the target X coordinate is less than the current X coordinate and the current node is not the root node, then choose to send data to the parent node, otherwise the routing of the global two-dimensional network chooses the negative direction of the X dimension;

[0017] S3: If the target X coordinate is greater than the current X coordinate and the current node is not the root node, then choose to send data to the parent node, otherwise the global two-dimensional network routing chooses the positive direction of the X dimension;

[0018] S4: If the target X coordinate is equal to the current X coordinate, and the target Y coordinate is less than the current Y coordinate, then choose to send data to the parent node, otherwise the routing of the global two-dimensional network chooses the negative direction of the Y dimension;

[0019] S5: If the target X coordinate is equal to the current X coordinate, and the target Y coordinate is greater than the current Y coordinate, then the parent node is selected to send data, otherwise the routing of the global two-dimensional network selects the positive direction of the Y dimension;

[0020] S6: If the target X coordinate is equal to the current X coordinate, the target Y coordinate is equal to the current Y coordinate, and the current node is a leaf node, then perform local binary tree routing;

[0021] The routing of the local binary tree adopts the following determination method:

[0022] S7: for each dimension, check the relationship between the target node and the current node in the dimension;

[0023] S8: If the target coordinates are equal to the current coordinates in this dimension, skip this dimension;

[0024] S9: According to the difference between the target coordinate and the current coordinate in the dimension, the corresponding child node is selected for routing, wherein the left child node is selected if the difference is 2, the right child node is selected if the difference is 3, and the parent node is selected in other cases.

[0025] Furthermore, in the routing stage of the global two-dimensional network,

[0026] In S1, the difference between the target address and the current address in the X and Y dimensions is obtained respectively by using the Dest and Curr functions;

[0027] In S2 to S6, according to the difference between the X and Y dimensions, the Mesh function is selected for routing, including: if the difference between the X dimension is less than 0, Mesh(Xneg) is selected; if the difference between the X dimension is greater than 0, Mesh(Xpos) is selected; if the difference between the Y dimension is less than 0, Mesh(Yneg) is selected; if the difference between the Y dimension is greater than 0, Mesh(Ypos) is selected; if the difference between the X and Y dimensions is 0, Mesh(Tree) is selected, and the Mesh(size_t i) function is used to select the routing direction of the global network, and the actual parameter value of the parameter i is Xpos, Xneg, Ypos, Yneg, or Tree, which respectively represents the positive direction of the X dimension, the negative direction of the X dimension, the positive direction of the Y dimension, the negative direction of the Y dimension, or the root node direction of the corresponding layer;

[0028] The routing phase of the local binary tree:

[0029] The destination address and the current address are compared level by level; according to the result of the level by level comparison, the Tree function is selected for routing, including: if the difference is 2, then select Tree(Lchild); if the difference is 3, then select Tree(Rchild); otherwise select Tree(Parent); the Tree(size_t i) function is used to select the routing direction of the binary tree; the actual value of the parameter i can be Parent, Lchild, or Rchild, which respectively represent the parent node direction, the left leaf node direction, and the right leaf node direction.

[0030] Beneficial effect: Compared with the prior art, the advantages of the present invention are: the present invention combines the global two-dimensional network and the local binary tree structure, and designs a new hybrid routing algorithm and a new node addressing method for the above-mentioned hierarchical network. The design can effectively reduce the probability of deadlock in such an irregular distributed computing system, and can effectively improve its scheduling efficiency compared to the traditional addressing method, thereby realizing efficient and flexible routing functions.

[0031] The global two-dimensional network adopts the XY dimensional order routing algorithm. By routing in the X dimension first and then in the Y dimension, the routing path is ensured to be certain and simple, and the complexity of routing selection is reduced. Through the hierarchical node addressing method, the address space of the global network and the local binary tree is effectively combined to achieve a concise representation and fast search of the network address. The local binary tree uses a Huffman-like coding method to encode the node address and uses a level-by-level comparison routing strategy to quickly determine the routing direction, improving the speed and accuracy of routing decisions. According to the difference between the target address and the current address in each dimension, the corresponding child node or parent node is selected for routing, which enhances the flexibility of local routing.

[0032] A 32-bit message header format is provided, which defines in detail the fields such as destination address, channel number, switching technology, reserved bits, message length, etc., making the message structure clear and easy to parse and process.

[0033] It supports a 4-layer full binary tree topology in an 8x8 global two-dimensional network, adapting to the needs of networks of different scales; the minimum transmission network scale is 16-bit buffer capacity and data channel. By increasing the buffer and data channel capacity by a multiple of 2, it adapts to the expansion needs of the network scale and ensures the stability and efficiency of data transmission.

[0034] When adopting circuit switching technology, a distributed routing strategy is used, and the channel number of the intermediate node is calculated by each switching node separately, reducing the overhead of storing message header information and improving switching efficiency; the number of output links of the switching node is 2 to 5, and the channel number of the routing link is stored in a 3-bit field, ensuring the accuracy and flexibility of routing selection.

[0035] There are no loops in the channel design of the global two-dimensional network and the local binary tree, which avoids routing deadlocks and data packet loops and ensures the stability and reliability of the network. BRIEF DESCRIPTION OF THE DRAWINGS

[0036] Figure 1 It is a typical schematic diagram of the distributed computing network structure;

[0037] Figure 2 It is the node addressing method in the present invention;

[0038] Figure 3 It is a flow chart of the hybrid routing algorithm in the present invention;

[0039] Figure 4 It is a channel correlation graph of the global two-dimensional network and the local binary tree in the present invention. DETAILED DESCRIPTION

[0040] The technical solution of the present invention is described in detail below with reference to the accompanying drawings, but the protection scope of the present invention is not limited to the embodiments.

[0041] Example 1: The layered structure targeted by the present invention is as follows Figure 2 As shown, the global network adopts a regular two-dimensional topology, and the local network adopts a binary tree. The resource nodes are distributed according to the complexity of the functions that the modules are responsible for and the amount of information processed. They can only be leaf nodes of the tree. A special case is that there is only one tree root under each node of the two-dimensional network, and the routing degenerates into the routing of only the two-dimensional network. At this time, the resource node is equivalent to the root node of the tree.

[0042] The present invention designs a new node addressing method and a new hybrid routing algorithm for the above-mentioned hierarchical network. This design can effectively reduce the probability of deadlock in such an irregular distributed computing system and effectively improve its scheduling efficiency compared to the traditional addressing method.

[0043] 1. Hierarchical node addressing method

[0044] According to the hierarchical structure, a two-level addressing method is adopted. The global two-dimensional network adopts XY coordinate addressing, that is, the address of each node is a binary code combination of the X coordinate and Y coordinate offset of the first node, such as Figure 2 As shown in the figure. The addressing of the local binary tree adopts a Huffman-like coding method. The traditional Huffman coding uses 0 and 1 to represent the left and right child nodes of the binary tree respectively. In the case of a non-full tree, the address length will be different, which makes the design of the message header and routing mechanism very complicated. Therefore, the Huffman coding is improved, and 2 binary bits are used to represent the address of the leaf node, so that any node in the structure has an address of equal length. The specific provisions are as follows Figure 2 As shown in the figure. A one-to-one (one switching node is connected to only one resource node) network structure only needs to address the switching node. To solve the one-to-many structure problem in the binary tree, both the routing node and the resource node are uniformly addressed, and the many-to-one (one resource node is connected to multiple switching nodes) situation is prohibited, that is, the resource node can only be a leaf node of the tree.

[0045] The new header format designed according to the above node addressing method has a length of 32 bits, and the destination address occupies 14 bits in total. It can support a topological structure of 1024 nodes in a four-layer (L1-L4) full binary tree in a two-dimensional network of 8x8 (X*Y) at most. Because the destination address is in the first 16 bits of the header, in order to prevent address truncation, this message can only be transmitted in a network with a minimum buffer capacity of 16 bits and a data channel. Each header is divided into 2 physical micro slices (phit). Similarly, if a larger network scale is to be supported, the capacity of the buffer and data channel needs to be increased (increased by 2n times, n>4). When using circuit switching, in order to avoid the header being too long (the longest routing path in this example spans 22 links, and if source routing is used, at least 58 bits will be required to store the channel number), a distributed routing strategy is adopted, and the channel number of the intermediate node is calculated separately by each switching node, rather than being stored in the header. The switching node in the figure has at least 2 output links and at most 5, so 3 bits (18th-20th bit segment) are needed to store the channel number of the routing link, which is not defined in other cases.

[0046] 2. Design of hierarchical routing algorithm

[0047] According to the addressing method of the above nodes, a new hybrid routing algorithm is designed for the hierarchical network: using distributed deterministic routing, the routing judgment of the global network is performed first, and then the routing judgment of the local network is performed. The global network adopts the classic XY dimensional order routing. The idea of ​​this routing algorithm is: according to the X and Y dimension offsets of the destination node and the current node, first route in the X dimension, and when the X dimension offset is 0, route to the Y dimension until the X and Y offsets are both 0. The local binary tree adopts a self-designed level-by-level comparison routing strategy. The idea is as follows: classify the destination address as shown in the above figure, compare the destination address and the current address level by level in order from high to low, and determine the routing direction based on the difference. The detailed routing algorithm process is as follows. Figure 3 describe.

[0048] The following table uses a pseudo code in C language. To keep the code concise, several functions and constants are predefined in the table:

[0049] Function definition table:

[0050] #define DEST_ADDR,CURR_ADDR / *Store the destination node and current node address respectively* /

[0051] #define N / / Storage address length

[0052] #define X,Y,Xneg,Xpos,Yneg,Ypos,Tree,Parent,Lchild,Rchild / / actual parameter values ​​in the function

[0053] size_t Dest(size_t i) / *Get the value of the target address at level i and return the decimal difference. The actual parameter values ​​of i are X (X-dimensional address), Y (Y-dimensional address), 1 (first-level address), 2 (second-level address), and n (n-level address).* /

[0054] {size_t j=DEST_ADDR, p=7, q=3;

[0055] if(i==X)return(j>>(N-3)&p);

[0056] else if(i==Y)return(j>>(N-6)&p);

[0057] else if(i>=1&&i<=(N-6) / 2)return(j>>2*(i-1)&q);

[0058] else return error;}

[0059] size_t Curr(size_t i); / *Get the value of the current address at level i and return the decimal difference. The definition is the same as above, just replace the value of j with CURR_ADDR.* /

[0060] / *The specific implementation process of the following two functions depends on the instruction set supported by the actual switch node routing chip, so only the description of the parameters and return structure is given.* /

[0061] void Mesh(size_t i); / *Used to select the routing direction of the global network, the actual parameter values ​​of i are Xpos, Xneg (positive and negative directions of the X dimension), Ypos, Yneg (positive and negative directions of the Y dimension), Tree (direction of the corresponding layer root node).* /

[0062] void Tree(size_t i); / *Used to select the routing direction of the binary tree, the actual parameter values ​​of i are Parent (parent node direction), Lchild (left leaf node direction), Rchild (right leaf node direction)* / .

[0063] The above code is used to implement the following process:

[0064] First, some macros and functions are defined to store the addresses of the destination node and the current node, as well as to represent different routing directions and address levels. Among them: DEST_ADDR and CURR_ADDR store the addresses of the destination node and the current node respectively, and these addresses are represented by N-bit binary numbers; N stores the length of the address, that is, the number of bits of the binary number; X and Y represent the addresses of the X dimension and Y dimension respectively, and these addresses are represented by 3-bit binary numbers; Xpos, Xneg, Ypos, and Yneg represent the positive direction of the X dimension, the negative direction of the X dimension, the positive direction of the Y dimension, and the negative direction of the Y dimension respectively, and these directions are used for routing selection of the global network; Tree, Parent, Lchild, and Rchild represent the root node direction, parent node direction, left leaf node direction, and right leaf node direction of the corresponding layer respectively, and these directions are used for routing selection of the binary tree.

[0065] Then, the Dest(size_t i) function is defined to obtain the value of the destination address at the i-th level. The implementation process of this function is: shift the destination address right by the corresponding number of bits, and determine the number of bits according to the actual value of parameter i. The actual value of parameter i can be X, Y, or an integer between 1 and (N-6) / 2, representing the X-dimensional address, the Y-dimensional address, or the address of a certain level. The implementation process of the function is to shift the destination address right by the corresponding number of bits, and then perform a bitwise AND operation with the corresponding mask. The returned result is a decimal number, which represents the value of the destination address at the i-th level.

[0066] The Curr(size_t i) function is used to obtain the value of the current address at the i-th level and return the decimal difference. The actual value of parameter i is the same as that of the Dest(size_t i) function. The implementation process of the function is the same as that of the Dest(size_t i) function, except that the destination address is replaced by the current address.

[0067] Then, the Mesh(size_t i) function is defined to select the routing direction of the global network. The actual value of parameter i can be Xpos, Xneg, Ypos, Yneg, or Tree, which respectively represent the positive direction of X dimension, the negative direction of X dimension, the positive direction of Y dimension, the negative direction of Y dimension, or the root node direction of the corresponding layer. The specific implementation process of the function depends on the instruction set supported by the actual switching node routing chip, so only the description of the formal parameters and return structure is given.

[0068] Finally, the Tree(size_t i) function is defined to select the routing direction of the binary tree. The implementation process of this function is the same as that of the Mesh(size_t i) function, except that the meaning of the routing direction is different. For example, if the actual parameter value of i is Parent, the routing direction is the parent node direction, if the actual parameter value of i is Lchild, the routing direction is the left leaf node direction, and if the actual parameter value of i is Rchild, the routing direction is the right leaf node direction.

[0069] Binary tree segment difference judgment mechanism:

[0070]

[0071] Hybrid routing algorithm process:

[0072] / / 2D network routing algorithm

[0073] if(Dest(X)-Curr(X)<0)

[0074] {if(Curr(1)!=0)Tree(Parent);

[0075] else Mesh(Xneg);}

[0076] if(Dest(X)-Curr(X)>0)

[0077] {if(Curr(1)!=0)Tree(Parent);

[0078] else Mesh(Xpos);}

[0079] if((Dest(X)==Curr(X))&&(Dest(Y)-Curr(Y)<0))

[0080] {if(Curr(1)!=0)Tree(Parent);

[0081] else Mesh(Yneg);}

[0082] if((Dest(X)==Curr(X))&&(Dest(Y)-Curr(Y)<0))

[0083] {if(Curr(1)!=0)Tree(Parent);

[0084] else Mesh(Ypos);}

[0085] if((Dest(X)==Curr(X))&&(Dest(Y)==Curr(Y)))

[0086] {if(Curr(1)==0)Mesh(Tree);}

[0087] / / Binary tree routing algorithm

[0088] for(size_t k=1;k<=n;k++)

[0089] {if(Dest(k)-Curr(k)==0)continue;

[0090] switch(Dest(k)-Curr(k))

[0091] {case 2:Tree(Lchild);break;

[0092] case 3:Tree(Rchild); break;

[0093] default:Tree(Parent);}}

[0094] The flowchart for implementing the hybrid routing algorithm based on the above code is as follows Figure 3 As shown, the specific process is as follows: The routing stage of the global two-dimensional network adopts the following judgment method:

[0095] S1: Check the difference between the X coordinate of the target node and the X coordinate of the current node;

[0096] S2: If the target X coordinate is less than the current X coordinate and the current node is not the root node, then choose to send data to the parent node, otherwise the routing of the global two-dimensional network chooses the negative direction of the X dimension;

[0097] S3: If the target X coordinate is greater than the current X coordinate and the current node is not the root node, then choose to send data to the parent node, otherwise the global two-dimensional network routing chooses the positive direction of the X dimension;

[0098] S4: If the target X coordinate is equal to the current X coordinate, and the target Y coordinate is less than the current Y coordinate, then choose to send data to the parent node, otherwise the routing of the global two-dimensional network chooses the negative direction of the Y dimension;

[0099] S5: If the target X coordinate is equal to the current X coordinate, and the target Y coordinate is greater than the current Y coordinate, then the parent node is selected to send data, otherwise the routing of the global two-dimensional network selects the positive direction of the Y dimension;

[0100] S6: If the target X coordinate is equal to the current X coordinate, the target Y coordinate is equal to the current Y coordinate, and the current node is a leaf node, then perform local binary tree routing;

[0101] The routing of the local binary tree adopts the following determination method:

[0102] S7: for each dimension, check the relationship between the target node and the current node in the dimension;

[0103] S8: If the target coordinates are equal to the current coordinates in this dimension, skip this dimension;

[0104] S9: According to the difference between the target coordinate and the current coordinate in the dimension, the corresponding child node is selected for routing, wherein the left child node is selected if the difference is 2, the right child node is selected if the difference is 3, and the parent node is selected in other cases.

[0105] 3. Deadlock-free analysis of hierarchical structures

[0106] Like the typical regular topology, the above hierarchical structure can use circuit switching (CSD), message switching (SAF), virtual step switching (VCT), wormhole switching, and other commonly used switching technologies to exchange messages, among which wormhole switching has the highest efficiency. However, the small buffer requirement and in-place blocking strategy of this switching technology make the probability of deadlock higher. In order to avoid the occurrence of deadlock problems, the design principle of the above routing algorithm is to adopt a deadlock-free routing mechanism, which is analyzed as follows:

[0107] Deadlock-free theorem: A deterministic routing function of an interconnection network is deadlock-free if and only if there are no cycles in the channel dependency graph.

[0108] According to the above theorem, if Figure 4As shown in the figure, the channel correlation graphs of the global network and the local network are given respectively. The bidirectional arrows in the topology structure example indicate that the exchange between nodes is bidirectional channel transmission (composed of 2 independent unidirectional channels). Because the correlation graphs above the 3-level structure will become extremely complex and inconvenient to analyze, only the channel correlation graphs of the 2x3 node two-dimensional network and the 3-level full binary tree are drawn. It can be seen from the figure that there is no loop. In fact, the XY dimensional order routing and tree structure itself are loop-free structures.

[0109] As described above, although the present invention has been shown and described with reference to specific preferred embodiments, it should not be construed as limiting the present invention itself. Various changes in form and details may be made without departing from the spirit and scope of the present invention as defined in the appended claims.

Claims

1. A distributed computing-based policy routing system, applied to a distributed computing network structure, characterized in that: The distributed computing network structure includes a global two-dimensional network and a local binary tree, wherein the local binary tree is connected to one or several nodes in the global two-dimensional network; The distributed computing network structure adopts a hierarchical node addressing method, wherein: the address of each node in the global two-dimensional network is described by a binary coding combination of the X coordinate of the first node and the Y coordinate offset, and the address of the local binary tree adopts a Huffman-like coding method, with 2 binary bits representing the address of the leaf node; The strategy routing system first performs routing of the global two-dimensional network and then performs routing of the local binary tree. The routing of the global two-dimensional network adopts an XY dimensional order routing algorithm. According to the offset of the destination node and the current node in the X and Y coordinates, routing is first performed in the X coordinate dimension. When the X coordinate offset is 0, routing is then performed to the Y coordinate dimension until the X and Y coordinate offsets are both 0. The routing of the local binary tree adopts a level-by-level comparison routing strategy, which grades the destination address, compares the destination address and the current address level by level in order from high to low, and determines the routing direction according to the difference.

2. The distributed computing-based policy routing system according to claim 1, characterized in that: A 32-bit message header format is provided for the node addressing method, and the 32-bit message header format is divided into: bits 0 to 1 and bits 16-17 are the switching technology used; bits 2 to 15 are the destination address, bits 18 to 10 are the channel number, bits 21 to 28 are reserved bits, and bits 30 to 31 are the message length. The destination address supports a 4-layer full binary tree topology architecture in an 8x8 global two-dimensional network.

3. The distributed computing-based policy routing system according to claim 2, characterized in that: The message header supports a minimum transmission network with a 16-bit buffer and data channel capacity, and each message header is divided into 2 physical micro-slices; if the message header needs to support a larger transmission network, the buffer and data channel capacity are increased by a multiple of 2n, and n>4.

4. The distributed computing-based policy routing system according to claim 2, characterized in that: When the switching technology adopts circuit switching, the channel number of the intermediate node is calculated by each switching node separately instead of being stored in the message header. The switching node has at least 2 output links and at most 5. The 18th to 20th bits of the message header are required to store the channel number of the routing link. It is not defined in other cases.

5. The distributed computing-based policy routing system according to claim 1, characterized in that: The channels between the global two-dimensional networks have no loops, and the channels between the local binary trees have no loops.

6. The distributed computing-based policy routing system according to claim 1, characterized in that: The routing stage of the global two-dimensional network adopts the following judgment method: S1: Check the difference between the X coordinate of the target node and the X coordinate of the current node; S2: If the target X coordinate is less than the current X coordinate and the current node is not the root node, then choose to send data to the parent node, otherwise the global two-dimensional network routing chooses the negative direction of the X dimension; S3: If the target X coordinate is greater than the current X coordinate and the current node is not the root node, then choose to send data to the parent node, otherwise the global two-dimensional network routing chooses the positive direction of the X dimension; S4: If the target X coordinate is equal to the current X coordinate, and the target Y coordinate is less than the current Y coordinate, then choose to send data to the parent node, otherwise the routing of the global two-dimensional network chooses the negative direction of the Y dimension; S5: If the target X coordinate is equal to the current X coordinate, and the target Y coordinate is greater than the current Y coordinate, then the parent node is selected to send data, otherwise the routing of the global two-dimensional network selects the positive direction of the Y dimension; S6: If the target X coordinate is equal to the current X coordinate, the target Y coordinate is equal to the current Y coordinate, and the current node is a leaf node, then perform local binary tree routing; The routing of the local binary tree adopts the following determination method: S7: For each dimension, check the relationship between the target node and the current node in the dimension; S8: If the target coordinates are equal to the current coordinates in this dimension, skip this dimension; S9: According to the difference between the target coordinates and the current coordinates in this dimension, the corresponding child node is selected for routing, where the left child node is selected if the difference is 2, the right child node is selected if the difference is 3, and the parent node is selected in other cases.

7. The distributed computing-based policy routing system according to claim 6, characterized in that: In the routing phase of the global two-dimensional network, In S1, the difference between the target address and the current address in the X and Y dimensions is obtained respectively by using the Dest and Curr functions; In S2 to S6, according to the difference between the X and Y dimensions, the Mesh function is selected for routing, including: if the difference between the X dimension is less than 0, Mesh(Xneg) is selected; if the difference between the X dimension is greater than 0, Mesh(Xpos) is selected; if the difference between the Y dimension is less than 0, Mesh(Yneg) is selected; if the difference between the Y dimension is greater than 0, Mesh(Ypos) is selected; if the difference between the X and Y dimensions is 0, Mesh(Tree) is selected, and the Mesh(size_t i) function is used to select the routing direction of the global network, and the actual parameter value of the parameter i is Xpos, Xneg, Ypos, Yneg, or Tree, which respectively represents the positive direction of the X dimension, the negative direction of the X dimension, the positive direction of the Y dimension, the negative direction of the Y dimension, or the root node direction of the corresponding layer; The routing phase of the local binary tree: The destination address and the current address are compared level by level; according to the result of the level by level comparison, the Tree function is selected for routing, including: if the difference is 2, then select Tree(Lchild); if the difference is 3, then select Tree(Rchild); otherwise select Tree(Parent); the Tree(size_t i) function is used to select the routing direction of the binary tree; the actual value of the parameter i can be Parent, Lchild, or Rchild, which respectively represent the parent node direction, the left leaf node direction, and the right leaf node direction.