X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ed69748556a2ec335b91c98c8dd4e506d31e52e0..198b09ec16ca1b8fc05053bcae9e75c0ad689711:/src/surf/AsClusterDragonfly.hpp diff --git a/src/surf/AsClusterDragonfly.hpp b/src/surf/AsClusterDragonfly.hpp index a516bbe9c8..115abfbd1b 100644 --- a/src/surf/AsClusterDragonfly.hpp +++ b/src/surf/AsClusterDragonfly.hpp @@ -9,24 +9,58 @@ #include "src/surf/AsCluster.hpp" namespace simgrid { - namespace surf { + namespace routing { class XBT_PRIVATE DragonflyRouter { public: - int group_; - int chassis_; - int blade_; - Link** blueLinks_=NULL; - Link** blackLinks_=NULL; - Link** greenLinks_=NULL; - Link** myNodes_=NULL; + unsigned int group_; + unsigned int chassis_; + unsigned int blade_; + surf::Link** blueLinks_=NULL; + surf::Link** blackLinks_=NULL; + surf::Link** greenLinks_=NULL; + surf::Link** myNodes_=NULL; DragonflyRouter(int i, int j, int k); ~DragonflyRouter(); }; -class XBT_PRIVATE AsClusterDragonfly:public simgrid::surf::AsCluster { +/** + * \class AsClusterDragonfly + * + * \brief Dragonfly representation and routing. + * + * Generate dragonfly according to the topology asked for, according to: + * Cray Cascade: a Scalable HPC System based on a Dragonfly Network + * Greg Faanes, Abdulla Bataineh, Duncan Roweth, Tom Court, Edwin Froese, + * Bob Alverson, Tim Johnson, Joe Kopnick, Mike Higgins and James Reinhard + * Cray Inc, Chippewa Falls, Wisconsin, USA + * or http://www.cray.com/sites/default/files/resources/CrayXCNetwork.pdf + * + * We use the same denomination for the different levels, with a Green, + * Black and Blue color scheme for the three different levels. + * + * Description of the topology has to be given with a string of type : + * "3,4;4,3;5,1;2" + * + * Last part : "2" : 2 nodes per blade + * Third part : "5,1" : five blades/routers per chassis, with one link between each (green network) + * Second part : "4,3" = four chassis per group, with three links between each nth router of each chassis (black network) + * First part : "3,4" = three electrical groups, linked in an alltoall + * pattern by 4 links each (blue network) + * + * LIMITATIONS (for now): + * - Routing is only static and uses minimal routes. + * - When n links are used between two routers/groups, we consider only one link with n times the bandwidth (needs to be validated on a real system) + * - All links have the same characteristics for now + * - Blue links are all attached to routers in the chassis n°0. This limits + * the number of groups possible to the number of blades in a chassis. This + * is also not realistic, as blue level can use more links than a single + * Aries can handle, thus it should use several routers. + */ +class XBT_PRIVATE AsClusterDragonfly + : public AsCluster { public: explicit AsClusterDragonfly(const char*name); ~AsClusterDragonfly() override;