12.07.2015 Views

Fault-tolerant Routing in Metacube - CiteSeerX

Fault-tolerant Routing in Metacube - CiteSeerX

Fault-tolerant Routing in Metacube - CiteSeerX

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Third International Conference on Parallel and Distributed Comput<strong>in</strong>g, Applications and Technologies, Kanazawa, Japan, September 2002, pp.343–350<strong>Fault</strong>-<strong>tolerant</strong> <strong>Rout<strong>in</strong>g</strong> <strong>in</strong> <strong>Metacube</strong>Yam<strong>in</strong> Li, Shietung PengDepartment of Computer ScienceHosei UniversityTokyo 184-8584 Japan{yam<strong>in</strong>,speng}@k.hosei.ac.jpWanm<strong>in</strong>g ChuDepartment of Computer HardwareUniversity of AizuAizu-Wakamatsu 965-8580 Japanw-chu@u-aizu.ac.jpAbstractA new <strong>in</strong>terconnection network with low-degree for verylarge parallel computers called metacube (MC) has been<strong>in</strong>troduced recently. The MC network has short diametersimilar to that of the hypercube. However, the degree of anMC network is much lower than that of a hypercube of thesame size. More than one hundred of millions of nodes canbe connected by an MC network with up to 6 l<strong>in</strong>ks per node.The MC network has 2-level cube structure. An MC(k,m)network that connects 2 m2k +k nodes with m + k l<strong>in</strong>ks pernode has two parameters, k and m, where k is the dimensionof the high-level cubes (classes) and m is the dimensionof the low-level cubes (clusters). In this paper, we givean efficient algorithm for fault-<strong>tolerant</strong> rout<strong>in</strong>g <strong>in</strong> MC networks.The fault-<strong>tolerant</strong> rout<strong>in</strong>g problem <strong>in</strong> MC(k,m) issolved through a special structure <strong>in</strong> an MC network, calledmulti-channel cube. In order to construct k disjo<strong>in</strong>t pathsfor each node pair <strong>in</strong> a multi-channel cube, an <strong>in</strong>novativetechnique, called signature, is <strong>in</strong>troduced.1. IntroductionThe hypercube has been widely used as the <strong>in</strong>terconnectionnetwork <strong>in</strong> a wide variety of parallel systems such asIntel iPSC [12], the nCUBE [5], the Connection Mach<strong>in</strong>eCM-2 [11], and SGI Orig<strong>in</strong> 2000 [10]. An n-dimensionalhypercube (n-cube) conta<strong>in</strong>s 2 n nodes and has n edges pernode. If unique n-bit b<strong>in</strong>ary addresses are assigned to thenodes of an n-cube, then an edge connects two nodes if andonly if their b<strong>in</strong>ary addresses differ <strong>in</strong> a s<strong>in</strong>gle bit. Becauseof its elegant topological properties and the ability to emulatea wide variety of other frequently used networks, thehypercube has been one of the most popular <strong>in</strong>terconnectionnetworks for parallel computer systems.However, the number of edges per node <strong>in</strong>creases logarithmicallyas the total number of nodes <strong>in</strong> the hypercube<strong>in</strong>creases. Currently, the practical number of l<strong>in</strong>ks is limitedto about eight per node [10]. If one node has one processor,the total number of processors <strong>in</strong> a parallel system with ann-cube connection is restricted to several hundreds. Therefore,it is <strong>in</strong>terest<strong>in</strong>g to develop an <strong>in</strong>terconnection networkwhich will l<strong>in</strong>k a large number of nodes with a small numberof l<strong>in</strong>ks per node while reta<strong>in</strong><strong>in</strong>g the hypercube’s topologicalproperties.Several variations of the hypercube have been proposed<strong>in</strong> the literature. Some variations focused on reduction ofthe hypercube diameter, for example the folded hypercube[1] and crossed cube [2]; some focused on reduction ofthe number of edges of the hypercube, for example cubeconnectedcycles [9] and reduced hypercube [13]; and somefocused on both, as <strong>in</strong> the hierarchical cubic network [3].One major property of the hypercube is: there is an edgebetween two nodes only if their b<strong>in</strong>ary addresses differ <strong>in</strong> as<strong>in</strong>gle bit. This property is at the core of many algorithmicdesigns for efficient rout<strong>in</strong>g and communication <strong>in</strong> hypercubes.In this paper, we refer to it as the key property. Generally,variations of the hypercube that reduce the diameter,e.g. crossed cube and hierarchical cubic network, will notsatisfy this key property.Recently, Y. Li et al. <strong>in</strong>troduced a new <strong>in</strong>terconnectionnetwork, called metacube, or MC network [8]. The MCnetwork shares many desirable properties of the hypercube(e.g., the key property of the hypercube, low diameter etc.)and can be used as an <strong>in</strong>terconnection network for a parallelcomputer system of almost unlimited size with just a smallnumber of l<strong>in</strong>ks per node. For example, an MC(2,3) with5 l<strong>in</strong>ks per node has 16384 nodes and an MC(3,3) with 6l<strong>in</strong>ks per node has 2 27 = 134,217,728 nodes. The numberof nodes connected by the MC is much larger than that ofthe HCN or the RH with the same amount of l<strong>in</strong>ks per node.The CCC uses only 3 l<strong>in</strong>ks per node. However, because ofits r<strong>in</strong>g structure, the diameter or the length of the rout<strong>in</strong>gpath <strong>in</strong> CCC is about twice of that of the hypercube. Comparedwith the CCC, the MC has shorter diameter, length ofthe rout<strong>in</strong>g path, and the broadcast<strong>in</strong>g time.In this paper, we give efficient an algorithm for fault-343


