Dragonfly network-based routing method, electronic device, and medium

By using inner and outer structure tables to dynamically select the next set of hop routers in the Dragonfly network, the path planning problem of the Dragonfly network when traffic patterns change is solved, and efficient forwarding of data packets and improvement of network utilization are achieved in different modes.

CN116599887BActive Publication Date: 2025-12-12SHENZHEN RES INST OF BIG DATA +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310439339.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-04-20
Publication Date
2025-12-12
Estimated Expiration
2043-04-20

AI Technical Summary

Technical Problem

The existing Dragonfly network routing algorithm cannot provide effective path planning when faced with dynamic changes in traffic patterns, leading to problems such as link congestion and uneven utilization.

Method used

A routing method based on dragonfly networks is adopted. By obtaining the inner and outer structure tables of the router, the next set of hop routers is dynamically selected. Combined with preset sampling probabilities and reinforcement learning, the forwarding path of data packets is optimized.

Benefits of technology

It enables efficient forwarding of data packets under different traffic patterns, reduces link congestion, improves network utilization, and adapts to dynamic changes in traffic patterns.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116599887B_ABST
    Figure CN116599887B_ABST
Patent Text Reader

Abstract

The present disclosure relates to the technical field of routing, in particular to a routing method based on dragonfly network, an electronic device and a medium. The method comprises: receiving a data packet; determining a next group hop router located between a group where the first router is located and a destination group of the data packet when it is determined that the first router does not belong to the destination group; obtaining a first inner layer structure table of the first router, the first inner layer structure table being used to reflect a time delay from a corresponding router to a next group hop router of a group where the corresponding router is located through a next hop; determining a second router based on the first inner layer structure table; and sending the data packet to the second router. The structure table provided by the scheme can be applied to the forwarding of data packets in different traffic modes, so that the Dragonfly network with dynamic changes in traffic modes can provide a more optimal path planning for data packets.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to the technical field of routing, in particular to a routing method based on a dragonfly network, an electronic device and a medium. BACKGROUND

[0002] High-performance high-radix interconnection networks play an important role in high-performance computing systems, which are responsible for data exchange between edge computer nodes. According to the latest TOP500 supercomputer list, dragonfly networks have become the main topology of interconnection networks because they have good cost-effectiveness and high scalability. The first feature of the dragonfly network topology is the hierarchical structure, which is reflected in that several routers are interconnected through local links and form a group, which is the first layer of the dragonfly network; groups are interconnected through global links, which is the second layer of the dragonfly network. The second feature of the dragonfly network topology is path diversity, that is, a data packet sent from one router to another router can choose multiple different paths.

[0003] In order to fully exert the advantages of the dragonfly topology, it is crucial to design an efficient routing algorithm. Traditional dragonfly routing algorithms, such as the minimal routing (MIN) algorithm, the valiant routing (VAL) algorithm, etc. The MIN algorithm is to forward the data packet to the shortest path, and this algorithm is mainly applied in the uniform random traffic pattern (UR); while the VAL algorithm is to forward the data packet to some non-shortest paths, and this algorithm is mainly applied in the adversarial traffic pattern (ADV).

[0004] However, the above-mentioned traditional routing algorithms are based on deterministic strategy to forward data packets, ignoring the characteristics of data flow itself, resulting in that the MIN and VAL algorithms have better effects only in a certain fixed traffic pattern, and are not suitable for other traffic patterns. Therefore, there is an urgent need for a routing method to adapt to the dragonfly network with dynamic changes in traffic patterns. SUMMARY

[0005] In order to solve the problems in the related art, the embodiments of the present disclosure provide a routing method based on a dragonfly network, an electronic device and a medium.

[0006] In a first aspect, a routing method based on a Dragonfly network is provided in the embodiments of the present disclosure. The method is applied to a first router belonging to the Dragonfly network. The method comprises the following steps of:

[0007] receiving a data packet;

[0008] determining a next-hop group router between a group where the first router is located and a destination group of the data packet, the next-hop group router being directly connected to one router in the group where the first router is located;

[0009] obtaining a first inner-layer structure table of the first router, the first inner-layer structure table being used to reflect a time delay from a corresponding router through a next hop to a next-hop group router of the group where the corresponding router is located;

[0010] determining a second router based on the first inner-layer structure table, the second router being located between the first router and the next-hop group router, and the second router being directly connected to the first router;

[0011] sending the data packet to the second router.

[0012] In a possible implementation of the present disclosure, the determining of the next-hop group router between the group where the first router is located and the destination group comprises the following steps of:

[0013] when the first router is a source router of the data packet, determining a candidate set, the candidate set including all next-hop group routers directly connected to the first router and a next-hop group router corresponding to a minimum time delay from the group where the first router is located to the destination group of the data packet;

[0014] matching a preset sampling probability with a sampling probability of the next-hop group router in the candidate set, and determining the next-hop group router between the group where the first router is located and the destination group in the candidate set according to a matching result.

[0015] In a possible implementation of the present disclosure, before the determining of the next-hop group router between the group where the first router is located and the destination group, the method further comprises the following steps of:

[0016] obtaining a first outer-layer structure table of the group where the first router is located, the first outer-layer structure table being used to indicate a time delay from the group where a corresponding router is located through a next-hop group router to the destination group of the data packet;

[0017] the determining of the next-hop group router between the group where the first router is located and the destination group comprises the following steps of:

[0018] When the group where the first router is located is a new group that is not a starting group, based on the first outer structure table, at least one third router directly connected to at least one router in the group where the first router is located is obtained;

[0019] The third router corresponding to the shortest time delay when the group where the first router is located reaches the destination group is obtained from the at least one third router;

[0020] The third router corresponding to the shortest time delay is taken as the next group hop router.

[0021] In a possible implementation of the present disclosure, the determining of the next group hop router located between the group where the first router is located and the destination group comprises:

[0022] When the first router is a non-source router of the data packet and the first router is not a new group, the next group hop router located between the group where the first router is located and the destination group is determined.

[0023] In a possible implementation of the present disclosure, after the receiving of the data packet, the method further comprises:

[0024] When the first router belongs to the destination group of the data packet, the data packet is sent to a target router in the destination group according to a shortest path strategy.

[0025] In a possible implementation of the present disclosure, the determining of the second router based on the first inner structure table comprises:

