NetZone with an explicit routing computed on need with Dijsktra.
The path between components is computed each time you request it, using the Dijkstra algorithm. A cache can be used to reduce the computation.
This result in rather small platform file, very fast initialization, and very low memory requirements, but somehow long path resolution times.
|
| DijkstraZone (NetZone *father, const char *name, bool cached) |
|
void | seal () override |
| Seal your netzone once you're done adding content, and before routing stuff through it. More...
|
|
| ~DijkstraZone () override |
|
xbt_node_t | routeGraphNewNode (int id, int graph_id) |
|
graph_node_map_element_t | nodeMapSearch (int id) |
|
void | newRoute (int src_id, int dst_id, sg_platf_route_cbarg_t e_route) |
|
void | getLocalRoute (NetCard *src, NetCard *dst, sg_platf_route_cbarg_t route, double *lat) override |
| Probe the routing path between two points that are local to the called NetZone. More...
|
|
void | addRoute (sg_platf_route_cbarg_t route) override |
|
| RoutedZone (NetZone *father, const char *name) |
|
void | getGraph (xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges) override |
|
virtual sg_platf_route_cbarg_t | newExtendedRoute (RoutingMode hierarchy, sg_platf_route_cbarg_t routearg, int change_order) |
|
simgrid::s4u::Host * | createHost (const char *name, std::vector< double > *speedPerPstate, int coreAmount) |
| Make an host within that NetZone. More...
|
|
void | addBypassRoute (sg_platf_route_cbarg_t e_route) override |
| Creates a new route in this NetZone. More...
|
|
char * | name () |
|
NetZone * | father () |
|
xbt_dict_t | children () |
|
xbt_dynar_t | hosts () |
|
std::unordered_map< std::string, std::string > * | properties () |
| Get the properties assigned to a host. More...
|
|
const char * | property (const char *key) |
| Retrieve the property value (or nullptr if not set) More...
|
|
void | setProperty (const char *key, const char *value) |
|
virtual int | addComponent (kernel::routing::NetCard *elm) |
|