<strong>tolerant</strong> rout<strong>in</strong>g <strong>in</strong> metacube. The rema<strong>in</strong>der of this paper isorganized as follows. Section 2 <strong>in</strong>troduces the MC networkand its topological properties. Section 3 gives the rout<strong>in</strong>g algorithm<strong>in</strong> metacube. Section 4 <strong>in</strong>troduces a multi-channelcube structure which is used for fault-<strong>tolerant</strong> rout<strong>in</strong>g <strong>in</strong> themetacube. Sections 5 gives the fault-<strong>tolerant</strong> rout<strong>in</strong>g algorithm.Section 6 concludes the paper and presents somefuture research directions.2. Prelim<strong>in</strong>ariesThis section formally <strong>in</strong>troduces the MC network, itstopological properties and some related notation. The MCnetwork is motivated by the dual-cube network proposed byLi and Peng [6] [7] that mitigates the port limitation problem<strong>in</strong> the hypercube network so that the number of nodes<strong>in</strong> the network is much larger than that of the hypercubewith a fixed amount of l<strong>in</strong>k per node. The MC network <strong>in</strong>cludesthe dual-cube as a special case. An MC network hasa 2-level cube structure: high-level cubes represented bythe leftmost k bits of the b<strong>in</strong>ary address of the node whichconta<strong>in</strong>s m2 k + k bits (these k bits serve as a class <strong>in</strong>dicator),and low-level cubes, called clusters that form the basiccomponents <strong>in</strong> the network, represented by the m bits of therema<strong>in</strong> m2 k bits, which occupy the different portions <strong>in</strong> them2 k bits for different classes.More specifically, there are two parameters <strong>in</strong> an MCnetwork, k and m. An MC(k,m) conta<strong>in</strong>s h = 2 k classes.Each class conta<strong>in</strong>s 2 m(h−1) clusters, and each cluster conta<strong>in</strong>s2 m nodes. Therefore, an MC(k,m) uses mh + k b<strong>in</strong>arybits to identify a node and the total number of nodesis 2 n where n = mh + k. The value of k affects stronglythe growth rate of the size of the network. An MC(1,m)conta<strong>in</strong><strong>in</strong>g 2 2m+1 nodes is called a dual-cube. Similarly, anMC(2,m), an MC(3,m) and an MC(4,m) conta<strong>in</strong><strong>in</strong>g 2 4m+2nodes, 2 8m+3 nodes and 2 16m+4 nodes are called quad-cube,oct-cube and hex-cube, respectively. S<strong>in</strong>ce an MC(3,3) conta<strong>in</strong>s2 27 nodes, the oct-cube is sufficient to construct practicallyparallel computers of very large size. The hex-cubeis of theoretical <strong>in</strong>terest only. Note that an MC(0,m) is ahypercube.A node <strong>in</strong> an MC(k,m) can be uniquely identified bya (mh + k)-bit b<strong>in</strong>ary number. The leftmost k-bit b<strong>in</strong>arynumber def<strong>in</strong>es a class of the node (class_id). There areh classes. In each class, there are 2 mh nodes and each nodeis represented by a mh-bit b<strong>in</strong>ary number. 2 m nodes of thesame class form a cluster. Therefore, there are 2 m(h−1) clusters<strong>in</strong> each class. An m-bit b<strong>in</strong>ary number, located <strong>in</strong> aspecial portion of the mh-bit (will be expla<strong>in</strong>ed <strong>in</strong> the nextparagraph) identifies a node with<strong>in</strong> the cluster (node_id).Therefore, the (mh + k)-bit node address <strong>in</strong> an MC(k,m) isdivided <strong>in</strong>to three parts: a k-bit class_id, an m(h − 1)-bitcluster_id and an m-bit node_id.In the follow<strong>in</strong>g discussion, we use u = (c u ,M u [h −1],...,M u [1],M u [0]) to denote the address of node u,where c u is a k-bit b<strong>in</strong>ary number and M u [i], 0 ≤ i ≤h − 1 are m-bit b<strong>in</strong>ary numbers. Let class_id(u) =c u , node_id(u) = M u [c u ] × 2 c uand cluster_id(u) =∑ h−1i=0 M u[i] × 2 i − node_id(u). The mh-bit numbernode_id(u) + cluster_id(u) is a unique identifier of nodeu <strong>in</strong> class c u . For example, u = 0100111000 <strong>in</strong> an MC(2,2)is denoted as node 56 of class 1 and node set (48,52,56,60)<strong>in</strong> class 1 forms a cluster with cluster_id = 48.The l<strong>in</strong>ks of an MC(k,m) is constructed <strong>in</strong> the follow<strong>in</strong>gmanner. The m-bit field M[c] <strong>in</strong> the address of a nodeof class c forms a low-level m-cube with m l<strong>in</strong>ks, namelycube-edges. These low-level m-cubes are called clusters.A cluster conta<strong>in</strong><strong>in</strong>g node u is denoted as C u . The l<strong>in</strong>ksthat connect nodes among clusters are called cross-edgesand are def<strong>in</strong>ed as follow<strong>in</strong>g. For any two nodes whose addressesdiffer only <strong>in</strong> a bit position <strong>in</strong> the class field, thereis a cross-edge connect<strong>in</strong>g these two nodes. That is, the k-bit field c forms a high-level k-cube which connects thosenodes whose addresses except class field are the same.00000000100100001010080000100011010010101110000110001001011010021010011100101101111010001110011001111011131010111101101111111100100001100110001110class 0 class 1class 0Figure 1. A metacube MC(1,2)The addresses of two nodes connected by a cross-edgediffer only on one bit position with<strong>in</strong> the k-bit class field andthere is no direct connection among the clusters of the sameclass. Therefore, a node <strong>in</strong> an MC(k,m) has m + k l<strong>in</strong>ks: ml<strong>in</strong>ks construct an m-cube cluster and k l<strong>in</strong>ks construct a k-cube. For example, the neighbors <strong>in</strong> the cluster of the nodewith address (01,111,101,110,000) <strong>in</strong> an MC(2,3) haveaddresses (01,111,101,111,000), (01,111,101,100,000) and(01,111,101,010,000). The underl<strong>in</strong>ed bits are those thatdiffer from the correspond<strong>in</strong>g bits <strong>in</strong> the address of the referencednode. The two neighbors <strong>in</strong> the high-level cube are(00,111,101,110,000) and (11,111,101,110,000).Fig. 1 shows the structure of an MC(1,2), where the clusteris a 2-cube and there are two classes. Each node has a41200101001110110101111344