[0026] A plurality of routers directly connected to the first router are obtained;

[0027] Based on the first inner structure table, a router corresponding to a shortest time delay when the next group hop router is reached from the first router is obtained from the plurality of routers;

[0028] The router corresponding to the shortest time delay is determined as the second router.

[0029] In a possible implementation of the present disclosure, after the sending of the data packet to the second router, the method further comprises:

[0030] When the second router and the first router belong to different groups, a first estimated time delay when the destination group is reached from the group where the first router is located through the next group hop router is obtained based on a first outer structure table of the group where the first router is located;

[0031] obtaining a first time taken by the data packet to pass through a group where the first router is located, and a second time taken by the data packet to pass from the group where the first router is located to the group where the second router is located;

[0032] obtaining a residual path delay between the group where the second router is located and the group where the next-hop router is located;

[0033] updating, based on the first estimated delay, the first time, the second time, and the residual path delay, a first outer structure table of the group where the first router is located.

[0034] In a possible implementation of the present disclosure, after the data packet is sent to the second router, the method further includes:

[0035] obtaining a second estimated delay from the first router to the next-hop router of the first router via the second router based on a first inner structure table of the first router;

[0036] obtaining a queuing delay of the data packet at the first router and a transmission delay of the data packet between the first router and the second router;

[0037] obtaining a third estimated delay between the second router and the next-hop router;

[0038] updating, based on the second estimated delay, the queuing delay, the transmission delay, and the third estimated delay, the first inner structure table of the first router.

[0039] In a second aspect, an electronic device is provided, including a memory and a processor, where the memory is configured to store one or more computer instructions, and the one or more computer instructions are configured to be executed by the processor to implement the method in the first aspect and any possible implementation of the first aspect.

[0040] In a third aspect, a computer-readable storage medium is provided, and the computer-readable storage medium has stored thereon computer instructions, which are configured to be executed by a processor to implement the method in the first aspect and any possible implementation of the first aspect.

[0041] According to the technical scheme provided by the embodiment of the present disclosure, a data packet is received; when it is determined that the first router does not belong to a destination group of the data packet, a next group hop router located between a group where the first router is located and the destination group is determined, and the next group hop router is directly connected to one router in the group where the first router is located; a first inner layer structure table of the first router is acquired, and the first inner layer structure table is used to reflect a time delay from a corresponding router through a next hop to a next group hop router of the group where the corresponding router is located; a second router is determined based on the first inner layer structure table, the second router is located between the first router and the next group hop router, and the second router is directly connected to the first router; and the data packet is sent to the second router. The structure table provided by the scheme can be applied to the forwarding of data packets in different traffic modes, so that the Dragonfly network with dynamic changes in traffic modes can provide more optimal path planning for data packets.

[0042] It should be understood that the foregoing general description and the following detailed description are only exemplary and explanatory, and cannot limit the present disclosure. BRIEF DESCRIPTION OF DRAWINGS

[0043] Other features, objects, and advantages of the present disclosure will become more apparent from the following detailed description of the non-limiting embodiments, taken in conjunction with the accompanying drawings. In the drawings:

[0044] Figure 1 A flow chart of a routing method based on a dragonfly Dragonfly network according to an embodiment of the present disclosure is shown;

[0045] Figure 2 A schematic diagram of a Dragonfly network topology according to an embodiment of the present disclosure is shown;

[0046] Figure 3 A schematic diagram of average delay variation of data packets under different network loads according to an embodiment of the present disclosure is shown;

[0047] Figure 4 A schematic diagram of average delay variation of data packets in UR mode in a changing network load according to an embodiment of the present disclosure is shown;

[0048] Figure 5 A schematic diagram of average delay variation of data packets in ADV+1 mode in a changing network load according to an embodiment of the present disclosure is shown;

[0049] Figure 6 A structural block diagram of an electronic device according to an embodiment of the present disclosure is shown.

[0050] Figure 7 A structural schematic diagram of a computer system suitable for implementing the method according to the embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0051] Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings so as to be easily implemented by those skilled in the art. Also, portions unrelated to the description of the exemplary embodiments are omitted in the drawings for the sake of clarity.

[0052] In the present disclosure, it should be understood that terms such as "include" or "have" are intended to indicate that there are features, numbers, steps, actions, components, parts or combinations thereof disclosed in the specification, and do not exclude the possibility that one or more other features, numbers, steps, actions, components, parts or combinations thereof exist or are added.

[0053] It is further noted that the embodiments in the present disclosure and the features in the embodiments can be combined with each other without conflict. The present disclosure will be described in detail below with reference to the accompanying drawings and in conjunction with embodiments.

[0054] In the present disclosure, if it is related to an operation of acquiring user information or user data or an operation of showing user information or user data to others, the operation is an operation authorized, confirmed by the user, or actively selected by the user.

[0055] Figure 1 A flowchart of a routing method based on a Dragonfly network according to an embodiment of the present disclosure is shown. As shown, the method is applied to a first router belonging to a Dragonfly network, and the routing method includes the following steps S101-S105: Figure 1

[0056] In step S101, a data packet is received;

[0057] In step S102, when it is determined that the first router does not belong to a destination group of the data packet, a next group hop router located between a group where the first router is located and the destination group is determined, and the next group hop router is directly connected to one router in the group where the first router is located;

[0058] In step S103, a first inner layer structure table of the first router is acquired, and the first inner layer structure table is used to reflect a time delay from a corresponding router to a next group hop router of a group where the corresponding router is located through a next hop;

[0059] In step S104, a second router is determined based on the first inner layer structure table, the second router is located between the first router and the next group hop router, and the second router is directly connected to the first router;

[0060] In step S105, the data packet is sent to the second router.​

