[ofa-general] [RFC] Fat-Tree upgrades
Nicolas Morey Chaisemartin
nicolas.morey-chaisemartin at ext.bull.net
Thu Mar 5 04:49:46 PST 2009
Yevgeny Kliteynik wrote:
> The speed penalty was my other concern.
> Will be happy to see the comparison of the calculation time with and w/o
> the sorting once its ready.
>
I finally managed to achieve "good" performances.
I mesured only the routing time using clock() (see patch at the end of the mail) and this command:
for i in `seq 1 5`; do opensm -o -a /home_nfs/moreyn/workspace/git/ibsim-t100/config/ftree_root_guids-r8.txt --console local -R ftree; done | grep "Routing time"
Network a bit under 4k nodes in ibsim. Topology is a well balanced fat tree, though not completely regular (hence the root guid file).
On master (1f5fdf3dfc69733a427520198bcbdd03645bb326):
Routing time: 1730000
Routing time: 1710000
Routing time: 1700000
Routing time: 1730000
Routing time: 1720000
On my branch with enhanced fat-tree:
Routing time: 1810000
Routing time: 1800000
Routing time: 1790000
Routing time: 1800000
Routing time: 1810000
So we have about 5% loss in routing time which is not so bad.
However, as I had to modify my sorting algorithms and tweak a lots of things, I'm still running some non regression tests.
Patches shall be posted later in the afternoon if they still work fine.
Nicolas
______________________
commit 7db9f3a218d2460fc9826335efdab16cbf73bfb1
Author: Nicolas Morey-Chaisemartin <nicolas.morey-chaisemartin at ext.bull.net>
Date: Thu Mar 5 10:00:13 2009 +0100
Added clock tools for timing
diff --git a/opensm/opensm/osm_ucast_ftree.c b/opensm/opensm/osm_ucast_ftree.c
index fffd519..489b788 100644
--- a/opensm/opensm/osm_ucast_ftree.c
+++ b/opensm/opensm/osm_ucast_ftree.c
@@ -51,6 +51,7 @@
#include <complib/cl_debug.h>
#include <opensm/osm_opensm.h>
#include <opensm/osm_switch.h>
+#include <time.h>
/*
* FatTree rank is bounded between 2 and 8:
@@ -76,6 +77,9 @@ typedef enum {
FTREE_DIRECTION_UP
} ftree_direction_t;
+clock_t routing_time=0;
/***************************************************
**
** Forward references
@@ -3861,7 +3865,7 @@ static int __osm_ftree_do_routing(IN void *context)
status = -1;
goto Exit;
}
-
+ routing_time=clock();
OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_VERBOSE,
"Starting FatTree routing\n");
@@ -3876,11 +3880,13 @@ static int __osm_ftree_do_routing(IN void *context)
OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_VERBOSE,
"Filling switch forwarding tables for switch-to-switch paths\n");
__osm_ftree_fabric_route_to_switches(p_ftree);
-
+ routing_time=clock()-routing_time;
/* for each switch, set its fwd table */
cl_qmap_apply_func(&p_ftree->sw_tbl, __osm_ftree_set_sw_fwd_table,
(void *)p_ftree);
+ printf("Routing time: %lu\n",routing_time);
/* write out hca ordering file */
__osm_ftree_fabric_dump_hca_ordering(p_ftree);
More information about the general
mailing list