0 14 50 41 52 36 78 129 138 912 132 63 710 1114 1510 1411 15252 253class 0 class 1254 255243 247251 2550 161 170 641 6532 4833 49128 192129 1932 183 192 663 6734 5035 51130 194131 195207 223class 2 class 3239 25563 127191 255Figure 2. A metacube MC(2,2)cross-edge attached to a node of the different class. The b<strong>in</strong>arynumber shown <strong>in</strong> the center of a cluster is cluster_id.Fig. 2 shows the structure of an MC(2,2), where the clusters<strong>in</strong> the same square are of the same class. The decimalnumbers are node_id + cluster_id. In Fig. 2, there are2 2(22 −1) = 64 clusters <strong>in</strong> each square and each cluster is a2-cube. The figure shows only 4 high-level cubes, each ofwhich conta<strong>in</strong>s a dist<strong>in</strong>ct node <strong>in</strong> the cluster 0 of the class 0.The ratio of the total number of l<strong>in</strong>ks <strong>in</strong> the hypercubeto the total number of l<strong>in</strong>ks <strong>in</strong> the MC network is equal ton/(m + k), where n = m2 k + k. For example, for k = 2 andm = 3 (n = 14), each of the two networks conta<strong>in</strong>s 16384nodes; the hypercube conta<strong>in</strong>s 16384 × 14/2 = 114688l<strong>in</strong>ks and the MC network conta<strong>in</strong>s 16384 × (3 + 2)/2 =40960 l<strong>in</strong>ks. The reduction <strong>in</strong> the total number of l<strong>in</strong>ks forthis example is 73728 l<strong>in</strong>ks or about 64%.3. Po<strong>in</strong>t-to-po<strong>in</strong>t rout<strong>in</strong>g <strong>in</strong> metacubeThe problem of f<strong>in</strong>d<strong>in</strong>g a path from a source node s toa dest<strong>in</strong>ation node t, and forward<strong>in</strong>g messages along thepath is known as the po<strong>in</strong>t-to-po<strong>in</strong>t rout<strong>in</strong>g problem. It isthe basic problem for any <strong>in</strong>terconnection network. In thissection, we describe briefly the po<strong>in</strong>t-to-po<strong>in</strong>t rout<strong>in</strong>g algorithm<strong>in</strong> metacube [8]. This algorithm is the build<strong>in</strong>g blockfor the proposed fault-<strong>tolerant</strong> rout<strong>in</strong>g algorithm.We adopt the follow<strong>in</strong>g notation. In the metacubeMC(k,m), each node has m + k neighbors. Let s (i) , 0 ≤i ≤ k − 1, be the ith dimensional neighbor of node s with<strong>in</strong>the k-cube, that is, the addresses of s and s (i) differ <strong>in</strong> theith bit position (the rightmost bit is the 0th bit) <strong>in</strong> the classfield c. Let s (i+k) , 0 ≤ i ≤ m − 1, be the ith dimensionalneighbor of node s <strong>in</strong> the m-cube, that is, the addresses of s345


and s (i+k) differ <strong>in</strong> the ith bit position <strong>in</strong> the field M[c]. Lets (i, j) = (s (i) ) ( j) for 0 ≤ i, j ≤ m + k − 1. We use (u → v) todenote a path from node u to node v. If the length of a path(u → v) is 1 (through a s<strong>in</strong>gle edge), the path is denoted as(u : v), and the edge is denoted as (u,v).In a graph G = (V,E) where V is the set of all vertices(nodes) and E is the set of all edges <strong>in</strong> G, let P ′ = (v 0 →v h−1 ) = (v 0 : v 1 : ... : v h−1 ) be a path from node v 0 to nodev h−1 , where v i ∈ V for 0 ≤ i ≤ h−1 and edge (v j−1 ,v j ) ∈ Efor 1 ≤ j ≤ h − 1. We say P ′ is a hamiltonian path if (1) P ′conta<strong>in</strong>s every node <strong>in</strong> V and (2) nodes v i (0 ≤ i ≤ h−1) areall dist<strong>in</strong>ct. Let P = (v 0 → v h ) = (P ′ : v h ), where v h = v i , fori = 0,1,..., or h − 2. If v h = v 0 , then P becomes a hamiltoniancycle 1 ; otherwise, we call P an extended-hamiltonianpath. The length of a hamiltonian path <strong>in</strong> a k-cube is2 k − 1; the length of a hamiltonian cycle or an extendedhamiltonianpath is 2 k . Let a weak-hamiltonian path bea hamiltonian path, a hamiltonian cycle, or an extendedhamiltonianpath. It was shown <strong>in</strong> [8] that given any twonodes s and t <strong>in</strong> an n-cube, there exists a weak-hamiltonianpath from s to t.For each node u <strong>in</strong> the k-cube, let next(u) be the nodenext to u <strong>in</strong> the weak-hamiltonian path from c s to c t . Let thenode addresses of s and t be (c s ,M s [h−1],...,M s [1],M s [0])and (c t ,M t [h − 1],...,M t [1],M t [0]), respectively. For therout<strong>in</strong>g with<strong>in</strong> an m-cube of class c, we can follow the ascend<strong>in</strong>grout<strong>in</strong>g strategy, by which the least significant nonzerobit of (M s [c] ⊕ M t [c]) is chosen as the first dimensionfor rout<strong>in</strong>g, and so on. The rout<strong>in</strong>g algorithm <strong>in</strong> an MC(k,m)is given below. The Loop will term<strong>in</strong>ate when the breakis executed. Notice that the details of rout<strong>in</strong>g <strong>in</strong> the m-cubeis omitted <strong>in</strong> the algorithm.Algorithm 1 (One_To_One_<strong>Rout<strong>in</strong>g</strong>(m,k,s,t))beg<strong>in</strong> /* build a P = (s → t) <strong>in</strong> MC(k,m) */u = c s ; v = s; P = v;loop alwaysw = (u,M v [h − 1],...,M v [u + 1],M t [u],M v [u − 1],...,M v [0]);if (w ≠ v) P = (P → w);if (w == t) break;v = w;w = (next(u),M v [h − 1],...,M v [u + 1],M v [u],M v [u − 1],...,M v [0]);P = (P : w);u = next(u);endloopend.In the fault-<strong>tolerant</strong> rout<strong>in</strong>g we discuss late, we need directedhamiltonian cycles. Therefore, we <strong>in</strong>troduce a pa-1 A hamiltonian cycle is def<strong>in</strong>ed as a path through a graph which startsand ends at the same vertex and <strong>in</strong>cludes every other vertex exactly once.rameter, next(s), to assign the direction of a hamiltoniancycle. For example, <strong>in</strong> Example 1, if we let next(s) = 10,then the hamiltonian cycle for (C s → C t ) <strong>in</strong> the high-level2-cube will be (00 : 10 : 11 : 01 : 00).Let H i (s,t), 0 ≤ i ≤ h − 1, be the Hamm<strong>in</strong>g distancebetween s and t <strong>in</strong> M[i], i.e. the number of bits with dist<strong>in</strong>ctvalues <strong>in</strong> M s [i] and M t [i]. From the algorithm, thelongest length of the rout<strong>in</strong>g path is 2 k + H h (s,t), whereH h (s,t) = ∑ h−1i=0 H i(s,t). This formula gives an upper boundto d(s,t), the distance between s and t <strong>in</strong> an MC(k,m). LetH(s,t) be the Hamm<strong>in</strong>g distance between s and t. Clearly,we have H(s,t) ≤ d(s,t) ≤ H h (s,t) + 2 k . Because H(s,t) =H h (s,t) + H k (s,t), where H k (s,t) is the Hamm<strong>in</strong>g distancebetween s and t <strong>in</strong> c field, we have H(s,t) ≤ d(s,t) ≤H(s,t) − H k (s,t) + 2 k . The longest path <strong>in</strong> an MC(k,m) isfrom s = 0···0 to t, where c t = 0···0 and M t [i] = 1···1 forall i, 0 ≤ i ≤ h − 1. The length of this path is 2 k (m + 1). Itis easy to see that this path is the shortest path for connect<strong>in</strong>gs and t. Therefore, it is the diameter of an MC(k,m).S<strong>in</strong>ce the average distance <strong>in</strong> each cluster is m/2, the averagedistance between any two nodes <strong>in</strong> an MC(k,m) isat most (m/2)2 k + 2 k = (n − k)/2 + 2 k , where n = m2 k + k(<strong>in</strong> the case of hamiltonian path, it is (n − k)/2 + 2 k − 1).Notice that it is possible to have a rout<strong>in</strong>g algorithm <strong>in</strong> anMC(k,m) which bypasses the class c if M s [c] = M t [c]. Insuch a case, the length of the rout<strong>in</strong>g path for some s and tmight be shorter than that produced by the algorithm above.4. Multi-channel cubeIn this section, we will describe a structure <strong>in</strong> themetacube, called multi-channel cube. This structure is usefulfor design<strong>in</strong>g algorithms <strong>in</strong> MC(k,m) based on hypercubealgorithms. We will use this structure for solv<strong>in</strong>g fault<strong>tolerant</strong>rout<strong>in</strong>g problem <strong>in</strong> the metacube.Let C u and C v be two dist<strong>in</strong>ct clusters <strong>in</strong> an MC(k,m),h = 2 k . A multi-channel cube is def<strong>in</strong>ed as C u ∪ C v ∪ E,where E is a set of k2 m disjo<strong>in</strong>t paths connect<strong>in</strong>g C u andC v , k paths for each node pair (u i ,v i ), u i ∈ C u , v i ∈ C v , fori = 0,1,...,2 m − 1. In the other word, E = ∪i, j(u i → v i ) j ,0 ≤ i ≤ 2 m −1 and 0 ≤ j ≤ k −1, and (u i1 → v i1 ) j1 ∩(u i2 →v i2 ) j2 = /0 if i 1 ≠ i 2 or j 1 ≠ j 2 .Figure 3 shows an example of a multi-channel cube. Thedotted l<strong>in</strong>e denotes a path, not an edge. In the case of atraditional n-cube, there is an edge (u,v) connect<strong>in</strong>g twonodes u and v for u ∈ 0-subcube and v ∈ 1-subcube. Insteadof an edge, the two nodes of a node pair <strong>in</strong> a multi-channelcube are connected by k disjo<strong>in</strong>t paths.The major problem <strong>in</strong> construct<strong>in</strong>g the k disjo<strong>in</strong>t paths isthat the path (u i → v i ) j , 0 ≤ i ≤ 2 m − 1 and 0 ≤ j ≤ k − 1,will just advance through cross-edges when M ui [l] = M vi [l]for some l, 0 ≤ l ≤ 2 k − 1. This will cause two paths346