[0061] In the related art, in order to play the advantages of the Dragonfly topology, the routing algorithm used can include the following: (1) shortest path routing; (2) non-shortest path routing; (3) routing algorithm based on Q value table; (4) adaptive routing algorithm based on two-level Q value table. For the above routing methods, the applicant finds that the following problems exist: for the shortest path routing method in (1), it is suitable for uniform random traffic pattern (UR), in order to select a routing path between a pair of given routers, the routing algorithm only needs to find the shortest path between the pair of nodes in the graph, but it does not consider the network load and the packet queuing situation in the router buffer, and when the network is busy, some links will be congested and other links will be underutilized; for the non-shortest path routing in (2), it is suitable for adversarial traffic pattern (ADV) non-uniform traffic pattern, this method will realize the purpose of network balance by forwarding packets to some non-shortest paths, the disadvantage is that it ignores the characteristics of network traffic pattern, and in UR traffic pattern, it will cause a lot of cost to realize network balance, so this method is not suitable for UR traffic pattern; for the routing algorithm based on Q value table in (3), it cannot be directly applied to Dragonfly network, because the topology of Dragonfly network is very large, which will cause the Q value table to be very large and the Q value to be difficult to learn and converge; for the adaptive routing algorithm based on two-level Q value table in (4), only the two-level Q value table will be used in the next hop selection of the source router, the next hop selection of the remaining intermediate routers all adopts the strategy similar to the shortest path routing, in addition, this algorithm relies on several hyperparameters to control whether to select the next hop based on the shortest path routing strategy or the two-level Q value table, and these hyperparameters need to be set manually and depend on a specific traffic pattern, which makes this algorithm not suitable for Dragonfly network with dynamic traffic pattern change. In addition, ADV+i is a specific form of adversarial non-uniform traffic pattern, i represents that all data packets generated from G group are sent to G+i group, and this traffic pattern will cause the links connecting G group and G+i group to be congested;

[0062] To solve the problems in the related art, the embodiment of the present disclosure provides a routing method based on a Dragonfly network. After a first router receives a data packet, when it is determined that the first router does not belong to a destination group of the data packet, a next group hop router located between a group where the first router is located and the destination group is determined, a first inner structure table of the first router is obtained, and a second router is determined based on the first inner structure table, so that the first router can send the data packet to the second router. The structure table provided by the scheme can be applied to the forwarding of data packets in different traffic modes, so that the Dragonfly network with dynamic changes in traffic modes can provide a more optimal path planning for data packets.

[0063] Figure 2 A Dragonfly network topology schematic diagram in the embodiment of the present disclosure is shown. The network topology can include 9 groups, namely Group A, Group B, …, Group H, and Group I. Each group includes 4 routers, each router has 2 inter-group links, each group is fully connected, and there are a total of 36 routers in the network.

[0064] Exemplarily, the first router can be a router in any group in the above Figure 2 , for example, the first router is a1.

[0065] In an embodiment of the present disclosure, when a data packet is transmitted in a Dragonfly network, it will pass through multiple routers to reach a destination router. When the data packet stays at a first router, that is, the first router receives the data packet.

[0066] In an embodiment of the present disclosure, after the first router receives the data packet, it is necessary to first judge whether the first router belongs to the destination group of the data packet, and according to the specific circumstances of the first router, different routing strategies are executed. When it is determined that the first router does not belong to the destination group of the data packet, a next group hop router located between the group where the first router is located and the destination group is determined; when the first router belongs to the destination group of the data packet, the data packet is sent to a target router in the destination group according to a shortest path strategy.

[0067] It should be understood that when the first router belongs to the destination group of the data packet, it indicates that the data packet has reached the destination group, so that the first router can directly forward the data packet according to the shortest path strategy, so that the data packet reaches the destination router; and when the first router does not belong to the destination group of the data packet, it indicates that the data packet has not reached the destination group, so that the next group hop router required to reach the destination group from the group where the first router is located can be determined, that is, the next group hop router located between the group where the first router is located and the destination group. The next group hop router is a router directly connected to a router in the group where the first router is located.

[0068] In an embodiment of the present disclosure, through reinforcement learning, a plurality of hierarchical structure tables corresponding to forwarding data packets by all routers in the Dragonfly network under a plurality of traffic modes can be obtained. The hierarchical structure table can include an inner layer structure table and an outer layer structure table. The outer layer structure table is responsible for inter-group routing of data packets, and the inner layer structure table is responsible for intra-group routing of data packets. Each group shares the same outer layer structure table, and each router maintains its own inner layer structure table. It can be understood that the hierarchical structure table corresponding to each router in the Dragonfly network under different traffic modes is different, so that the hierarchical structure table corresponding to the router under the current traffic mode can be obtained when the data packet is routed and forwarded.

[0069] In an embodiment of the present disclosure, when the first inner layer structure table of the first router is obtained, the current traffic mode can be detected in real time, and the first inner layer structure table corresponding to the detected traffic mode in the plurality of hierarchical structure tables can be obtained. For example, the first inner layer structure table is the hierarchical structure table corresponding to the UR mode; and for another example, the first inner layer structure table is the hierarchical structure table corresponding to the adversarial non-uniform traffic mode.

[0070] In an embodiment of the present disclosure, after the first inner layer structure table is obtained, a plurality of routers directly connected to the first router can be determined based on the first inner layer structure table, and one of the plurality of routers can be selected as the next hop of the first router, that is, the second router. It can be understood that the second router is the next hop that the first router may pass through to reach the next group hop router.

[0071] In an implementation manner of the present disclosure, step S104, that is, the step of determining the second router based on the first inner layer structure table, can further include the following steps:

[0072] obtaining a plurality of routers directly connected to the first router;

[0073] based on the first inner layer structure table, obtaining a router corresponding to the shortest delay from the first router to the next group hop router in the plurality of routers;

[0074] The router corresponding to the shortest time delay is determined as the second router.

[0075] Exemplarily, based on the above Figure 2 The Dragonfly network topology shown in the figure, taking the first router a1 as an example, a packet needs to be sent from the a1 router to the d1 router. It can be known that the destination group is Group D, and the first inner structure table of the group Group A where the a1 router is located is as shown in Table 1:

[0076] Table 1

[0077]

[0078] The next hop and the corresponding time delay required to reach different next group hop routers from the a1 router are shown in the above Table 1, and each value in the table estimates the time delay of reaching a certain next group hop router through a certain next hop. Among them, the row of the inner structure table corresponds to the next group hop router of the group, and the column corresponds to the possible next hop of the current node. For example, in Table 1, the time delay of reaching the d2 router through the a3 router from the a1 router is 3.

