Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
This should ease the future implementation of graphes in smpi
[simgrid.git] / src / smpi / private.h
index 24f5670..b98f679 100644 (file)
@@ -14,7 +14,6 @@
 #include "simgrid/simix.h"
 #include "smpi/smpi_interface.h"
 #include "smpi/smpi.h"
-#include "smpi/smpif.h"
 #include "smpi/smpi_cocci.h"
 #include "instr/instr_private.h"
 
@@ -114,19 +113,34 @@ int smpi_process_finalized(void);
 int smpi_process_initialized(void);
 void smpi_process_mark_as_initialized(void);
 
+struct s_smpi_mpi_cart_topology;
+typedef struct s_smpi_mpi_cart_topology *MPIR_Cart_Topology;
+
+struct s_smpi_mpi_graph_topology;
+typedef struct s_smpi_mpi_graph_topology *MPIR_Graph_Topology;
+
+struct s_smpi_dist_graph_topology;
+typedef struct s_smpi_dist_graph_topology *MPIR_Dist_Graph_Topology;
+
+// MPI_Topology defined in smpi.h, as it is public
+
 void smpi_topo_destroy(MPI_Topology topo);
-MPI_Topology smpi_topo_create(int ndims);
+MPI_Topology smpi_topo_create(MPIR_Topo_type kind);
+void smpi_cart_topo_destroy(MPIR_Cart_Topology cart);
+MPI_Topology smpi_cart_topo_create(int ndims);
 int smpi_mpi_cart_create(MPI_Comm comm_old, int ndims, int dims[],
-                         int periodic[], int reorder, MPI_Comm *comm_cart);
-int smpi_mpi_cart_shift(MPI_Comm comm, int direction, int disp,
-                        int *rank_source, int *rank_dest);
-int smpi_mpi_cart_rank(MPI_Comm comm, int* coords, int* rank);
-int smpi_mpi_cart_get(MPI_Comm comm, int maxdims, int* dims, int* periods, int* coords);
+                         int periods[], int reorder, MPI_Comm *comm_cart);
+int smpi_mpi_cart_sub(MPI_Comm comm, const int remain_dims[], MPI_Comm *newcomm);
 int smpi_mpi_cart_coords(MPI_Comm comm, int rank, int maxdims,
                          int coords[]);
+int smpi_mpi_cart_get(MPI_Comm comm, int maxdims, int* dims, int* periods,
+                      int* coords);
+int smpi_mpi_cart_rank(MPI_Comm comm, int* coords, int* rank);
+int smpi_mpi_cart_shift(MPI_Comm comm, int direction, int disp,
+                        int *rank_source, int *rank_dest);
 int smpi_mpi_cartdim_get(MPI_Comm comm, int *ndims);
 int smpi_mpi_dims_create(int nnodes, int ndims, int dims[]);
-int smpi_mpi_cart_sub(MPI_Comm comm, const int remain_dims[], MPI_Comm *newcomm);
+
 
 smpi_process_data_t smpi_process_data(void);
 smpi_process_data_t smpi_process_remote_data(int index);
@@ -155,6 +169,8 @@ void print_request(const char *message, MPI_Request request);
 void smpi_global_init(void);
 void smpi_global_destroy(void);
 
+int is_datatype_valid(MPI_Datatype datatype);
+
 size_t smpi_datatype_size(MPI_Datatype datatype);
 MPI_Aint smpi_datatype_lb(MPI_Datatype datatype);
 MPI_Aint smpi_datatype_ub(MPI_Datatype datatype);
@@ -593,6 +609,8 @@ void mpi_comm_spawn_multiple_ ( int* count, char *array_of_commands, char** arra
  int* comm, int*intercomm, int* array_of_errcodes, int* ierr);
 void mpi_comm_get_parent_ ( int*parent, int* ierr);
 
+
+#ifdef HAVE_TRACING
 /********** Tracing **********/
 /* from smpi_instr.c */
 void TRACE_internal_smpi_set_category (const char *category);
@@ -615,7 +633,7 @@ void TRACE_smpi_send(int rank, int src, int dst, int size);
 void TRACE_smpi_recv(int rank, int src, int dst);
 void TRACE_smpi_init(int rank);
 void TRACE_smpi_finalize(int rank);
-
+#endif
 
 const char* encode_datatype(MPI_Datatype datatype);