k pathsu0v 0C uC vFigure 3. A multi-channel cubealong the dist<strong>in</strong>ct dimensions <strong>in</strong> the k-cube to <strong>in</strong>tersect atsome vertex. For example, <strong>in</strong> an MC(2,2), the paths from0000000000 to 1111000000 along dimensions 0 and 1 willmeet at a common vertex of 1100000000. To guarantee thek paths are disjo<strong>in</strong>t, each path needs a unique signature def<strong>in</strong>edthrough a key-bit. A key-bit is a bit <strong>in</strong> a node address.It will be assigned to each of the k neighbors of node u i tocarry the signature that is unique to the path through thatneighbor before apply<strong>in</strong>g the po<strong>in</strong>t-to-po<strong>in</strong>t rout<strong>in</strong>g algorithmus<strong>in</strong>g a hamiltonian cycle. If we say “the key-bit isat the dimension x”, it means that, negat<strong>in</strong>g the value of thekey-bit of a node will get the address of that nodes’ xth dimensionalneighbor. The k + m dimensions of an MC(k,m)are 0,1,...,k − 1,k,k + 1,...,k + m − 1.The key-bit can be determ<strong>in</strong>ed as below. Notice that allthe c ui , the class_id of node u i ∈ C u , for i = 0,1,...,2 m −1,are the same, so we use c u to denote c ui . In such a case, nodeu may be any of node u i , 0 ≤ 2 m − 1. c v does also. We usec ( u j) and c ( vj) to denote c u ( j) and c v ( j), respectively. In the caseof c u = c v , if we can f<strong>in</strong>d a bit where M u [c ( u j) ] and M v [c ( v j) ]have the same value, then let that bit be the key-bit (type1); otherwise, take any bit as the key-bit (type 2). The ideabeh<strong>in</strong>d this is to enforce a signature (chang<strong>in</strong>g the key-bitvalue) before apply<strong>in</strong>g the po<strong>in</strong>t-to-po<strong>in</strong>t rout<strong>in</strong>g algorithm.In the case of type 1, the key-bit should be removed f<strong>in</strong>ally.In the case of c u ≠ c v , the construction of k disjo<strong>in</strong>t pathshas two parts. The first part is the same as the case of c u = c vand the second part is to construct the subpaths that conta<strong>in</strong>cross-edges only, s<strong>in</strong>ce after the first part f<strong>in</strong>ished, the updat<strong>in</strong>gof fields M[i], 0 ≤ i ≤ 2 k −1, has been done. To guaranteethe paths are disjo<strong>in</strong>t, for the second part, we shouldf<strong>in</strong>d k disjo<strong>in</strong>t class-paths <strong>in</strong> the k-cube. This can be doneas the same manner as a traditional hypercube does. Wesummarize it below.Let x and y be two nodes <strong>in</strong> an n-cube and the Hamm<strong>in</strong>gdistance between x and y, |x ⊕ y| > 1. Let Z j = (x ( j) →y), 0 ≤ j ≤ n − 1, are n disjo<strong>in</strong>t paths <strong>in</strong> an n-cube, d pathsare of length (d −1) and (n−d) paths are of length (d +1),where d = |y ⊕ x| is the Hamm<strong>in</strong>g distance between x andy. Without loss of generality, we assume that the d paths oflength (d − 1) are (x ( j) → y (( j+1) mod d) : y), 0 ≤ j ≤ d − 1,and the (n−d) paths of length d +1 are (x ( j) → y ( j) : y), d ≤j ≤ n − 1.Let the two clusters be C u = (c u ,M u [h −1],...,M u [c u + 1],∗,M u [c u − 1],...,M u [0]) andC v = (c v ,M v [h−1],...,M v [c v +1],∗,M v [c v −1],...,M v [0]).Let HC be a hamiltonian cycle <strong>in</strong> H k . In what follows,we give an algorithm for pair<strong>in</strong>g up the nodes <strong>in</strong> C u andC v and construct<strong>in</strong>g k disjo<strong>in</strong>t paths for each pair. In thealgorithm, the hamiltonian path that follows the directionof (u i → u ( j)i) will be used.Algorithm 2 (Multi_Channel_Cube(C u ,C v ))beg<strong>in</strong>Case 1: c u = c v . We pair up nodes u i ∈ C u and v i ∈ C v sothat M ui [c u ] = M vi [c v ], for i = 0,1,...,2 m − 1. F<strong>in</strong>da 0 <strong>in</strong> M ui [c ( u j) ] ⊕ M vi [c ( vj) ] from rightmost bit. If thebit position be x, let the key-bit is at the dimensiony = k + (x mod k). Then (u i → v i ) j = (u i : u ( j)u ( j,y)i: u ( j,y,l)i→ v ( j)i: v i ), where (u ( j,y)ione-step path <strong>in</strong> HC and (u ( j,y,l)i→ v ( j)ii:: u ( j,y,l)i) is an) is a path constructedby Algorithm 1, for i = 0,1,...,2 m − 1, andj = 0,1,...,k − 1.Case 2: c u ≠ c v . We pair up nodes u i and v i so thatM ui [c u ] ⊕ M vi [c v ] = M ui [c v ] ⊕ M vi [c u ]. Let w i, j be ofclass c ( uj) and its cluster_id + node_id equal to thatof v i , i.e. w i, j differs with v i at field c only. In whatfollows, if u ( j)i= w i, j , the path u ( j)i→ w i, j will be replacedwith u ( j)i.Case 2.1: |c u ⊕ c v | = 1. Let the bit position wherec u and c v have different value be q. We havew i,q = v i <strong>in</strong> this case. The path <strong>in</strong> dimension qis (u i : u (q)iv (q)i→ v (q)i: w i,q = v i ), where (u (q)i→) is constructed by Algorithm 1. The restk − 1 paths are (u i : u ( j)i: u ( j,y)i: u ( j,y,l)i→ w i, j :: u ( j,y)iis a) is an one-step path <strong>in</strong>v ( j)i: v i ), 1 ≤ j ≤ k − 1, where u ( j)i: u ( j,y,l)isignature, (u ( j,y)iHC, and path (u ( j,y,l)(u ( j,y)i(( j+1) mod d)i→ w i, j ) is constructed byAlgorithm 1, for 0 ≤ j ≤ k − 1, j ≠ q.Case 2.2: |c u ⊕ c v | > 1. The first d paths are (u i :u ( j)i: u ( j,y)(( j+1) mod d)i→ w i, j → vi: v i ), 0 ≤ j ≤d − 1, where (u ( j)i: u ( j,y)i) is a signature, path→ w i, j ) is the path constructed by Algorithm1, and path (w i, j → vi: v i ) isconstructed by the cross-edges specified by Z j .The rest k−d paths are (u i : u ( j)i: u ( j,y)i→ w i, j →v ( j)i: v i ), d ≤ j ≤ k − 1, where (u ( j)ia signature, path (u ( j,y)i: u ( j,y)i) is→ w i, j ) is the path constructedby Algorithm 1, and path (w i, j → v ( j)i:347


Table 1. Multi-channel examplesExample 1 Example 2 Example 3 Example 4(0000000000,0001000000) (0000000000,0001011100) (0000000000,0100001111) (0000000001,1101000000)P 0 ( j = 0) P 1 ( j = 1) P 0 ( j = 0) P 1 ( j = 1) P 0 ( j = 0) P 1 ( j = 1) P 0 ( j = 0) P 1 ( j = 1)0000000000 0000000000 0000000000 0000000000 0000000000 0000000000 0000000001 00000000010100000000 1000000000 0100000000 1000000000 0100000000 1000000000 0100000001 10000000010100000100 1000010000 0100000100 1000100000 0100000100 1000010000 0100000101 10000100011100000100 1100010000 1100000100 1100100000 0100001100 1100010000 1100000101 11000100011101000100 1101010000 1101000100 1101100000 1100001100 0100010000 1101000101 11010100011001000100 0101010000 1001000100 0101100000 1000001100 0100010100 1001000101 01010100010001000100 0001010000 1001010100 0101100100 0000001100 0100011100 0001000101 00010100010101000100 1001010000 0001010100 0101101100 0000001101 0000011100 0001000100 00010100000101000000 1001000000 0101010100 0001101100 0000001111 0000011101 0101000100 10010100000001000000 0001000000 0101011100 1001101100 0100001111 0000011111 0101000000 10010000000001011100 1001111100 1000011111 1101000000 11010000001001011100 10000011110001011100 11000011110100001111end.v i ) is constructed by the cross-edges specifiedby Z j .Example 1: Assume m = k = 2. c u = c v = 0, C u ={0,1,2,3} and C v = {64,65,66,67}. Accord<strong>in</strong>g to the algorithm,the four node pairs are (0,64), (1,65), (2,66),(3,67). We only show the two paths for (0,64), so thesimplified notations u = 0 and v = 64 are used (ignored ifor i = 0,1,2,3). S<strong>in</strong>ce M u [1] = M v [1] = 00 and M u [2] =M v [2] = 00, we choose y = 2 for both j = 0 and 1 as akey-bit of type 1. The two paths from node 0 to node64 of class 0 are shown <strong>in</strong> Table 1. The key-bit is shownwith boldface. |P 0 | = |P 1 | = d(u,v) + 4 = 5 + 4 = 9, whered(0,64) = H(0,64) + 2 2 = 1 + 4 = 5.Example 2: Assume m = k = 2. c u = c v = 0, C u ={0,1,2,3} and C v = {92,93,94,95}. (0,92) a pair. Let u =0 and v = 92. S<strong>in</strong>ce M u [1] = 00 and M v [1] = 11, we choosey = 2 for j = 0 as a key-bit of type 2. S<strong>in</strong>ce M u [2] = 00 andM v [2] = 01, we choose y = 3 for j = 1 as a key-bit of type 1.The two paths from node 0 to node 92 are shown <strong>in</strong> Table 1.|P 0 | = d(u,v) + 2 = 10 and |P 1 | = d(u,v) + 4 = 12, whered(0,92) = H(0,92) + 2 2 = 4 + 4 = 8.Example 3: Assume m = k = 2. c u = 0, c v = 1, C u ={0,1,2,3} and C v = {3,7,11,15}. The four pairs of thetwo clusters are (0,15), (1,11), (2,7), (3,3). To constructthe two paths for pair (0,15), we notice that |c u ⊕ c v | = 1and c (0)u = c v . Therefore, we construct path P 0 by Case 2.1.We choose y = 2 for j = 1. The two paths from node u =0000000000 to node v = 0100001111 are shown <strong>in</strong> Table 1.|P 0 | = d(u,v)+1 = 9, |P 1 | = d(u,v)+4+|Z 1 | = 8+4+1 =13, where d(0,15) = H(0,15) + 2 2 = 4 + 4 = 8.Example 4: Assume m = k = 2. c u = 0, c v = 3, C u ={0,1,2,3} and C v = {0,64,128,192}. The four pairs of thetwo clusters are (0,0), (1,64), (2,128), (3,192). S<strong>in</strong>ce|c u ⊕ c v | = 2, we construct path P 0 and P 1 for pair (1,64)by Case 2.2. We choose y = 2 for both j = 0 and 1. S<strong>in</strong>cec (0)u = c (1)v and c (1)u = c (0)v , we have |Z 0 | = |Z 1 | = 1. The twopaths from node u = 0000000001 to node v = 1101000000are shown <strong>in</strong> Table 1. |P 0 | = |P 1 | = d(u,v) + 4 + |Z 1 | = 5 +4 + 1 = 10, where d(1,64) = H(1,64) + 2 2 = 1 + 4 = 5.We first prove that the k paths (u : u ( j) → v ( j) : v), 0 ≤j ≤ k − 1, constructed <strong>in</strong> Case 1, are disjo<strong>in</strong>t. For any twopaths P j1 and P j2 , if one of them has a key-bit of type 1 thenit is clear that they cannot <strong>in</strong>tersect each other s<strong>in</strong>ce no otherpath will change the value of that key-bit. If the key-bits ofthe two paths are of type 2, from the def<strong>in</strong>ition of type 2key-bit, we know that the two paths cannot <strong>in</strong>tersect eachother when we use the nodes <strong>in</strong> the hamiltonian cycle that∈ H k , path P j2 updatesthe values <strong>in</strong> field M[c ( j1) ] and the values <strong>in</strong> the field M[c j2) ]was partially updated only (the key-bit changed and otherbits unchanged), however, the values <strong>in</strong> the field M[c ( j2) ]for P j1 is either unchanged or fully updated. Therefore, twopaths cannot meet at the nodes of class c ( j1) . Similarly, theyare not c ( j 1)u nor c ( j 2)u . At node c ( j 1)ucannot meet at the nodes of class c ( j 2)u . We conclude thatthe k paths are disjo<strong>in</strong>t. Next, s<strong>in</strong>ce each pair (u i ,v i ) has aunique node_id and this unique node_id will become partof the cluster_id of the nodes <strong>in</strong> path (u (p) → v (q) ), differentpaths cannot pass through the same cluster. Therefore, allk2 m paths for connect<strong>in</strong>g C u and C v are disjo<strong>in</strong>t for Case 1.ii348


