Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
hide this from users
[simgrid.git] / src / smpi / smpi_topo.hpp
index a7a5b55..472b927 100644 (file)
@@ -9,6 +9,12 @@
 
 #include "private.h"
 
+typedef enum MPIR_Topo_type {
+  MPI_GRAPH=1,
+  MPI_CART=2,
+  MPI_DIST_GRAPH=3,
+  MPI_INVALID_TOPO=-1
+} MPIR_Topo_type;
 
 namespace simgrid{
 namespace smpi{
@@ -19,18 +25,18 @@ class Topo {
 };
 
 
-class Cart: public Topo {
+class Topo_Cart: public Topo {
   private:
-    int nnodes_;
+    int nnodes_ = 0;
     int ndims_;
     int *dims_;
     int *periodic_;
     int *position_;
   public:
-    Cart(int ndims);
-    ~Cart();
-    Cart(MPI_Comm comm_old, int ndims, int dims[], int periods[], int reorder, MPI_Comm *comm_cart);
-    Cart* sub(const int remain_dims[], MPI_Comm *newcomm) ;
+    Topo_Cart(int ndims);
+    ~Topo_Cart();
+    Topo_Cart(MPI_Comm comm_old, int ndims, int dims[], int periods[], int reorder, MPI_Comm *comm_cart);
+    Topo_Cart* sub(const int remain_dims[], MPI_Comm *newcomm) ;
     int coords(int rank, int maxdims, int coords[]) ;
     int get(int maxdims, int* dims, int* periods, int* coords);
     int rank(int* coords, int* rank);
@@ -39,18 +45,18 @@ class Cart: public Topo {
 };
 
 
-class Graph: public Topo {
+class Topo_Graph: public Topo {
   private:
     int nnodes_;
     int nedges_;
     int *index_;
     int *edges_;
   public:
-    Graph();
-    ~Graph();
+    Topo_Graph();
+    ~Topo_Graph();
 };
 
-class Dist_Graph: public Topo {
+class Topo_Dist_Graph: public Topo {
   private:
     int indegree_;
     int *in_;
@@ -60,8 +66,8 @@ class Dist_Graph: public Topo {
     int *out_weights_;
     int is_weighted_;
   public:
-    Dist_Graph();
-    ~Dist_Graph();
+    Topo_Dist_Graph();
+    ~Topo_Dist_Graph();
 };
 
 /*