XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_cluster_torus, surf_route_cluster, "Torus Routing part of surf");
-inline void rankId_to_coords(int rankId, std::vector<unsigned int> dimensions, unsigned int coords[4])
+inline void rankId_to_coords(int rankId, std::vector<unsigned int> dimensions, unsigned int* coords)
{
unsigned int dim_size_product = 1;
unsigned int i = 0;
namespace simgrid {
namespace kernel {
namespace routing {
-TorusZone::TorusZone(NetZone* father, std::string name) : ClusterZone(father, name)
+TorusZone::TorusZone(NetZoneImpl* father, std::string name, resource::NetworkModel* netmodel)
+ : ClusterZone(father, name, netmodel)
{
}
resource::LinkImpl* linkUp;
resource::LinkImpl* linkDown;
if (link.policy == s4u::Link::SharingPolicy::SPLITDUPLEX) {
- std::string tmp_link = link_id + "_UP";
- linkUp = resource::LinkImpl::byName(tmp_link);
- tmp_link = link_id + "_DOWN";
- linkDown = resource::LinkImpl::byName(tmp_link);
+ linkUp = s4u::Link::by_name(link_id + "_UP")->get_impl();
+ linkDown = s4u::Link::by_name(link_id + "_DOWN")->get_impl();
} else {
- linkUp = resource::LinkImpl::byName(link_id);
+ linkUp = s4u::Link::by_name(link_id)->get_impl();
linkDown = linkUp;
}
/*
route->link_list.push_back(info.first);
if (lat)
- *lat += info.first->latency();
+ *lat += info.first->get_latency();
return;
}
* Arrays that hold the coordinates of the current node andthe target; comparing the values at the i-th position of
* both arrays, we can easily assess whether we need to route into this dimension or not.
*/
- unsigned int myCoords[4];
+ unsigned int myCoords[dimensions_.size()];
rankId_to_coords(src->id(), dimensions_, myCoords);
- unsigned int targetCoords[4];
+ unsigned int targetCoords[dimensions_.size()];
rankId_to_coords(dst->id(), dimensions_, targetCoords);
/*
* linkOffset describes the offset where the link we want to use is stored(+1 is added because each node has a link
if (use_lnk_up == false) {
route->link_list.push_back(info.second);
if (lat)
- *lat += info.second->latency();
+ *lat += info.second->get_latency();
} else {
route->link_list.push_back(info.first);
if (lat)
- *lat += info.first->latency();
+ *lat += info.first->get_latency();
}
current_node = next_node;
next_node = 0;