Culler Chapter 10 Network topologies Fully connected Linear Arrays (SCI, FDDI, FiberChannel) Multidimensional Meshes and Tori (J-Machine) Trees Butterflies (Connection Machine) Hypercube (SGI Origin, IBM SP-2) Arbitrary (Myrinet, others) Routing Issues Where to put the routing information? Dimention ordered (match first digit, then second, ...) Source Based (Packet contains switch decisions) Table driven (Lookup table in switch) Deterministic vs Adaptive Deadlock problems. Don't allow messages to form gridlock. Fix with: Virtual channels. Up-Down Routing (building a DAG) Turn-Model Routing (Once turned from x dir to y, no more turns) (Examples: West-first, North-last, Negative-first) Switch Design Input Buffering: Buffer on input port Problem: head-of-line blocking. Other alternatives: Output Buffering Shared Pool Virtual Channels buffering Scheduling: When to handle a packet. Flow Control: Ethernet: Fail to transmit, backoff Link-Level: ACKS and NACKS READY and STOP Multiple inflight messages Slack Buffer (Low mark/high mark) Case Studies: Cray T3D: 3D Torus IBM SP-2: Locally Butterfly. External Variant of a butterfly Scalable Coherent Interface (SCI): Rings Numa-Q / HP Convex Exemplar SGI Origin: SPIDER network Hypercube Myrinet: Source base switched arbitrary.