[0079] Suppose that the first router does not belong to the destination group of the packet, and the next group hop router located between the group where the first router is located and the destination group is determined as the d2 router, the a1 router can obtain the a2 router, the a3 router, the a4 router, the h4 router and the i4 router directly connected to the a1 router. After obtaining the plurality of routers directly connected to the a1 router, the first content structure table shown in the above Table 1 can be queried, and the a3 router corresponding to the shortest time delay 3 of reaching the d2 router from the a1 router is obtained from the plurality of routers, so that the a3 router can be taken as the second router, that is, the next hop of the first router.

[0080] After that, the a1 router can send the packet to the a3 router. After receiving the packet, the a3 router can first verify whether the current router is the source router of the packet and whether the packet reaches a new group, if not, the a3 router will find the best next hop (assuming d2) from its own inner structure table and forward to the d2 router. When the packet reaches a new group and the current group is the destination group of the packet, the d2 router can directly forward the packet according to the MIN strategy, that is, directly send the packet to the d1 router.

[0081] In an embodiment of the present disclosure, after determining the second router, the first router can send a data packet to the second router, so that after receiving the data packet, the second router can perform the steps S101-S105, that is, any router in the Dragonfly network can perform the steps S101-S105 to realize the forwarding of the data packet.

[0082] In an embodiment of the present disclosure, when it is determined that the first router does not belong to the destination group of the data packet, determining the next group hop router between the group where the first router is located and the destination group can include the following three possible cases:

[0083] One possible case

[0084] In an embodiment of the present disclosure, the determining the next group hop router between the group where the first router is located and the destination group in the step S102 can further include the following steps:

[0085] When the first router is the source router of the data packet, determining a candidate set, the candidate set including all next group hop routers directly connected to the first router and the next group hop router corresponding to the minimum time delay from the group where the first router is located to the destination group of the data packet;

[0086] Matching the preset sampling probability with the sampling probability of the next group hop router in the candidate set, and determining the next group hop router between the group where the first router is located and the destination group in the candidate set according to the matching result.

[0087] In an embodiment of the present disclosure, all next group hop routers directly connected to the first router can be determined according to the topology of the Dragonfly network.

[0088] In an embodiment of the present disclosure, a first outer structure table of the group where the first router is located can be obtained, and the value in the first outer structure table is used to indicate the time delay from the group where the corresponding router is located to the destination group of the data packet through the next group hop router, so that the next group hop router corresponding to the minimum time delay from the group where the first router is located to the destination group of the data packet can be determined based on the first outer structure table.

[0089] In an embodiment of the present disclosure, each next group hop router in the candidate set can correspond to a different sampling probability. After determining the candidate set, the preset sampling probability can be matched with the sampling probability of each next group hop router in the candidate set, and the next group hop router in the candidate set whose sampling probability matches the preset sampling probability is determined as the next group hop router between the group where the first router is located and the destination group.

[0090] In one embodiment of this disclosure, the sampling probability of the next hop router in the candidate set can be obtained by the following formula:

[0091]

[0092] Where, p k Q is the sampling probability corresponding to the k-th element in the candidate set H. k It is the latency corresponding to the k-th element in the outer structure table.

[0093] It should be noted that Q k The smaller the value, the higher the corresponding sampling probability p. k The larger, the better; conversely, the larger Q is. k The larger the value, the higher the corresponding sampling probability p. k The smaller the value, the less latency is required to reach the destination group of the data packet when the next-hop router with the higher sampling probability in the candidate set is selected.

[0094] In one embodiment of this disclosure, the preset sampling probability can be obtained through extensive data testing. Of course, the preset sampling probability can also be set or modified according to the user's needs.

[0095] It should be noted that during the reinforcement learning process, when the model converges as a large amount of data is trained, the above-mentioned preset sampling probability tends to a stable value, which is the sampling probability of the next set of hop routers corresponding to the minimum latency.

[0096] For example, based on Figure 2 The Dragonfly network topology shown takes the case where a data packet needs to be sent from router a1 to router d1 as an example. When router a1 receives a data packet, it can query the outer structure table of router a1 to find the next hop router d2 corresponding to the minimum delay from the group where router a1 is located to the group where router d1 is located, that is, from the group where router a1 is located to the destination group of the data packet. It can also obtain the next hop routers i4 and h4 directly connected to router a1 based on the Dragonfly network topology. In this way, a candidate set H can be obtained, which is {d2, i4, h4}. The sampling probability of each next hop router in the candidate set H can be obtained by using the above formula (1). Therefore, the next hop router d2 can be selected from the candidate set H according to the preset sampling probability and used as the next hop router between the group where the first router is located and the destination group.

[0097] Another possible situation

[0098] In an implementation of the present disclosure, before the determining, in step S102, the next group hop router located between the group where the first router is located and the destination group, the routing method provided by the embodiments of the present disclosure can further include the following steps:

[0099] obtaining a first outer structure table of the group where the first router is located, the first outer structure table being used to indicate a time delay from the group where the corresponding router is located to the destination group of the data packet via the next group hop router.

[0100] Further, in an implementation of the present disclosure, the determining, in step S102, the next group hop router located between the group where the first router is located and the destination group can further include the following steps:

[0101] when the group where the first router is located is a new group which is not a starting group, obtaining at least one third router directly connected to at least one router in the group where the first router is located based on the first outer structure table;

[0102] obtaining, from the at least one third router, a third router corresponding to a shortest time delay from the group where the first router is located to the destination group;

[0103] taking the third router corresponding to the shortest time delay as the next group hop router.

[0104] In an implementation of the present disclosure, when the first outer structure table of the group where the first router is located is obtained, the current traffic mode can be detected in real time, and the corresponding first outer structure table can be obtained based on the current traffic mode. For example, the first outer structure table is a hierarchical structure table corresponding to a UR mode; for another example, the first outer structure table is a hierarchical structure table corresponding to a non-uniform traffic mode.

[0105] In an implementation of the present disclosure, the group where the first router is located being a new group which is not a starting group can be understood as that the group where the router sending the data packet is located is different from the group where the first router is located, and the group where the first router is located does not include the source router of the data packet.

[0106] It should be noted that the outer structure table is used only when the data packet reaches a new group and the group is not the destination group of the data packet.

[0107] For example, based on the above Figure 2 the Dragonfly network topology shown in FIG. 2, taking the first router as the a1 router and the destination group as GroupD as an example. The obtained first outer structure table of the group GroupA where the a1 router is located is shown in Table 2.

[0108] Table 2

[0109]

