SimGrid
3.16
Versatile Simulation of Distributed Systems
|
Namespaces | |
vivaldi | |
Classes | |
class | BypassRoute |
class | ClusterZone |
NetZone where each component is connected through a private link. More... | |
class | DijkstraZone |
NetZone with an explicit routing computed on need with Dijsktra. More... | |
class | DragonflyRouter |
class | DragonflyZone |
NetZone using a Dragonfly topology. More... | |
class | EmptyZone |
NetZone with no routing, useful with the constant network model. More... | |
class | FatTreeLink |
Link in a fat tree (FatTreeZone). More... | |
class | FatTreeNode |
A node in a fat tree (FatTreeZone). More... | |
class | FatTreeZone |
NetZone using a Fat-Tree topology. More... | |
class | FloydZone |
NetZone with an explicit routing computed at initialization with Floyd-Warshal. More... | |
class | FullZone |
NetZone with an explicit routing provided by the user. More... | |
class | NetPoint |
Network cards are the vertices in the graph representing the network, used to compute paths between nodes. More... | |
class | NetZoneImpl |
Private implementation of the Networking Zones. More... | |
class | RoutedZone |
NetZone with an explicit routing (abstract class) More... | |
class | TorusZone |
NetZone using a Torus topology. More... | |
class | VivaldiZone |
NetZone modeling peers connected to the cloud through a private link. More... | |
Functions | |
static void | find_common_ancestors (NetPoint *src, NetPoint *dst, NetZoneImpl **common_ancestor, NetZoneImpl **src_ancestor, NetZoneImpl **dst_ancestor) |
Get the common ancestor and its first children in each line leading to src and dst. More... | |
static double | euclidean_dist_comp (int index, std::vector< double > *src, std::vector< double > *dst) |
static std::vector< double > * | getCoordsFromNetpoint (NetPoint *np) |
|
static |
Get the common ancestor and its first children in each line leading to src and dst.
In the recursive case, this sets common_ancestor, src_ancestor and dst_ancestor are set as follows.
* platform root * | * ... <- possibly long path * | * common_ancestor * / \ * / \ * / \ <- direct links * / \ * / \ * src_ancestor dst_ancestor <- must be different in the recursive case * | | * ... ... <-- possibly long paths (one hop or more) * | | * src dst *
In the base case (when src and dst are in the same netzone), things are as follows:
* platform root * | * ... <-- possibly long path * | * common_ancestor==src_ancestor==dst_ancestor <-- all the same value * / \ * / \ <-- direct links (exactly one hop) * / \ * src dst *
A specific recursive case occurs when src is the ancestor of dst. In this case, the base case routing should be used so the common_ancestor is specifically set to src_ancestor==dst_ancestor. Naturally, things are completely symmetrical if dst is the ancestor of src.
* platform root * | * ... <-- possibly long path * | * src == src_ancestor==dst_ancestor==common_ancestor <-- same value * | * ... <-- possibly long path (one hop or more) * | * dst *
|
inlinestatic |
|
static |