X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/da6b18121779fcbadaef944c4bafe2d9451fe5be..e522baefab7dc4881c9ea30d3ca95cf015ddd6d9:/src/kernel/routing/TorusZone.cpp?ds=sidebyside diff --git a/src/kernel/routing/TorusZone.cpp b/src/kernel/routing/TorusZone.cpp index dca285d1eb..a369c14ff0 100644 --- a/src/kernel/routing/TorusZone.cpp +++ b/src/kernel/routing/TorusZone.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2016. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2014-2017. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -45,7 +45,8 @@ void TorusZone::create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, ? rank - (current_dimension - 1) * dim_product : rank + dim_product; // name of neighbor is not right for non contiguous cluster radicals (as id != rank in this case) - char* link_id = bprintf("%s_link_from_%i_to_%i", cluster->id, id, neighbor_rank_id); + std::string link_id = + std::string(cluster->id) + "_link_from_" + std::to_string(id) + "_to_" + std::to_string(neighbor_rank_id); link.id = link_id; link.bandwidth = cluster->bw; link.latency = cluster->lat; @@ -54,12 +55,10 @@ void TorusZone::create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, surf::LinkImpl* linkUp; surf::LinkImpl* linkDown; if (link.policy == SURF_LINK_FULLDUPLEX) { - char* tmp_link = bprintf("%s_UP", link_id); + std::string tmp_link = link_id + "_UP"; linkUp = surf::LinkImpl::byName(tmp_link); - free(tmp_link); - tmp_link = bprintf("%s_DOWN", link_id); + tmp_link = link_id + "_DOWN"; linkDown = surf::LinkImpl::byName(tmp_link); - free(tmp_link); } else { linkUp = surf::LinkImpl::byName(link_id); linkDown = linkUp; @@ -71,7 +70,6 @@ void TorusZone::create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, */ privateLinks_.insert({position + j, {linkUp, linkDown}}); dim_product *= current_dimension; - xbt_free(link_id); } rank++; } @@ -97,7 +95,7 @@ void TorusZone::parse_specific_arguments(sg_platf_cluster_cbarg_t cluster) void TorusZone::getLocalRoute(NetPoint* src, NetPoint* dst, sg_platf_route_cbarg_t route, double* lat) { - XBT_VERB("torus getLocalRoute from '%s'[%d] to '%s'[%d]", src->name().c_str(), src->id(), dst->name().c_str(), + XBT_VERB("torus getLocalRoute from '%s'[%u] to '%s'[%u]", src->name().c_str(), src->id(), dst->name().c_str(), dst->id()); if (dst->isRouter() || src->isRouter()) @@ -116,7 +114,6 @@ void TorusZone::getLocalRoute(NetPoint* src, NetPoint* dst, sg_platf_route_cbarg * Dimension based routing routes through each dimension consecutively * TODO Change to dynamic assignment */ - unsigned int dim_product = 1; unsigned int current_node = src->id(); unsigned int next_node = 0; /* @@ -142,7 +139,7 @@ void TorusZone::getLocalRoute(NetPoint* src, NetPoint* dst, sg_platf_route_cbarg bool use_lnk_up = false; // Is this link of the form "cur -> next" or "next -> cur"? // false means: next -> cur while (current_node != dst->id()) { - dim_product = 1; // First, we will route in x-dimension + unsigned int dim_product = 1; // First, we will route in x-dimension int j=0; for (auto cur_dim : dimensions_){ // current_node/dim_product = position in current dimension @@ -176,7 +173,7 @@ void TorusZone::getLocalRoute(NetPoint* src, NetPoint* dst, sg_platf_route_cbarg assert(linkOffset >= 0); } - XBT_DEBUG("torus_get_route_and_latency - current_node: %i, next_node: %u, linkOffset is %i", current_node, + XBT_DEBUG("torus_get_route_and_latency - current_node: %u, next_node: %u, linkOffset is %i", current_node, next_node, linkOffset); break; }