[0110] The next group hop routers and corresponding time delays required to reach different destination groups from the group where the al router is located are shown in Table 2 above. Each value in the table estimates the time delay to reach a certain destination group via a certain next group hop router. The rows of the table are made up of possible destination groups, and the columns are made up of possible next group hops. For example, the time delay to reach group D from group A via bl router is 10.

[0111] Suppose Group A is a new group that is not a starting group, i.e. when a data packet reaches a new group that is not a starting group, the al router can query the first outer structure table of Group A to obtain third router bl and third router cl that are directly connected to the al router in Group A, third router g3 and third router f3 that are directly connected to the a2 router in Group A, third router e2 and third router d2 that are directly connected to the a3 router in Group A, and third router bl and third router cl that are directly connected to the a4 router in Group A.

[0112] Based on Table 2 above, third router bl, third router cl, third router g3, third router f3, third router e2, third router d2, third router bl and third router cl that are directly connected to at least one router in the group where the al router is located are obtained. Since the time delays to reach a destination group via different third routers are different, the third router d2 corresponding to the shortest time delay 5 from Group A to Group D can be selected from the above plurality of third routers, so that the third router d2 corresponding to the shortest time delay 5 can be used as the next group hop router, i.e. the data packet can reach Group D from Group A where the al router is located via the next group hop d2.

[0113] Another possible case

[0114] In an implementation manner of the present disclosure, the determining, in the step S102, the next group hop router located between the group where the first router is located and the destination group comprises:

[0115] When the first router is a non-source router of the data packet and the first router is not a new group, the next group hop router located between the group where the first router is located and the destination group is determined.

[0116] In an embodiment of the present disclosure, the first router is a non-source router of the data packet, and the first router is not a new group, which can be understood as that the first router is a router between a source router of the data packet and a destination router of the data packet, and a group to which a router sending the data packet to the first router is the same as a group to which the first router belongs.

[0117] In an embodiment of the present disclosure, when the first router is a non-source router of the data packet, and the first router is not a new group, since a group to which a router sending the data packet to the first router is the same as a group to which the first router belongs, a next group hop router does not change when the data packet reaches the first router, so that a next group hop router between the group to which the first router belongs and the destination group can be understood as a next group hop router of the group to which the router sending the data packet to the first router belongs. Thus, when the first router is a non-source router of the data packet, and the first router is not a new group, the second router can be determined directly based on the first inner structure table of the first router.

[0118] In an embodiment of the present disclosure, after the data packet is sent to the second router, the method further includes:

[0119] When the second router and the first router belong to different groups, a first estimated delay is obtained from the group to which the first router belongs to the destination group through a next group hop router based on a first outer structure table of the group to which the first router belongs;

[0120] A first time spent by the data packet in the group to which the first router belongs is obtained, and a second time spent by the data packet from the group to which the first router belongs to the group to which the second router belongs is obtained;

[0121] A remaining path delay between the group to which the second router belongs and the group to which the next group hop router belongs is obtained;

[0122] The first outer structure table of the group to which the first router belongs is updated based on the first estimated delay, the first time, the second time, and the remaining path delay.

[0123] In an embodiment of the present disclosure, since each group needs to maintain its own outer structure table, the outer structure table of the group can be updated once when a data packet leaves the group where the current router is located. Thus, when the data packet leaves the first router, if the second router belongs to a different group from the first router, i.e., the data packet leaves the group where the first router is located, the first outer structure table of the group where the first router is located can be updated; or if the second router belongs to the same group as the first router, i.e., the data packet does not leave the group where the first router is located, the first outer structure table of the group where the first router is located can not be updated.

[0124] Exemplarily, taking the group where the first router is located as the X group, the destination group as the Z group, and the next group hop router as the y router as an example. X (Z, y) represents the time delay when the next group hop router y (assuming the corresponding group is the Y group) is used to reach the Z group in the outer structure table of the X group; it can be known from Table 2 above that A (D, d2) = 5. When a data packet reaches the X group, the time of reaching the X group can be recorded as t a When the data packet leaves the X group and is forwarded to the Y group, the time of leaving the Y group is recorded as t d , and thus the time spent by the data packet in the X group is t d -t a , i.e., the first time. It is assumed that R X→Y = t d -t a +t l , where t l is the transmission time from the X group to the Y group, i.e., the second time.

[0125] In an implementation of the present disclosure, when the y router receives the data packet forwarded from the X group, the y router returns the estimated remaining path time delay between the Y group and the Z group, and the remaining path time delay t between the group where the second router is located and the group where the next group hop router is located can be obtained by the following formula:

[0126]

[0127] where s is the next group hop of the Y group.

[0128] In an implementation of the present disclosure, based on the first estimated time delay, the first time, the second time, and the remaining path time delay, the first outer structure table of the group where the first router is located is updated, and the updated first outer structure table can be obtained by the following formula:

[0129]

[0130] wherein a is a learning rate of the outer structure table of the X group, is a first estimated delay of the X group in the outer structure table before updating, through the next hop router y, to reach the Z group. is a first estimated delay of the X group in the outer structure table before updating, through the next hop router y, to reach the Z group.

[0131] In an implementation of the present disclosure, after the sending of the data packet to the second router, the method further comprises:

[0132] obtaining a second estimated delay from the first router through the second router to the next hop router of the first router based on the first inner structure table of the first router;

[0133] obtaining a queuing delay of the data packet at the first router and a transmission delay of the data packet between the first router and the second router;

[0134] obtaining a third estimated delay between the second router and the next hop router;

[0135] updating the first inner structure table of the first router based on the second estimated delay, the queuing delay and the transmission delay, and the third estimated delay.

[0136] In an implementation of the present disclosure, since each router needs to maintain its own inner structure table, the inner structure table of the current router can be updated each time a data packet leaves the current router. Thus, when the data packet leaves the first router, the first inner structure table of the first router can be updated.

[0137] Exemplarily, taking the first router as an x router, the second router as a y router, and the next hop router as a z router as an example. x (z, y) represents a delay of the first inner structure table of the x router through the next hop y to reach the next hop router z; r x→y represents a sum of a queuing delay of the data packet at the x router and a transmission delay of the data packet between the x router and the y router. When the y router receives the data packet forwarded from the x router, the y router returns a delay estimation to reach the next hop router z, i.e., a third estimated delay.

