A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
energy: less code dupplication
[simgrid.git]
/
src
/
surf
/
surf_routing_cluster_torus.cpp
diff --git
a/src/surf/surf_routing_cluster_torus.cpp
b/src/surf/surf_routing_cluster_torus.cpp
index
972254c
..
a371297
100644
(file)
--- a/
src/surf/surf_routing_cluster_torus.cpp
+++ b/
src/surf/surf_routing_cluster_torus.cpp
@@
-1,3
+1,9
@@
+/* Copyright (c) 2014-2015. 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. */
+
#include "surf_routing_cluster_torus.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_cluster_torus, surf_route_cluster, "Torus Routing part of surf");
#include "surf_routing_cluster_torus.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_cluster_torus, surf_route_cluster, "Torus Routing part of surf");
@@
-36,7
+42,7
@@
AsClusterTorus::~AsClusterTorus()
void AsClusterTorus::create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, int rank, int position){
void AsClusterTorus::create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, int rank, int position){
- s_sg_platf_link_cbarg_t link;
+ s_sg_platf_link_cbarg_t link
= SG_PLATF_LINK_INITIALIZER
;
char* link_id;
unsigned int j = 0;
/**
char* link_id;
unsigned int j = 0;
/**
@@
-64,15
+70,13
@@
void AsClusterTorus::create_links_for_node(sg_platf_cluster_cbarg_t cluster, int
s_surf_parsing_link_up_down_t info;
if (link.policy == SURF_LINK_FULLDUPLEX) {
char *tmp_link = bprintf("%s_UP", link_id);
s_surf_parsing_link_up_down_t info;
if (link.policy == SURF_LINK_FULLDUPLEX) {
char *tmp_link = bprintf("%s_UP", link_id);
- info.link_up =
- xbt_lib_get_or_null(link_lib, tmp_link, SURF_LINK_LEVEL);
+ info.link_up = Link::byName(tmp_link);
free(tmp_link);
tmp_link = bprintf("%s_DOWN", link_id);
free(tmp_link);
tmp_link = bprintf("%s_DOWN", link_id);
- info.link_down =
- xbt_lib_get_or_null(link_lib, tmp_link, SURF_LINK_LEVEL);
+ info.link_down = Link::byName(tmp_link);
free(tmp_link);
} else {
free(tmp_link);
} else {
- info.link_up =
xbt_lib_get_or_null(link_lib, link_id, SURF_LINK_LEVEL
);
+ info.link_up =
Link::byName(link_id
);
info.link_down = info.link_up;
}
/**
info.link_down = info.link_up;
}
/**
@@
-114,7
+118,7
@@
void AsClusterTorus::parse_specific_arguments(sg_platf_cluster_cbarg_t cluster){
xbt_dynar_free(&dimensions);
}
xbt_dynar_free(&dimensions);
}
-void AsClusterTorus::getRouteAndLatency(RoutingEdge
Ptr src, RoutingEdgePtr
dst, sg_platf_route_cbarg_t route, double *lat){
+void AsClusterTorus::getRouteAndLatency(RoutingEdge
*src, RoutingEdge *
dst, sg_platf_route_cbarg_t route, double *lat){
XBT_VERB("torus_get_route_and_latency from '%s'[%d] to '%s'[%d]",
src->getName(), src->getId(),
XBT_VERB("torus_get_route_and_latency from '%s'[%d] to '%s'[%d]",
src->getName(), src->getId(),
@@
-127,7
+131,7
@@
void AsClusterTorus::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst,
xbt_dynar_push_as(route->link_list, void *, info.link_up);
if (lat)
xbt_dynar_push_as(route->link_list, void *, info.link_up);
if (lat)
- *lat += static_cast<
NetworkLinkPtr
>(info.link_up)->getLatency();
+ *lat += static_cast<
Link*
>(info.link_up)->getLatency();
return;
}
return;
}
@@
-212,11
+216,17
@@
void AsClusterTorus::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst,
info = xbt_dynar_get_as(p_linkUpDownList,linkOffset, s_surf_parsing_link_up_down_t);
info = xbt_dynar_get_as(p_linkUpDownList,linkOffset, s_surf_parsing_link_up_down_t);
- if (use_lnk_up == false)
+ if (use_lnk_up == false)
{
xbt_dynar_push_as(route->link_list,void*,info.link_down);
xbt_dynar_push_as(route->link_list,void*,info.link_down);
- else
+
+ if (lat)
+ *lat += static_cast<Link*>(info.link_down)->getLatency();
+ }else{
xbt_dynar_push_as(route->link_list,void*,info.link_up);
xbt_dynar_push_as(route->link_list,void*,info.link_up);
+ if (lat)
+ *lat += static_cast<Link*>(info.link_up)->getLatency();
+ }
current_node = next_node;
next_node = 0;
}
current_node = next_node;
next_node = 0;
}