Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove superfluous indirection.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 16 Apr 2018 08:18:02 +0000 (10:18 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 16 Apr 2018 08:39:40 +0000 (10:39 +0200)
examples/s4u/routing-get-clusters/s4u-routing-get-clusters.cpp
include/simgrid/kernel/routing/DragonflyZone.hpp
src/kernel/routing/DragonflyZone.cpp
src/kernel/routing/TorusZone.cpp

index 51843c1..602c222 100644 (file)
@@ -40,7 +40,7 @@ int main(int argc, char* argv[])
       XBT_INFO("%s' dragonfly topology:", d->get_cname());
       for (int i = 0; i < d->getHostCount(); i++) {
         unsigned int coords[4];
-        d->rankId_to_coords(i, &coords);
+        d->rankId_to_coords(i, coords);
         XBT_INFO("   %d: (%u, %u, %u, %u)", i, coords[0], coords[1], coords[2], coords[3]);
       }
     }
index 2db8af0..d1efcd1 100644 (file)
@@ -71,7 +71,7 @@ public:
   void generateLinks();
   void createLink(const std::string& id, int numlinks, resource::LinkImpl** linkup, resource::LinkImpl** linkdown);
 
-  void rankId_to_coords(int rankId, unsigned int (*coords)[4]);
+  void rankId_to_coords(int rankId, unsigned int coords[4]);
 
 private:
   simgrid::s4u::Link::SharingPolicy sharing_policy_;
index af1f53b..9e23f69 100644 (file)
@@ -31,15 +31,15 @@ DragonflyZone::~DragonflyZone()
   }
 }
 
-void DragonflyZone::rankId_to_coords(int rankId, unsigned int (*coords)[4])
+void DragonflyZone::rankId_to_coords(int rankId, unsigned int coords[4])
 {
   // coords : group, chassis, blade, node
-  (*coords)[0] = rankId / (num_chassis_per_group_ * num_blades_per_chassis_ * num_nodes_per_blade_);
-  rankId       = rankId % (num_chassis_per_group_ * num_blades_per_chassis_ * num_nodes_per_blade_);
-  (*coords)[1] = rankId / (num_blades_per_chassis_ * num_nodes_per_blade_);
-  rankId       = rankId % (num_blades_per_chassis_ * num_nodes_per_blade_);
-  (*coords)[2] = rankId / num_nodes_per_blade_;
-  (*coords)[3] = rankId % num_nodes_per_blade_;
+  coords[0] = rankId / (num_chassis_per_group_ * num_blades_per_chassis_ * num_nodes_per_blade_);
+  rankId    = rankId % (num_chassis_per_group_ * num_blades_per_chassis_ * num_nodes_per_blade_);
+  coords[1] = rankId / (num_blades_per_chassis_ * num_nodes_per_blade_);
+  rankId    = rankId % (num_blades_per_chassis_ * num_nodes_per_blade_);
+  coords[2] = rankId / num_nodes_per_blade_;
+  coords[3] = rankId % num_nodes_per_blade_;
 }
 
 void DragonflyZone::parse_specific_arguments(ClusterCreationArgs* cluster)
@@ -285,9 +285,9 @@ void DragonflyZone::get_local_route(NetPoint* src, NetPoint* dst, RouteCreationA
   }
 
   unsigned int myCoords[4];
-  rankId_to_coords(src->id(), &myCoords);
+  rankId_to_coords(src->id(), myCoords);
   unsigned int targetCoords[4];
-  rankId_to_coords(dst->id(), &targetCoords);
+  rankId_to_coords(dst->id(), targetCoords);
   XBT_DEBUG("src : %u group, %u chassis, %u blade, %u node", myCoords[0], myCoords[1], myCoords[2], myCoords[3]);
   XBT_DEBUG("dst : %u group, %u chassis, %u blade, %u node", targetCoords[0], targetCoords[1], targetCoords[2],
             targetCoords[3]);
index c718ac6..ed962bc 100644 (file)
 
 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[4])
 {
   unsigned int dim_size_product = 1;
   unsigned int i = 0;
   for (auto const& cur_dim_size : dimensions) {
-    (*coords)[i] = (rankId / dim_size_product) % cur_dim_size;
+    coords[i] = (rankId / dim_size_product) % cur_dim_size;
     dim_size_product *= cur_dim_size;
     i++;
   }
@@ -121,9 +121,9 @@ void TorusZone::get_local_route(NetPoint* src, NetPoint* dst, RouteCreationArgs*
    * both arrays, we can easily assess whether we need to route into this dimension or not.
    */
   unsigned int myCoords[4];
-  rankId_to_coords(src->id(), dimensions_, &myCoords);
+  rankId_to_coords(src->id(), dimensions_, myCoords);
   unsigned int targetCoords[4];
-  rankId_to_coords(dst->id(), dimensions_, &targetCoords);
+  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
    * from itself to itself, which can only be the case if src->m_id == dst->m_id -- see above for this special case)