SimGrid  3.11
Versatile Simulation of Distributed Systems
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Modules Pages
AsClusterFatTree Class Reference

Fat tree representation and routing. More...

#include <surf_routing_cluster_fat_tree.hpp>

Inherits AsCluster.

Public Member Functions

virtual void getRouteAndLatency (RoutingEdgePtr src, RoutingEdgePtr dst, sg_platf_route_cbarg_t into, double *latency)
 Get the route and latency between two RoutingEdgs. More...
 
virtual void create_links ()
 Generate the fat tree. More...
 
void parse_specific_arguments (sg_platf_cluster_cbarg_t cluster)
 Read the parameters in topo_parameters field. More...
 
void addProcessingNode (int id)
 Add a processing node.
 

Detailed Description

Fat tree representation and routing.

Generate fat trees according to the topology asked for. Almost everything is based on the work of Eitan Zahavi in "D-Mod-K Routing Providing Non-Blocking Traffic for Shift Permutations on Real Life Fat Trees" (2010).

The exact topology is described in the mandatory topo_parameters field, and follow the "h ; m_h, ..., m_1 ; w_h, ..., w_1 ; p_h, ..., p_1" format. h stands for the switches levels number, i.e. the fat tree is of height h, without the processing nodes. m_i stands for the number of lower level nodes connected to a node in level i. w_i stands for the number of upper levels nodes connected to a node in level i-1. p_i stands for the number of parallel links connecting two nodes between level i and i - 1. Level h is the topmost switch level, level 1 is the lowest switch level, and level 0 represents the processing nodes. The number of provided nodes must be exactly the number of processing nodes required to fit the topology, which is the product of the m_i's.

Routing is made using a destination-mod-k scheme.

Member Function Documentation

void AsClusterFatTree::getRouteAndLatency ( RoutingEdgePtr  src,
RoutingEdgePtr  dst,
sg_platf_route_cbarg_t  into,
double *  latency 
)
virtual

Get the route and latency between two RoutingEdgs.

[long description]

Parameters
src[description]
dst[description]
into[description]
latency[description]

Implements As.

void AsClusterFatTree::create_links ( )
virtual

Generate the fat tree.

Once all processing nodes have been added, this will make sure the fat tree is generated by calling generateLabels(), generateSwitches() and then connection all nodes between them, using their label.

void AsClusterFatTree::parse_specific_arguments ( sg_platf_cluster_cbarg_t  cluster)

Read the parameters in topo_parameters field.

It will also store the cluster for future use.


The documentation for this class was generated from the following files: