next up previous
Next: 1.1 Dilated butterflies Up: Fast Algorithms for Routing Previous: Fast Algorithms for Routing

1 Introduction

Networks derived from hypercubes form the architectural basis of most parallel computers, including machines such as the BBN Butterfly, the Connection Machine, the IBM RP3 and GF11, the Intel iPSC, and the NCUBE. The butterfly, in particular, is quite popular, and has been demonstrated to perform reasonably well in practice. An example of an 8-input butterfly is illustrated in Figure 1. The nodes in this graph represent switches, and the edges represent wires. Each node in the network has a distinct label tex2html_wrap_inline1143 , where r is the row, and l is the level. In a butterfly with N inputs, the row is a tex2html_wrap_inline1151 -bit binary numbergif and the level is an integer between 0 and tex2html_wrap_inline1159 . The nodes on level 0 and tex2html_wrap_inline1163 are called the inputs and outputs, respectively. For tex2html_wrap_inline1165 , a node labeled tex2html_wrap_inline1167 is connected to nodes tex2html_wrap_inline1169 and tex2html_wrap_inline1171 , where tex2html_wrap_inline1173 denotes r with bit l complemented (bit 0 is the most significant, bit tex2html_wrap_inline1181 the least).

The primary duty of the network in a parallel machine is to route messages between its processors and/or memory modules. In a butterfly, messages are typically sent from the switches on level 0, called the inputs, to those on level tex2html_wrap_inline1185 , called the outputs. In a one-to-one routing problem, each input is the origin of at most one message, and each output is the destination of a most one message. One-to-one routing is also called permutation routing. All of the algorithms discussed in this paper route messages in a store-and-forward fashion. A store-and-forward algorithm treats messages as indivisible objects. At each step, a message can either remain at a switch or move in its entirety from one switch to another across an edge, provided that no other messages use the same edge at that step. Store-and-forward routing is also called packet switching, and messages are often referred to as packets. A related paper [2] extends the results of this paper for a different method of routing called circuit switching.

One of the nice features of the butterfly is that there is a simple algorithm for finding a path of length tex2html_wrap_inline1187 from any input to any output. Upon reaching switch tex2html_wrap_inline1189 , tex2html_wrap_inline1191 , a packet with destination tex2html_wrap_inline1193 compares r with R. If they are equal, the packet takes the edge to tex2html_wrap_inline1199 . If not, it takes the edge to tex2html_wrap_inline1201 . One problem with the butterfly is that this path is unique. As a consequence, if some switch or edge along the unique path from input i to output j (say) becomes congested or fails, then communication between input i and output j will be disrupted.

   figure106
Figure 1: An 8-input butterfly network.





next up previous
Next: 1.1 Dilated butterflies Up: Fast Algorithms for Routing Previous: Fast Algorithms for Routing



Bruce Maggs
Mon Jul 22 18:45:42 EDT 1996