[0138] In an implementation of the present disclosure, the first inner structure table of the first router is updated based on the second estimated delay, the queuing delay and the transmission delay, and the third estimated delay, and the updated first inner structure table can be obtained through the following formula:

[0139]

[0140] In an embodiment of the present disclosure, the formula above is

[0141]

[0142] wherein s is the adjacent router of the y router; β is the learning rate of the inner structure table; is the third estimated delay. is the second estimated delay of the first inner structure table of the x router before updating, when passing through the next hop y to reach the next group of hop routers z; is the third estimated delay.

[0143] It should be noted that, since the inner structure table and the outer structure table are updated based on different occasions, the update frequencies of the inner structure table and the outer structure table are different.

[0144] In an embodiment of the present disclosure, based on the Dragonfly network topology, we test the routing method provided by the present application, and the measured index is the average delay of the data packet from the starting point to the end point. For this purpose, the shortest path routing method in the related art mentioned above, the non-shortest path routing, the reinforcement learning strategy based on the Q table value, the reinforcement learning strategy mixed with the random strategy and the Q table, and the global routing provided by the present application are compared.

[0145] In the specific experiment, discrete-time simulation can be used to simulate the communication network. In the simulation network topology, there are 9 groups, each group has 4 node routers, each node router has 2 inter-group links, each group is fully connected, and there are a total of 36 node routers in the network. In the simulation environment, a Poisson process is used to generate data packets. The load of the network is the average number of data packets generated per unit time. The routing strategy is tested under three different traffic modes: UR, ADV+1, and ADV+4. Among them, UR is an average random mode, and the starting point and the end point of each data packet are randomly assigned; in the ADV+i traffic mode, the source router of the data packet is randomly generated from group G, and the end router is randomly generated in group G+i. It should be noted that the order in which each node router processes data packets is first-in, first-out, and there is no upper limit to the number of data packets that can be cached. Each node router can only process one packet per unit time.

[0146] The experimental results are shown in FIG. 1. Figure 3 As shown in FIG. 1, the average delay of the data packet under different network loads is shown. From Figure 3As can be seen in (a) of this disclosure, in the UR traffic mode, the performance of the routing algorithm provided in this disclosure embodiment is comparable to other algorithms (shortest route algorithm, Q-value table-based routing algorithm, and two-level Q-value table-based adaptive routing algorithm); while in the ADV+i traffic mode, the performance of the routing algorithm provided in this disclosure embodiment surpasses that of other algorithms.

[0147] In the UR traffic pattern, apart from the VAL algorithm, the other routing strategies perform similarly. Among them, the shortest path routing algorithm performs best, while all reinforcement learning algorithms perform slightly worse than the shortest path routing algorithm.

[0148] from Figure 3 As shown in (b) of the diagram, in the ADV+1 traffic mode, since the destination of each data packet is in the next group after its origin group, the shortest path routing algorithm will inevitably transmit data packets through the inter-group link connecting these two groups. This leads to congestion on the inter-group link connecting these two groups, resulting in the worst performance of the shortest path. VAL alleviates the congestion between the two groups by first transmitting the data packet to a random other group. The adaptive routing algorithm based on the two-level Q-value table and the routing algorithm provided in the embodiments of this disclosure both outperform other routing strategies for the following reasons: First, if a group contains a node that directly connects the origin group and the destination group of the data packet, then this intermediate group is defined as the better intermediate group; the total number of hops for the data packet is one less than that for the data packet when routing through the better intermediate group compared to not routing through the better intermediate group. This is because the data packet does not need to undergo another intra-group transmission in the better intermediate group to reach the destination group. Both the adaptive routing algorithm based on the two-level Q-value table and the routing algorithm provided in the embodiments of this disclosure can select the better intermediate group, so their total number of hops is less than that of VAL, which selects a random intermediate group, and their performance is better.

[0149] The routing algorithm provided in this embodiment outperforms the adaptive routing algorithm based on a two-level Q-value table because it can send data packets to a better intermediate group or a group directly connected to the source node router. Thus, the routing algorithm can select a larger number of intermediate groups, further alleviating congestion on links between groups. Furthermore, the routing algorithm can achieve these advantages without increasing the total hop count. If the data packet is sent to a better intermediate group, its total hop count is comparable to that of the adaptive routing algorithm based on a two-level Q-value table; however, if a group directly connected to the source node is selected as a better intermediate group, the data packet does not require an extra hop in the origin group. Therefore, the routing algorithm provided in this embodiment can distribute data packets more evenly without increasing the total hop count.

[0150] from Figure 3(c) in the ADV+4 traffic mode, as can be seen from the table, there is no optimal intermediate group in this traffic mode because none of the nodes is directly connected between the start group and the end group. This results in that the data packet needs to be transmitted in the intermediate group once in any case, so the routing algorithm provided by the embodiments of the present disclosure needs the same number of hops as the VAL based on the two-level Q value table. But both of them can select a relatively optimal intermediate group, for example, a group with smaller delay, so the routing algorithm provided by the embodiments of the present disclosure still slightly outperforms the VAL based on the two-level Q value table in the ADV+4 traffic mode.

[0151] In addition, under a varying network load, the routing algorithm provided by the embodiments of the present disclosure can quickly adapt to the change and make the average delay converge. As shown in Figure 4 Fig. 4 shows a schematic diagram of the change of the average delay of the data packet in the UR mode when the routing algorithm provided by the embodiments of the present disclosure is used under a varying network load. As shown in Figure 5 Fig. 5 shows a schematic diagram of the change of the average delay of the data packet in the ADV+1 mode when the routing algorithm provided by the embodiments of the present disclosure is used under a varying network load. As shown in Figure 4 and Figure 5 the horizontal axis is time and the vertical axis is the average delay of the data packet. In the UR mode and the ADV+1 mode, the network load starts at 4, and the load is increased to 10 at 10 seconds and reduced to 5 at 20 seconds. In this test environment, the routing algorithm provided by the embodiments of the present disclosure can always keep online learning the change of the network environment. From Figure 4 and Figure 5 it can be seen that the routing algorithm provided by the embodiments of the present disclosure can almost instantaneously adapt to the decrease of the network load from high load to low load, and it needs a learning time of 2-3 seconds when the network load increases from low load to high load. It can be seen that the routing algorithm provided by the embodiments of the present disclosure can quickly adapt to the change of the network load under different traffic modes.