To show the k paths for each node pair constructed<strong>in</strong> Case 2 are disjo<strong>in</strong>t, we divide each path <strong>in</strong>to to parts,→ w i, j ) and (w i, j → v i ). S<strong>in</strong>ce the first part of the path<strong>in</strong>cludes a signature (except P q <strong>in</strong> Case 2.1), they shouldbe disjo<strong>in</strong>t follow<strong>in</strong>g the same argument as <strong>in</strong> Case 1 (theargument is true even one of the paths does not carry signature).Moreover, it is also disjo<strong>in</strong>t with the second part(u ( j)iof other paths because of its unique signature. The secondparts of the paths P j , 0 ≤ j ≤ k − 1, conta<strong>in</strong> onlythe cross-edges that are identical to the disjo<strong>in</strong>t class pathsZ j , they are also disjo<strong>in</strong>t. Therefore, the k paths constructedby the algorithm are disjo<strong>in</strong>t. To prove that the hsets of paths (u i → v i ), 0 ≤ i ≤ 2 m − 1 are disjo<strong>in</strong>t also,we argue as follows: First for each u i , consider the paths(u i → u ( j)i→ w i → w ′ i ), where c w ≠ c v and c next(wi ) = c v ,c w ′i≠ c v and c prev(w ′i ) = c v . From the algorithm, we knowthat the h sets of paths (u i → w i ) are disjo<strong>in</strong>t s<strong>in</strong>ce the valueM ui [c u ] is different for every u i ∈ C u and M ui [c u ] is part ofthe cluster_id of every node <strong>in</strong> path (u ( j)i→ w ′ i ). In path(w i → w ′ i ), the value M u i[c v ] is changed to M vi [c v ]. S<strong>in</strong>ceM ui [c u ]⊕M vi [c v ] = M ui [c v ]⊕M vi [c u ], M vi [c v ] takes differentvalues for every u i . That is, node w ′ i is <strong>in</strong> dist<strong>in</strong>ct clustersfor every u i . S<strong>in</strong>ce M vi [c v ] is part of the cluster_id of everynode <strong>in</strong> path (w ′ i → v i), the h sets of paths (w ′ i → v i)are also disjo<strong>in</strong>t. Therefore, we conclude that all paths forconnect<strong>in</strong>g the clusters C u and C v are disjo<strong>in</strong>t for Case 2.From the path construction <strong>in</strong> Case 1, the length of thelongest path (u i → v i ) is |(u i → v i )| = d(u i ,v i ) + 4, whered(u i ,v i ) = H(u i ,v i )+2 k , H(u i ,v i ) is Hamm<strong>in</strong>g distance betweenu i and v i . From the path construction <strong>in</strong> Case 2,the longest length of the paths (u i → v i ) is |(u i → v i )| =d(u i ,v i ) + 4 + max 0≤ j≤k−1 {|Z j |} ≤ d(u i ,v i ) + m + 5. Wesummarize the results <strong>in</strong> the follow<strong>in</strong>g theorem.Theorem 1. Given any two clusters C u and C v <strong>in</strong> MC(k,m),we can f<strong>in</strong>d a multi-channel cube C u ∪C v ∪ E, where E isa set of k2 m disjo<strong>in</strong>t paths connect<strong>in</strong>g C u and C v , k pathsfor each node pair (u i ,v i ), u i ∈ C u , v i ∈ C v , and the lengthof the paths <strong>in</strong> E is at most max(d(u i ,v i )) + m + 5, for i =0,1,...,2 m − 1.5. <strong>Fault</strong>-<strong>tolerant</strong> rout<strong>in</strong>gWith the multi-channel cube structure, the fault-<strong>tolerant</strong>rout<strong>in</strong>g problem can be solved efficiently <strong>in</strong> an MC(k,m) assum<strong>in</strong>gthat there are up to k+m−1 faulty nodes. The fault<strong>tolerant</strong>rout<strong>in</strong>g from source s to dest<strong>in</strong>ation t <strong>in</strong> hypercubehas been solved <strong>in</strong> [4]. The hypercube algorithm is summarizedbelow. First, we partition the n-cube <strong>in</strong>to two (n − 1)-dimensional subcubes along a dimension k such that s andt are <strong>in</strong> the dist<strong>in</strong>ct subcubes. If the subcube conta<strong>in</strong><strong>in</strong>g thas less faulty nodes then we route s to the subcube conta<strong>in</strong><strong>in</strong>gt by a fault-free path of length at most 2: (s → s (k) )or (s → s ( j,k) ) for some j, 0 ≤ j ≤ n − 1, j ≠ k. Then theproblem is reduced to the sub-problem <strong>in</strong> the subcube conta<strong>in</strong><strong>in</strong>gt. Repeat this process at most logn times until thesubcube conta<strong>in</strong>s no faulty node. The path (s → s ( j,k) ) is abad candidate if the jth bit of s is the same as that of t (abad candidate will <strong>in</strong>crease the length of the rout<strong>in</strong>g path).The algorithm guarantees that the bad candidate is used byat most one partition. It was shown <strong>in</strong> [4] that given twononfaulty nodes s and t, and up to n − 1 faulty nodes <strong>in</strong>an n-cube, we can f<strong>in</strong>d a fault-free path of length at mostd(s,t) + 2 <strong>in</strong> O(n) time.Under the conditions k ≤ m and the number of faultynodes <strong>in</strong> C s ∪C t is at most m, we show that an efficient algorithmfor fault-<strong>tolerant</strong> rout<strong>in</strong>g from s to t <strong>in</strong> MC(k,m)can be found. For most of the <strong>in</strong>terest<strong>in</strong>g MC(k,m), we havek ≤ m as <strong>in</strong>dicated <strong>in</strong> the previous sections. Statistically, thecondition that there are at most m faculty nodes <strong>in</strong> the twoclusters is held with very high probability. Assum<strong>in</strong>g uniformdistribution, the probability of at most m fault nodes <strong>in</strong>) (/2 m2 k +kC s ∪C t is m ∑( m+k−1ii=0)( 2 m2 k +k −(m+k−1)2 m+1 −i2 m+1 )≈ 1. For example,the probability is 3186303/3186304 = 0.99999969<strong>in</strong> the case of k = m = 2. An algorithm for fault-<strong>tolerant</strong>rout<strong>in</strong>g under the conditions above <strong>in</strong> an MC(k,m) is givenbelow.Algorithm 3 (<strong>Fault</strong>_Tolerant_<strong>Rout<strong>in</strong>g</strong>(k,m,s,t))beg<strong>in</strong>Case 1: C s = C t . If C s conta<strong>in</strong>s at most m − 1 faulty nodesthen we apply the hypercube algorithm. Otherwise,at least m faulty nodes are <strong>in</strong> C s . We f<strong>in</strong>d k disjo<strong>in</strong>tpaths (s → t) outside the cluster C s as follows: P j =(s : s ( j) : s ( j,k) : s ( j,k, j) → t ( j,k, j) : t ( j,k) : t ( j) : t), 0 ≤j ≤ k − 1, where s ( j,k, j) and t ( j,k, j) are <strong>in</strong> the samecluster ≠ C s . S<strong>in</strong>ce there at most k − 1 faulty nodesoutside the cluster C s , there exists a fault-free path P j .Case 2: C s ≠ C t . We create a multi-channel cube with C sand C t as described <strong>in</strong> the previous subsection. S<strong>in</strong>cethere are at most m fault nodes <strong>in</strong> C s ∪C t , we can f<strong>in</strong>da fault-free path of length at most d(s,t) + 2 <strong>in</strong> O(m)time <strong>in</strong> the (m + 1)-cube formed by C s ∪C t . If the kpaths (u → v) of the multi-channel cube, which correspondto a s<strong>in</strong>gle (m + 1)th dimensional cube-edge,are all faulty, then we mark v as a faulty node. Ifthe number of faulty nodes <strong>in</strong> C s ∪ C t is m, then nomarked faulty node will be created. Otherwise, s<strong>in</strong>cea marked faulty node consumes k faulty nodes outsideclusters C s and C t , the total number of faulty andmarked faulty nodes will be at most m + 1 − 1 = m.Therefore, we can apply the hypercube algorithm,and f<strong>in</strong>d a fault-free path <strong>in</strong> the (m + 1)-cube formedby C s ∪C t . Replac<strong>in</strong>g the (m+1)th dimensional cubeedge(u,v) <strong>in</strong> the fault-free path (s → t) by a fault-free349


end.path (u → v) <strong>in</strong> multi-channel cube, we f<strong>in</strong>d a faultfreepath (s → t) <strong>in</strong> MC(k,m).Next, we analyze the length of the fault-free path andthe runn<strong>in</strong>g time of the algorithm <strong>in</strong> MC(k,m). For Case1, If there are at most m − 1 faulty nodes <strong>in</strong> C s then afault-free path of length at most d(s,t) + 4 can be found<strong>in</strong> O(m) time. Otherwise, a fault-free path of length atmost d(s,t) + 6 that passes through nodes outside the clustercan be found <strong>in</strong> O(km2 k ) time. For Case 2, the algorithmtakes O(m) time to f<strong>in</strong>d a fault-free path <strong>in</strong> the (m + 1)-cube. To check whether the k paths <strong>in</strong> the multi-channelcube which correspond to a s<strong>in</strong>gle (m + 1)th cube-edge,are all faulty or not takes O(km2 k ) time. S<strong>in</strong>ce this processis repeated at most twice, the fault-free path <strong>in</strong> themulti-channel cube can be found <strong>in</strong> O(km2 k ) = O(kn) time,where 2 n is the number of nodes <strong>in</strong> MC(k,m). S<strong>in</strong>ce thepath (u → v) <strong>in</strong> the multi-channel cube which correspondsto a s<strong>in</strong>gle cube-edge is of length at most d(u,v) + m + 5,and |(s → u)| ≤ 1, |(v → t)| ≤ m (from the hypercube algorithm)the length of the fault-free path <strong>in</strong> MC(k,m) is atmost d(s,t) + 2 + 2m + m + 5 = d(s,t) + 3m + 7.Example 5: Consider s = 0100000111 and t = 0000000011<strong>in</strong> MC(2,2). Assume that nodes s (i) , i = 0,1, and node0100000011 are faulty. The 3-cube formed by C s ∪ C t ,where C s = {3,7,11,15}, C t = {0,1,2,3}, has the edges(3,3),(7,2),(11,1) and (15,0), for connect<strong>in</strong>g C s and C t .S<strong>in</strong>ce s (i) , i = 0,1, are faulty, we mark node 2 of class0 faulty. Then there are two faulty nodes <strong>in</strong> the 3-cube.Therefore, we can f<strong>in</strong>d a fault-free path as follows: (7 :15 → 0 : 1 : 3). F<strong>in</strong>ally, replac<strong>in</strong>g the edge (15,0) by a path(0100001111 → 0000000000) given <strong>in</strong> Example 3, we get afault-free path (s → t) of length 13+3 = 16. S<strong>in</strong>ce d(s,t) =1 + 4 = 5, we have |(s → t)| < d(s,t) + 3m + 7 = 18. Wesummarize the result of the above argument <strong>in</strong>to the follow<strong>in</strong>gtheorem.Theorem 2. Given any two nonfaulty nodes s and t, andat most m + k − 1 faulty nodes <strong>in</strong> MC(k,m), if k ≤ m andthe number of faulty nodes <strong>in</strong> C s ∪C t is at most m, then afault-free path (s → t) of length at most d(s,t) + 3m + 7can be found <strong>in</strong> O(kn) time, where the number of nodes <strong>in</strong>MC(k,m) is 2 n .6. Conclusion and future workIn this paper, we <strong>in</strong>troduced an algorithm for fault<strong>tolerant</strong>rout<strong>in</strong>g <strong>in</strong> the metacube. The metacube can be usedas an <strong>in</strong>terconnection network for very large scale parallelcomputers connect<strong>in</strong>g hundreds of millions nodes withup to 6 l<strong>in</strong>ks per node. For this reason, the issue of faulttolerance<strong>in</strong> metacube is very important. We conclude thatthe fault-<strong>tolerant</strong> rout<strong>in</strong>g <strong>in</strong> metacube can be done quite efficiently.Some other issues concern<strong>in</strong>g the metacube listedbelow are worth further research.1. Evaluate the architecture complexity vs. performanceof benchmarks vs. real cost.2. Investigate the embedd<strong>in</strong>g of other frequently usedtopologies <strong>in</strong>to the metacube.3. Develop the techniques for mapp<strong>in</strong>g application algorithmsonto the metacube.References[1] A. E. Amawy and S. Latifi. Properties and performance offolded hypercubes. IEEE Transactions on Parallel and DistributedSystems, 2:31–42, 1991.[2] K. Efe. The crossed cube architecture for parallel computation.IEEE Transactions on Parallel and Distributed Systems,3(5):513–524, Sep. 1992.[3] K. Ghose and K. R. Desai. Hierarchical cubic networks.IEEE Transactions on Parallel and Distributed Systems,6(4):427–435, April 1995.[4] Q.-P. Gu and S. Peng. Optimal algorithms for node-to-nodefault <strong>tolerant</strong> rout<strong>in</strong>g <strong>in</strong> hypercubes. The Computer Journal,39(7):626–629, 1996.[5] J. P. Hayes and T. N. Mudge. Hypercube supercomputers.Proc. IEEE, 17(12):1829–1841, Dec. 1989.[6] Y. Li and S. Peng. Dual-cubes: a new <strong>in</strong>terconnection networkfor high-performance computer clusters. In Proceed<strong>in</strong>gsof the 2000 International Computer Symposium, Workshopon Computer Architecture, pages 51–57, December2000.[7] Y. Li and S. Peng. <strong>Fault</strong>-<strong>tolerant</strong> rout<strong>in</strong>g and disjo<strong>in</strong>t paths <strong>in</strong>dual-cube: a new <strong>in</strong>terconnection network. In Proceed<strong>in</strong>gsof the 2001 International Conference on Parallel and DistributedSystems, pages 315–322. IEEE Computer SocietyPress, June 2001.[8] Y. Li, S. Peng, and W. Chu. <strong>Metacube</strong> – a new <strong>in</strong>terconnectionnetwork for large scale parallel systems. AustralianComputer Science Communications, 24(3):29–36,Jan. 2002.[9] F. P. Preparata and J. Vuillem<strong>in</strong>. The cube-connected cycles:a versatile network for parallel computation. Commun.ACM, 24:300–309, May 1981.[10] SGI. Orig<strong>in</strong>2000 Rackmount Owner’s Guide, 007-3456-003. http://techpubs.sgi.com/, 1997.[11] L. W. Tucker and G. G. Robertson. Architecture and applicationsof the connection mach<strong>in</strong>e. IEEE Computer, 21:26–38,August 1988.[12] B. Vanvoorst, S. Seidel, and E. Barscz. Workload of anipsc/860. In Proceed<strong>in</strong>gs of the Scalable High-PerformanceComput<strong>in</strong>g Conference, pages 221–228, 1994.[13] S. G. Ziavras. Rh: a versatile family of reduced hypercube<strong>in</strong>terconnection networks. IEEE Transactions on Paralleland Distributed Systems, 5(11):1210–1220, November1994.350

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!