Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Factorize common code to assemble vector<LinkImpl*> and update latency.
[simgrid.git] / src / kernel / routing / TorusZone.cpp
index 21b83cf..65d846e 100644 (file)
@@ -64,14 +64,13 @@ std::vector<unsigned int> TorusZone::parse_topo_parameters(const std::string& to
   boost::split(dimensions_str, topo_parameters, boost::is_any_of(","));
   std::vector<unsigned int> dimensions;
 
-  if (not dimensions_str.empty()) {
-    /* We are in a torus cluster
-     * Parse attribute dimensions="dim1,dim2,dim3,...,dimN" and save them into a vector.
-     * Additionally, we need to know how many ranks we have in total
-     */
-    std::transform(begin(dimensions_str), end(dimensions_str), std::back_inserter(dimensions),
-                   [](const std::string& s) { return std::stoi(s); });
-  }
+  /* We are in a torus cluster
+   * Parse attribute dimensions="dim1,dim2,dim3,...,dimN" and save them into a vector.
+   * Additionally, we need to know how many ranks we have in total
+   */
+  std::transform(begin(dimensions_str), end(dimensions_str), std::back_inserter(dimensions),
+                 [](const std::string& s) { return std::stoi(s); });
+
   return dimensions;
 }
 
@@ -92,9 +91,7 @@ void TorusZone::get_local_route(const NetPoint* src, const NetPoint* dst, Route*
   if (src->id() == dst->id() && has_loopback()) {
     resource::LinkImpl* uplink = get_uplink_from(node_pos(src->id()));
 
-    route->link_list_.push_back(uplink);
-    if (lat)
-      *lat += uplink->get_latency();
+    add_link_latency(route->link_list_, uplink, lat);
     return;
   }
 
@@ -177,9 +174,7 @@ void TorusZone::get_local_route(const NetPoint* src, const NetPoint* dst, Route*
     else
       lnk = get_downlink_to(linkOffset);
 
-    route->link_list_.push_back(lnk);
-    if (lat)
-      *lat += lnk->get_latency();
+    add_link_latency(route->link_list_, lnk, lat);
 
     current_node = next_node;
   }