@@ -1,7 +1,7 @@
Current OpenSM Routing
-10/9/09
+28/6/11
-OpenSM offers six routing engines:
+OpenSM offers seven routing engines:
1. Min Hop Algorithm - based on the minimum hops to each node where the
path length is optimized.
@@ -11,24 +11,28 @@ node, but it is constrained to ranking rules. This algorithm should be chosen
if the subnet is not a pure Fat Tree, and deadlock may occur due to a
loop in the subnet.
-3. Fat-tree Unicast routing algorithm - this algorithm optimizes routing
+3. DNUP Unicast routing algorithm - similar to UPDN but allows routing in
+fabrics which have some Ca nodes attached closer to the roots than some switch
+nodes.
+
+4. Fat-tree Unicast routing algorithm - this algorithm optimizes routing
of fat-trees for congestion-free "shift" communication pattern.
It should be chosen if a subnet is a symmetrical fat-tree.
Similar to UPDN routing, Fat-tree routing is credit-loop-free.
-4. LASH unicast routing algorithm - uses Infiniband virtual layers
+5. LASH unicast routing algorithm - uses Infiniband virtual layers
(SL) to provide deadlock-free shortest-path routing while also
distributing the paths between layers. LASH is an alternative
deadlock-free topology-agnostic routing algorithm to the non-minimal
UPDN algorithm avoiding the use of a potentially congested root node.
-5. DOR Unicast routing algorithm - based on the Min Hop algorithm, but
+6. DOR Unicast routing algorithm - based on the Min Hop algorithm, but
avoids port equalization except for redundant links between the same
two switches. This provides deadlock free routes for hypercubes when
the fabric is cabled as a hypercube and for meshes when cabled as a
mesh (see details below).
-6. Torus-2QoS unicast routing algorithm - a DOR-based routing algorithm
+7. Torus-2QoS unicast routing algorithm - a DOR-based routing algorithm
specialized for 2D/3D torus topologies. Torus-2QoS provides deadlock-free
routing while supporting two quality of service (QoS) levels. In addition
it is able to route around multiple failed fabric links or a single failed
@@ -192,6 +196,38 @@ To learn more about deadlock-free routing, see the article
by William J Dally and Charles L Seitz (1985).
+DNUP Routing Algorithm
+----------------------
+
+Purpose:
+
+Down/Up routing algorithm operates in a very similar fashion to UPDN, but
+is modified to allow optimal routing on certain network structures in
+which uplinks and CA nodes are connected to the same switch nodes. (For
+example Chinook at EMSL and RoadRunner at LANL.) In these networks the
+optimal paths between nodes connected to a single chassis would remain
+within the chassis. However due to the uplinks being connected at the
+same level of the network as the CA nodes UPDN will not allow these paths
+to be used for communication between the CA nodes.
+
+Down/Up follows the same procedure as UPDN with a few differences. Ranking
+is based solely on the relative distance from CA nodes, any switch node
+with a CA node directly attached is assigned a rank of 0 any switch
+node without a CA node attached is assigned a rank of one greater than
+the minimum rank of their neighbors. Transitions are also reversed;
+The initial direction is down and only one transition to up
+is allowed. There is also an option which relaxes this restriction to
+allow communication with switches nodes similar to the functionality of
+connect_roots in UPDN.
+
+DNUP Algorithm Usage
+
+Activation through OpenSM
+
+Use '-R dnup' option to activate the DNUP algorithm.
+Use '--connect_roots' option to connect nodes which violate the DNUP criteria.
+
+
Fat-tree Routing Algorithm
--------------------------
@@ -692,7 +692,7 @@ compiling opensm with -DROUTER_EXP which has been obsoleted.
.SH ROUTING
.PP
-OpenSM now offers six routing engines:
+OpenSM now offers seven routing engines:
1. Min Hop Algorithm - based on the minimum hops to each node where the
path length is optimized.
@@ -702,30 +702,30 @@ node, but it is constrained to ranking rules. This algorithm should be chosen
if the subnet is not a pure Fat Tree, and deadlock may occur due to a
loop in the subnet.
-3. DNUP Unicast routing algorithm - similar to UPDN but allows routing in
+3. DNUP Unicast routing algorithm - similar to UPDN but allows routing in
fabrics which have some Ca nodes attached closer to the roots than some switch
nodes.
-3. Fat Tree Unicast routing algorithm - this algorithm optimizes routing
+4. Fat Tree Unicast routing algorithm - this algorithm optimizes routing
for congestion-free "shift" communication pattern.
It should be chosen if a subnet is a symmetrical or almost symmetrical
fat-tree of various types, not just K-ary-N-Trees: non-constant K, not
fully staffed, any Constant Bisectional Bandwidth (CBB) ratio.
Similar to UPDN, Fat Tree routing is constrained to ranking rules.
-4. LASH unicast routing algorithm - uses Infiniband virtual layers
+5. LASH unicast routing algorithm - uses Infiniband virtual layers
(SL) to provide deadlock-free shortest-path routing while also
distributing the paths between layers. LASH is an alternative
deadlock-free topology-agnostic routing algorithm to the non-minimal
UPDN algorithm avoiding the use of a potentially congested root node.
-5. DOR Unicast routing algorithm - based on the Min Hop algorithm, but
+6. DOR Unicast routing algorithm - based on the Min Hop algorithm, but
avoids port equalization except for redundant links between the same
two switches. This provides deadlock free routes for hypercubes when
the fabric is cabled as a hypercube and for meshes when cabled as a
mesh (see details below).
-6. Torus-2QoS unicast routing algorithm - a DOR-based routing algorithm
+7. Torus-2QoS unicast routing algorithm - a DOR-based routing algorithm
specialized for 2D/3D torus topologies. Torus-2QoS provides deadlock-free
routing while supporting two quality of service (QoS) levels. In addition
it is able to route around multiple failed fabric links or a single failed
@@ -189,7 +189,7 @@ static void show_usage(void)
printf("--sm_sl <sl number>\n"
" Sets the SL to use to communicate with the SM/SA. Defaults to 0.\n\n");
printf("--connect_roots, -z\n"
- " This option enforces routing engines (up/down and \n"
+ " This option enforces routing engines (up/down, down/up and \n"
" fat-tree) to make connectivity between root switches\n"
" and in this way be IBA compliant. In many cases,\n"
" this can violate \"pure\" deadlock free algorithm, so\n"
1. Added DnUp routing engine description in doc/current-routing.txt 2. Tiny fixes to opensm man page and usage Signed-off-by: Alex Netes <alexne@mellanox.com> --- doc/current-routing.txt | 48 +++++++++++++++++++++++++++++++++++++++++----- man/opensm.8.in | 12 +++++----- opensm/main.c | 2 +- 3 files changed, 49 insertions(+), 13 deletions(-)