Butterfly network is a network with 2q nodes and q + 1 columns as an unfolded q-cube in order to facilitate the discussion, visualization, and analysis of hypercube routing algorithms. However, a butterfly network can be viewed as a parallel processing architecture in its own right. A butterfly architecture (Fig. A, left) has p = 2 q(q + 1) processors of maximum degree d = 4, a diameter of 2q = ∪(log p), and a bisection width of ( – 1)2 q+1 + 0(2 q) = ∪(p/log p). A wrapped butterfly architecture is obtained if we superimpose or merge the nodes in Columns 0 and q of an ordinary butterfly. The resulting network has p = 2 qq processors, a uniform node degree of 4, a diameter of roughly 1.5q, and a bisection width of 2 q . Each node in a butterfly can be identified by its row and column numbers (x , y), where 0 ≤ x < 2 q – 1 and 0 ≤ y ≤ q (q – 1 for wrapped butterfly). Node (x, y) of a butterfly is connected to the four nodes (x, y – 1 ), (x, y + 1), (N y –1(x), y – 1), and (Ny (x), y + 1), if they exist.

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

Figure (A) : Butterfly and wrapped butterfly networks.

In the case of wrapped butterfly, the expressions y ± 1 for the column numbers are evaluated modulo q. If you shift the columns of a butterfly network cyclically, or permute them in any way, you can redraw the figure (by exchanging rows) such that it looks exactly the same as before.

Figure (A) shows an example in which the connection pattern between Columns 0 and 1 has been interchanged with that between Columns 1 and 2. It is easily seen that if we redraw the network by interchanging the places of Rows 1 and 2 as well as Rows 5 and 6, the resulting diagram will look exactly like the left-hand diagram in Fig. (A). The butterfly network is quite versatile. Many other independently developed networks are in fact butterfly network in disguise. Take a fat tree, for example. Recall that a