[0152] Based on the above experiment, it can be known that the routing algorithm provided by the embodiments of the present disclosure can achieve optimal path planning through a large number of calculations to realize the lowest delay, and the algorithm provides an optimal solution under different traffic modes.

[0153] The present disclosure also discloses an electronic device, Figure 6 Fig. 1 shows a structural block diagram of an electronic device according to an embodiment of the present disclosure.

[0154] As shown in Figure 6 the electronic device comprises a memory and a processor, wherein the memory is configured to store one or more computer instructions, and the one or more computer instructions are executed by the processor to implement the method according to the embodiments of the present disclosure.

[0155] In a first aspect, a routing method based on a Dragonfly network is provided in the embodiments of the present disclosure. The method is applied to a first router belonging to the Dragonfly network. The method comprises the following steps of:

[0156] receiving a data packet;

[0157] determining a next-hop router between a group to which the first router belongs and a destination group of the data packet, the next-hop router being directly connected to one of the routers in the group to which the first router belongs;

[0158] obtaining a first inner-layer structure table of the first router, the first inner-layer structure table being used to reflect a time delay from a corresponding router via a next hop to a next-hop router of a group to which the corresponding router belongs;

[0159] determining a second router based on the first inner-layer structure table, the second router being located between the first router and the next-hop router, and the second router being directly connected to the first router;

[0160] sending the data packet to the second router.

[0161] In a possible implementation of the present disclosure, the determining of the next-hop router between the group to which the first router belongs and the destination group comprises the following steps of:

[0162] when the first router is a source router of the data packet, determining a candidate set, the candidate set comprising all next-hop routers directly connected to the first router and a next-hop router corresponding to a minimum time delay from the group to which the first router belongs to the destination group of the data packet;

[0163] matching a preset sampling probability with a sampling probability of the next-hop router in the candidate set, and determining the next-hop router between the group to which the first router belongs and the destination group in the candidate set according to a matching result.

[0164] In a possible implementation of the present disclosure, before the determining of the next-hop router between the group to which the first router belongs and the destination group, the method further comprises the following steps of:

[0165] obtaining a first outer-layer structure table of the group to which the first router belongs, the first outer-layer structure table being used to indicate a time delay from a group to which a corresponding router belongs via a next-hop router to the destination group of the data packet;

[0166] the determining of the next-hop router between the group to which the first router belongs and the destination group comprises the following steps of:

[0167] In a case where the group where the first router is located is a new group that is not a starting group, at least one third router directly connected to at least one router in the group where the first router is located is obtained based on the first outer structure table;

[0168] A third router corresponding to a shortest time delay when reaching the destination group from the group where the first router is located is obtained from the at least one third router;

[0169] The third router corresponding to the shortest time delay is taken as the next group hop router.

[0170] In a possible implementation of the present disclosure, the determining of the next group hop router located between the group where the first router is located and the destination group comprises:

[0171] In a case where the first router is a non-source router of the data packet and the first router is not a new group, the next group hop router located between the group where the first router is located and the destination group is determined.

[0172] In a possible implementation of the present disclosure, after the receiving of the data packet, the method further comprises:

[0173] In a case where the first router belongs to the destination group of the data packet, the data packet is sent to a target router in the destination group according to a shortest path strategy.

[0174] In a possible implementation of the present disclosure, the determining of the second router based on the first inner structure table comprises:

[0175] A plurality of routers directly connected to the first router are obtained;

[0176] A router corresponding to a shortest time delay when reaching the next group hop router from the first router is obtained from the plurality of routers based on the first inner structure table;

[0177] The router corresponding to the shortest time delay is determined as the second router.

[0178] In a possible implementation of the present disclosure, after the sending of the data packet to the second router, the method further comprises:

[0179] In a case where the second router and the first router belong to different groups, a first estimated time delay when reaching the destination group from the group where the first router is located through the next group hop router is obtained based on a first outer structure table of the group where the first router is located;

[0180] acquire a first time taken by the data packet to pass through a group where the first router is located, and acquire a second time taken by the data packet to pass from the group where the first router is located to the group where the second router is located;

[0181] acquire a residual path delay between the group where the second router is located and the group where the next-hop router is located;

[0182] update the first outer structure table of the group where the first router is located based on the first estimated delay, the first time and the second time, and the residual path delay.

[0183] In a possible implementation of the present disclosure, after the data packet is sent to the second router, the method further includes:

[0184] obtain a second estimated delay from the first router to the next-hop router of the first router via the second router based on the first inner structure table of the first router;

[0185] acquire a queuing delay of the data packet at the first router and a transmission delay of the data packet between the first router and the second router;

[0186] acquire a third estimated delay between the second router and the next-hop router;

[0187] update the first inner structure table of the first router based on the second estimated delay, the queuing delay and the transmission delay, and the third estimated delay.

[0188] Figure 7 A structural diagram of a computer system suitable for implementing the method according to an embodiment of the present disclosure is shown.

[0189] As shown in Figure 7 , the computer system includes a processing unit which can execute various methods in the above embodiments according to a program stored in a read-only memory (ROM) or a program loaded from a storage part into a random access memory (RAM). Various programs and data required for the operation of the computer system are also stored in the RAM. The processing unit, the ROM, and the RAM are connected to each other through a bus. An input / output (I / O) interface is also connected to the bus.

[0190] The following components are connected to the I / O interface: an input part including a keyboard, a mouse, etc.; an output part including a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker, etc.; a storage part including a hard disk, etc.; and a communication part including a network interface card such as a LAN card, a modem, etc. The communication part performs a communication process via a network such as the Internet. A drive is also connected to the I / O interface as necessary. A removable medium such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc. is mounted on the drive as necessary, so that a computer program read out therefrom is installed in the storage part as necessary. Among them, the processing unit can be implemented as a CPU, a GPU, a TPU, a FPGA, a NPU, etc.

[0191] In particular, the method described above can be implemented as a computer software program according to embodiments of the present disclosure. For example, embodiments of the present disclosure include a computer program product comprising a computer program tangibly embodied on a machine-readable medium, the computer program containing program code for executing the methods described above. In such embodiments, the computer program can be downloaded and installed from a network via the communication part, and / or installed from a removable medium.

