This technique relates to a topology of a network and a routing technique.
When it is attempted to shorten the latency between nodes (for example, processors) in an information processing system, it is effective to use a fully coupled network that connects all of the nodes by Point-to-Point. The fully coupled network is a network such as illustrated in
Therefore, in a large-scale network, with the intention to reduce the number of physical channels, a network having a link structure, such as a Hyper Cube type network, may be used. A Hyper Cube type network is a network such as illustrated in
Incidentally, the Deterministic Routing that is used for Hyper Cube type network is typically e-cube routing. The e-cube routing is also called dimension order routing, and by performing the routing such that channels are used in order from channels in a dimensional direction having the highest priority, data is transferred to a destination node from the transmitting node. The e-cube routing can be achieved by relatively simple logical circuits, so the nodes do not need to have a routing table for storing routing information. Moreover, in the case of an interconnected Hyper Cube type network, a deadlock free state in the e-cube routing is assured, so a virtual channel mechanism that is considered in the case of a torus type network is not necessary.
However, common problems in networks having a link structure are the appearance of long-distance links and an increase in the average number of hops as the scale of the network increases. These problems cause a lengthening of latency and become the cause of worsening processing performance.
In regards to such kinds of problems, there is a technique for transferring data between nodes across clusters by connecting to nodes in other clusters by adding one connecting line to each node in a Hyper Cube network having eight nodes (cluster).
Moreover, there is a technique for forming a group of PEs (Processing Elements) by adding bypass links between PEs having the greatest distance between the PEs in a Hyper Cube network.
However, in these techniques, it was not possible to sufficiently improve the communication efficiency in a Hyper Cube type network.
In other words, there is no effective technique for improving the communication efficiency in the hyper cube type network.
An information processing system relating to a first aspect of embodiments includes: 2n nodes that are connected in a manner of an n-dimensional hyper cube, wherein the n is a natural number equal to or greater than 3. A channel is provided between each node of specific nodes satisfying a predetermined condition among the 2n nodes and each of the specific nodes other than the node. The predetermined condition is a condition that all numerical values of digits other than a last digit and a second last digit of a node number are same, in case where an n-digit binary node number is assigned to each of the 2n nodes so that a Hamming distance between directly connected nodes is 1.
A routing method relating to a second aspect of the embodiments is executed by a first node of 2n nodes included in an information processing system, wherein the 2n nodes are connected in a manner of an n-dimensional hyper cube, the n is a natural number equal to or greater than 3, a channel is provided between each node of specific nodes satisfying a first condition among the 2n nodes and each of the specific nodes other than the node, and the first condition is a condition that all numerical values of digits other than a last digit and a second last digit of a node number are same, in case where an n-digit binary node number is assigned to each of the 2n nodes so that a Hamming distance between directly connected nodes is 1. Moreover, this routing method includes (A) when data is transmitted to a destination node, determining whether or not a second condition is satisfied, wherein the second condition is a condition that a numerical value of a last digit of a node number of the first node is different from a numerical value of a last digit of a node number of a destination node, and a numerical value of a second last digit of the node number of the first node is different from a numerical value of a second last digit of the node number of the destination node; and (B) in response to determining that the second condition is satisfied, transmitting data to be transmitted to the destination node to a second node through a channel provided between the first node and the second node, wherein the second node has a node number whose numerical value of a last digit is an inverted numerical value of the numerical value of the last digit of the node number of the first node, whose numerical value of a second last digit is an inverted numerical value of the numerical value of the second last digit of the node number of the first node, and whose numerical values of digits other than the last digit and the second last digit are same as numerical values of digits other than the last digit and the second last digit of the node number of the first node.
The object and advantages of the embodiment will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the embodiment, as claimed.
First, the shape of the network relating to this embodiment will be explained. The shape of the network relating to this embodiment is a subspecies cube shape, which uses the interconnected hyper cube type network as the basic structure. Hereafter, the network relating to this embodiment will be called a “SSP Cube type network”. Here, SSP is an abbreviation for “Subspecies”.
For example, the basic structure of an 8-node SSP Cube type network is a 3-dimensional Hyper Cube type network such as illustrated in
Moreover, for each node, an output channel having a channel number “Cdk” is provided for each dimension d, and through these channels, the nodes are connected to other nodes. Here, d represents the dimension number, and k represents the node number. For example, a node whose node number is “000” connects to the node whose node number is “001” byway of an output channel whose channel number is “1000”, connects to the node whose node number is “010” by way of an output channel whose channel number is “2000”, and connects to the node whose node number is “100” by way of an output channel whose channel number is “3000”. To make the figure easier to view, a “C” is attached to channel numbers.
A SSP Cube type network having 8 nodes is obtained by further adding channels to the 3-dimensional Hyper Cube type network that is illustrated in
When output channels are added in this way, each node in a group of four nodes whose numerical values of digits other than the last digit and second last digit of the node numbers are the same also has output channels for all of the other nodes in the same group. In other words, each surface in one set of opposing surfaces in an 8-node cube becomes a fully coupled network, and multi-area structure is achieved. Therefore, a SSP Cube type network cannot be constructed unless there are at least 8 nodes, and a condition for the number of nodes 2m (m is a natural number 3 or greater) is required.
Moreover, even in the case of the 16-node SSP Cube type network, each node in a group of four nodes whose digits other than the last digit and second last digit have the same numerical values have output channels to all of the other nodes in the same group. In other words, one set of opposing surfaces in an 8-node cube forms a fully coupled network, and multi-area structure is achieved.
In the examples described above, 8-node and 16-node SSP Cube type networks were explained, however, as long as the number of nodes is 2m (m is a natural number 3 or greater), it is possible to construct a SSP Cube type network.
Next, the routing processing that is performed in a SSP Cube type network will be explained.
Next,
First, the determination unit 12 reads data from the memory 11, which is to be transmitted to the destination node, compares the node number of the destination node, which is given to that data with the node number of node 1, and determines whether both the last digits and the second last digits in the node numbers are different (
Then, when it is determined that “Ni[1]≠Nj[1]Ni[0]≠Ni[0]” is satisfied (step S1: YES route), the determination unit 12 determines, as the channel number Cp of the passage channel, a channel number where the numerical value of the most significant digit is n+1, and the numerical values of digits other than the most significant digit are the same as the node number of node 1 (step S3). In other words, Cp={Cp[n]=n+1, Cp[n−1]=Ni[n−1], . . . , Cp[1]=Ni[1], Cp[0]=Ni[0]} is obtained.
The determination unit 12 determines, as the node number Nr of the routed node, the node number in which the numerical value of the last one digit is the inverted value of the last digit of the node number of node 1, and the numerical value of the second last digit is the inverted value of the second last digit of the node number of node 1, and the values of the digits other than the last digit and second last digit are the same as the values of the digits other than the last digit and second last digit of the node number of node 1 (step S5). In other words, Nr={Nr[n−1]=Ni[n−1], Nr[n−2]=Ni[n−2], . . . , Nr[1]=Ni[1], Nr[0]=Ni[0]} is obtained.
The communication unit 13 then transmits the data to be transmitted to the destination node to the routed node that was determined at the step S5 by way of the passage channel that was determined at the step S3 (step S19).
On the other hand, when it was determined at the step S1 that “Ni[1]≠Nj[1]Ni[0]≠Nj[0]” is not satisfied (step S1: NO route), the determination unit 12 defines x with the initialization equation x=n−1, and the re-initialization equation x=x−1 (step S7). In other words, when x is already defined, x is redefined as x=x−1, and when x has not yet been defined, x is defined as x=n−1.
The determination unit 12 then determines whether x≧0 is satisfied (step S9). When it is determined that x≧0 is not satisfied (step S9: NO route), the processing ends.
However, when it is determined that x≧0 (step S9: YES route), the determination unit 12 determines whether the numerical value of x-th bit in the node number of node 1 is different than the x-th bit number in the node number of the destination node (step S11). In other words, it is determined whether or not Ni[x]≠Nj[x] is satisfied.
When it is determined that Ni[x]≠Nj[x] is not satisfied, or in other words, when it is determined that Ni[x]=Nj[x] (step S11: NO route), the processing returns to the step S7 in order to perform the processing for the next digit.
On the other hand, when it is determined that Ni[x]≠Nj[x] is satisfied (step S11: YES route), the determination unit 12 determines, as the channel number Cp of the passage channel, a channel number in which the numerical value of the most significant digit is x+1, and the numerical values of the digits other than the most significant digit are the same as those of the node number of node 1 (step S13). In other words, Cp={Cp[n]=x+1, Cp[n−1]=Ni[n−1], . . . , Cp[1]=Ni[1], Cp[0]=Ni[0]} is obtained.
Moreover, the determination unit 12 determines, as the node number Nr of the routed node, the same number as the node number of node 1 (step S15). In other words, Nr={Nr[n−1]=Nr[n−1], Nr[n−2]=Ni[n−2], . . . , Nr[1]=Ni[1], Nr[0]=Nr[0]} is obtained. Furthermore, the determination unit 12 inverts the value of the x-th bit of the node number of the routed node that was determined at the step S15 (step S17). In other words, Nr[x]=Nr[x] is obtained.
The communication unit 13 then transmits the data to be transmitted to the destination node to the routed node that was determined at the steps S15 and S17 by way of the passage channel that was determined at the step S13 (step S19). The processing then ends.
Here, the routing processing that was explained above will be explained using a simple detailed example. Here, the case of transferring data from the node whose node number is “000” to the node whose node number is “111” in the SSP Cube type network illustrated in
First, at the step S1, the node whose node number is “000” (hereafter, this will be expressed as N000, and will be the same for the other nodes as well), compares the node number of N000 with the node number of the destination node, and determines whether the numerical values of both the last digits and second last digits of the node numbers are different. Here, it is determined that the numerical values of both the last digits and second last digits are different.
Then at the step S3, the node N000 determines, as the number of the passage channel, “4000”, and at the step S5, determines, as the node number of the routed node, “011”. Then at the step S19, the node N000 transmits data to the node N011 by way of the channel whose channel number is “4000”.
On the other hand, when receiving data from the node N000, at the step S1, the node N011 compares the node number of the node N011 with the node number of the destination node, and determines whether the numerical values of both the last digits and second last digits of the node numbers are different. Here, the numerical values of both the last digits and the second last digits of the node numbers are the same. Therefore, at the step S7, x is defined as x=3−1=2, and after passing along the YES route at the step S9, it is determined at the step S11, whether the Ni[2] in the node number of the node N011 is different from the Nj[2] in the node number of the destination node. Here, it is determined that the values are different.
Then, at the step S13, the node N011 determines, as the channel number of the passage channel, “3011”, and, at the steps S15 and S17, determines, as the node number of the routed node, “111”. Then, at the step S19, the node N011 transmits data to the node N111 by way of the channel whose channel number is “3011”.
On the other hand, when receiving data from the node N011, at the step S1 the node N111 compares the node number of the node N111 with the destination node number, and determines whether the numerical values of both the last digits and second last digits of the node numbers are different. Here, the numerical values of both the last digits and second last digits of the node numbers are the same. Therefore, at the step S7, x is defined as x=3−1=2, and then after passing through the YES route at the step S9, it is determined at the step S11, whether the Ni[2] in the node number of the node N111 is different than the Nj[2] of the destination node number. Here, it is determined that the bits are the same and the transmitted data has reached the destination node, so the processing ends.
It is possible for a SSP Cube type network such as described above to reduce the total number of channels when compared with a fully coupled network.
Even when compared with a Hyper Cube type network in which the e-cube routing is applied, the SSP Cube type network is advantageous in terms of communication efficiency. For example, as illustrated in
Furthermore, in comparison with a Hyper Cube type network, a SSP Cube type network has an advantage in the easing and dispersion of traffic in the network. For example, when each of the nodes performs communication with all of the other nodes in a network, 512 channels are used in a 4-dimensional Hyper Cube type network, however, in a 16-node SSP Cube type network, this number is kept to only 448 channels. In other words, together with being able to improve the effective latency, it is also possible to improve the total throughput. As a result, it is possible to maintain the throughput even though there is a drop in channel performance, so the total cost becomes lower than in the case of a Hyper Cube type network. Moreover, when comparing broadcasting in the Hyper Cube type network illustrated in
Next, the deadlock free state will be considered.
Typically, except a network in which all of the nodes are interconnected, measures must be taken to prevent the occurrence of a deadlock state in which channels are fully used. In order to verify that deadlock free routing is being performed, a channel dependency graph is created, and it is represented that circulation does not occur in the channel dependency graph.
For example, in the case of a network such as that illustrated in the interconnection graph in
Therefore, an output channel is added as illustrated in the interconnection graph in
Therefore, even in a SSP Cube type network, by representing that there is no circulation in the channel dependency graph, it is verified that deadlock free routing is performed.
A characteristic of a SSP Cube type network is that when building a network it is possible to determine node numbers to be assigned to nodes, and channel numbers to be assigned to channels. In addition, the routing in a SSP Cube type network is the dimension order routing in which data is transferred from a transmitting node to a destination node by using a channel in descending order of the channel number. Therefore, when drawing a channel dependency graph, there is no circulation at all between channels. As a result, it can be verified that deadlock free routing is performed.
Next, an application example of a SSP Cube type network will be explained.
In actual, how node numbers will be assigned depends on requirements and rules of a computer system, however, using the configuration such as described above is effective in making it possible to particularly improve the communication efficiency on a system board. This is because each CPU can access a DIMM (Dual Inline Memory Module) that is subordinated to another CPU on the same system board in one hop. This is advantageous in the case of parallel processing in each area to execute a single application on one system board, and when compared to using a fully coupled network, it is possible to greatly reduce the amount of physical wiring lines.
Although one embodiment of this technique was explained, this technique is not limited to this embodiment. For example, the functional block diagram of the aforementioned processor 1 may not correspond to actual program module configuration.
Moreover, as for the processing flow described above, as long as the processing result does not change, the order of the processing steps may be changed. Furthermore, the parallel execution of the plural processing steps may be carried out.
The aforementioned embodiment is outlined as follows:
An information processing system relating to a first aspect of the embodiments has 2n nodes that are connected in a manner of an n-dimensional hyper cube, wherein the n is a natural number equal to or greater than 3. Then, a channel is provided between each node of specific nodes satisfying a predetermined condition among the 2n nodes and each of the specific nodes other than the node, and the predetermined condition is a condition that all numerical values of digits other than a last digit and a second last digit of anode number are same, in case where an n-digit binary node number is assigned to each of the 2n nodes so that a Hamming distance between directly connected nodes is 1.
According to this configuration, compared with a conventional hyper cube type information processing system, it becomes possible to enhance the communication efficiency while effectively reducing the average number of hops and/or the maximum number of hops, without largely increasing the number of channels.
A routing method relating to a second aspect of the embodiments is executed by a first node of 2n nodes included in an information processing system, wherein the 2n nodes are connected in a manner of an n-dimensional hyper cube, the n is a natural number equal to or greater than 3, a channel is provided between each node of specific nodes satisfying a first condition among the 2n nodes and each of the specific nodes other than the node, and the first condition is a condition that all numerical values of digits other than a last digit and a second last digit of a node number are same, in case where an n-digit binary node number is assigned to each of the 2r nodes so that a Hamming distance between directly connected nodes is 1. Moreover, this routing method includes (A) when data is transmitted to a destination node, determining whether or not a second condition is satisfied, wherein the second condition is a condition that a numerical value of a last digit of a node number of the first node is different from a numerical value of a last digit of a node number of a destination node, and a numerical value of a second last digit of the node number of the first node is different from a numerical value of a second last digit of the node number of the destination node; and (B) in response to determining that the second condition is satisfied, transmitting data to be transmitted to the destination node to a second node through a channel provided between the first node and the second node, wherein the second node has a node number whose numerical value of a last digit is an inverted numerical value of the numerical value of the last digit of the node number of the first node, whose numerical value of a second last digit is an inverted numerical value of the numerical value of the second last digit of the node number of the first node, and whose numerical values of digits other than the last digit and the second last digit are same as numerical values of digits other than the last digit and the second last digit of the node number of the first node.
According to this configuration, compared with the routing (e.g. e-cube routing) in the conventional hyper cube type information processing system, it becomes possible to transfer data to the destination node with a less number of hops.
Moreover, the aforementioned method may further include: (C) in response to determining that the second condition is not satisfied, comparing the node number of the first node with the node number of the destination node digit-by-digit in sequence from a most significant digit to identify a first digit whose numerical values are firstly found to be different; and (D) transmitting the data to be transmitted to the destination node to a node to which a node number whose numerical value of the first digit is inverted in the node number of the first node is assigned. Thus, it is possible to carry out the routing so that the data reaches the destination node with the least number of hops.
Incidentally, it is possible to create a program causing a hardware (e.g. processor) to execute the aforementioned processing, and such a program is stored in a computer readable storage medium or storage device such as a flexible disk, CD-ROM, DVD-ROM, magneto-optic disk, a semiconductor memory, and hard disk. In addition, the intermediate processing result is temporarily stored in a storage device such as a main memory or the like.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present inventions have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
This application is a continuing application, filed under 35 U.S.C. section 111(a), of International Application PCT/JP2010 /069214 filed on Oct. 28, 2010.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2010/069214 | Oct 2010 | US |
Child | 13862858 | US |