Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Missing include.
[simgrid.git] / src / smpi / smpi_mpi.c
index 505d92d..bb04f50 100644 (file)
@@ -5,6 +5,7 @@
   * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "private.h"
+#include "simgrid/sg_config.h"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_mpi, smpi,
                                 "Logging specific to SMPI (mpi)");
@@ -13,6 +14,18 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_mpi, smpi,
 
 int MPI_Init(int *argc, char ***argv)
 {
+  int alltoall_id = find_coll_description(mpi_coll_alltoall_description,
+                                          sg_cfg_get_string("smpi/alltoall"));
+  mpi_coll_alltoall_fun = (int (*)(void *, int, MPI_Datatype,
+                                  void*, int, MPI_Datatype, MPI_Comm))
+                         mpi_coll_alltoall_description[alltoall_id].coll;
+
+  int allgather_id = find_coll_description(mpi_coll_allgather_description,
+                                           sg_cfg_get_string("smpi/allgather"));
+  mpi_coll_allgather_fun = (int (*)(void *, int, MPI_Datatype,
+                                   void*, int, MPI_Datatype, MPI_Comm))
+                          mpi_coll_allgather_description[allgather_id].coll;
+
   return PMPI_Init(argc, argv);
 }
 
@@ -61,6 +74,11 @@ int MPI_Type_free(MPI_Datatype * datatype)
   return PMPI_Type_free(datatype);
 }
 
+int MPI_Pcontrol(const int level )
+{
+  return PMPI_Pcontrol(level);
+}
+
 int MPI_Type_size(MPI_Datatype datatype, int *size)
 {
   return PMPI_Type_size(datatype, size);