[0192] The flow and block diagrams in the drawings show possible architectural, functional, and operational scenarios of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flow and block diagrams can represent a module, a segment, or a portion of code, which contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions noted in the blocks can occur out of the order noted in the figures. For example, two blocks noted in succession can in fact be executed substantially concurrently or in the reverse order, depending on the functionality involved. Also, it is noted that each block in the block diagrams and / or flow diagrams, and combinations of blocks in the block diagrams and / or flow diagrams, can be implemented by dedicated hardware-based systems that perform the specified functions or operations, or can be implemented by a combination of dedicated hardware and computer instructions.

[0193] The units or modules involved in the embodiments of the present disclosure can be implemented by software or by programmable hardware. The described units or modules can also be arranged in a processor, and the names of these units or modules do not constitute a limitation on the units or modules themselves in some cases.

[0194] As another aspect, the disclosure also provides a computer readable storage medium, which can be the computer readable storage medium contained in the electronic device or the computer system in the above embodiments; or can be a computer readable storage medium existing separately and not assembled into a device. The computer readable storage medium stores one or more programs used by one or more processors to execute the method described in the disclosure.

[0195] The above description is merely the preferred embodiments of the disclosure and the explanation of the principles of the applied technology. It should be understood by those skilled in the art that the inventive scope of the disclosure is not limited to the technical solutions formed by the specific combinations of the above technical features, and should also cover other technical solutions formed by the combinations of the above technical features or equivalent features without departing from the inventive concept. For example, the technical solutions formed by the mutual replacement of the above features and the technical features disclosed in the disclosure (but not limited to) having similar functions.

Claims

1. A routing method based on a Dragonfly network, characterized in that, The method is applied to a first router belonging to a Dragonfly network, and the method comprises: receiving a data packet; determining a next-hop router between a group to which the first router belongs and a destination group of the data packet, the next-hop router being directly connected to one of the routers in the group to which the first router belongs; detecting a current traffic mode of the first router, and obtaining a first inner-layer structure table corresponding to the detected traffic mode from a multi-layer structure table of the first router according to the detected traffic mode, the first inner-layer structure table being used to reflect a time delay from a corresponding router to the next-hop router of the group to which the corresponding router belongs, the multi-layer structure table of each router in the Dragonfly network being different under different traffic modes, and the multi-layer structure table comprising an inner-layer structure table and an outer-layer structure table; determining a second router based on the first inner-layer structure table, the second router being located between the first router and the next-hop router, and the second router being directly connected to the first router; sending the data packet to the second router.

2. The method of claim 1, wherein, The determining of the next-hop router between the group to which the first router belongs and the destination group comprises: when the first router is a source router of the data packet, determining a candidate set, the candidate set comprising all next-hop routers directly connected to the first router and a next-hop router corresponding to a minimum time delay from the group to which the first router belongs to the destination group of the data packet; matching a preset sampling probability with a sampling probability of the next-hop router in the candidate set, and determining the next-hop router between the group to which the first router belongs and the destination group in the candidate set according to a matching result.

3. The method of claim 1, wherein, Before the determining of the next-hop router between the group to which the first router belongs and the destination group, the method further comprises: obtaining a first outer-layer structure table of the group to which the first router belongs, the first outer-layer structure table being used to indicate a time delay from the group to which a corresponding router belongs to the destination group of the data packet through the next-hop router; The determining of the next-hop router between the group to which the first router belongs and the destination group comprises: when the group to which the first router belongs is a new group that is not a starting group, obtaining at least one third router directly connected to at least one router in the group to which the first router belongs based on the first outer-layer structure table; obtaining a third router corresponding to a minimum time delay from the group to which the first router belongs to the destination group from the at least one third router; taking the third router corresponding to the minimum time delay as the next-hop router.

4. The method of claim 1, wherein, The determining of the next-hop router between the group to which the first router belongs and the destination group comprises: when the first router is a non-source router of the data packet and the first router is not a new group, determining the next-hop router between the group to which the first router belongs and the destination group.

5. The method of claim 1, wherein, After receiving the data packet, the method further comprises: When the first router belongs to the destination group of the data packet, sending the data packet to a target router in the destination group according to a shortest path strategy.

6. The method of claim 1, wherein, The determining the second router based on the first inner-layer structure table comprises: Obtaining a plurality of routers directly connected to the first router; Based on the first inner-layer structure table, obtaining, from the plurality of routers, a router corresponding to a shortest time delay from the first router to the next group of hop routers; Determining the router corresponding to the shortest time delay as the second router.

7. The method of claim 1, wherein, After sending the data packet to the second router, the method further comprises: When the second router and the first router belong to different groups, obtaining, based on a first outer-layer structure table of the group where the first router is located, a first estimated time delay from the group where the first router is located to the destination group through the next group of hop routers; Obtaining a first time consumed by the data packet in the group where the first router is located, and obtaining a second time consumed by the data packet from the group where the first router is located to the group where the second router is located; Obtaining a residual path time delay between the group where the second router is located and the group where the next group of hop routers is located; Based on the first estimated time delay, the first time, the second time, and the residual path time delay, updating the first outer-layer structure table of the group where the first router is located.

8. The method of claim 1, wherein, After sending the data packet to the second router, the method further comprises: Based on the first inner-layer structure table of the first router, obtaining a second estimated time delay from the first router to the next group of hop routers of the first router through the second router; Obtaining a queuing time delay of the data packet in the first router and a transmission time delay of the data packet between the first router and the second router; Obtaining a third estimated time delay between the second router and the next group of hop routers; Based on the second estimated time delay, the queuing time delay, the transmission time delay, and the third estimated time delay, updating the first inner-layer structure table of the first router.

9. An electronic device, comprising: The computer program product comprises a memory and a processor; wherein the memory is configured to store one or more computer instructions; wherein the one or more computer instructions are executed by the processor to implement the method steps of any one of claims 1 to 8.

10. A computer readable storage medium having stored thereon computer instructions, wherein, The computer program product comprises a memory and a processor; wherein the memory is configured to store one or more computer instructions; wherein the one or more computer instructions are executed by the processor to implement the method steps of any one of claims 1 to 8. The computer program product comprises a memory and a processor; wherein the memory is configured to store one or more computer instructions; wherein the one or more computer instructions are executed by the processor to implement the method steps of any one of claims 1 to 8.