Parallel Systems -- Exercise 2

Course number 67605 --- 2002/2003

Exercise 2: Source-Based Adaptive Routing

Adaptive routing is done at the switches of an interconnection network. Each switch knows the status of the different links, and can modify the routing to avoid problematic links. But most modern networks use source routing. The sender prepends a set or routing bytes to the message. Each switch removes the first byte, uses it as an indication of which output port to use, and forwards the rest of the message to that port. The sender needs to know the topology, and creates a routing table with the correct sequence of routing bytes for each possible destination. The question is then how to do adaptive routing -- the switches just follow instructions, and the senders don't know the status of the different links...

Note, however, that the connection between each node and the network is through a smart NIC (network interface card), that includes a processor and quite a bit of memory. Unlike the switches, these processors are programmable. Thus each node has a small dedicated computer to handle communications, without interrupting the central CPU.

What to do

Ponder the question of how to do source based adaptive routing. Think about it and discuss it with your friends.

First make sure you know what you want to achieve. Make a list of what are the goals of adaptive routing, and why it is a good thing.

Then try to come up with ideas that allow at least some of these goals to be achieved in a source-routed network. What can you do? How do you do it? What are the costs?

Submit

Send an email with your design and considerations to parsys@cs. Please use plain ASCII text, not word attachements! If you really want something fancier (e.g. small sketches on napkins) you can submit a hardcopy to my room/mailbox.

Due date: Tuesday, April 8 in the morning, so I can go over them before class on Wednesday.