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.

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

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

Saved successfully!

Ooh no, something went wrong!