Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Missing include.
[simgrid.git] / src / smpi / smpi_mpi.c
index c709e0a..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);
 }
 
@@ -46,6 +59,11 @@ double MPI_Wtime(void)
   return PMPI_Wtime();
 }
 
+double MPI_Wtick(void)
+{
+  return PMPI_Wtick();
+}
+
 int MPI_Address(void *location, MPI_Aint * address)
 {
   return PMPI_Address(location, address);
@@ -56,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);
@@ -164,6 +187,11 @@ int MPI_Comm_size(MPI_Comm comm, int *size)
   return PMPI_Comm_size(comm, size);
 }
 
+int MPI_Comm_get_attr (MPI_Comm comm, int comm_keyval, void *attribute_val, int *flag)
+{
+  return PMPI_Comm_get_attr (comm, comm_keyval, attribute_val, flag);
+}
+
 int MPI_Comm_get_name (MPI_Comm comm, char* name, int* len)
 {
   return PMPI_Comm_get_name(comm, name, len);
@@ -194,6 +222,11 @@ int MPI_Comm_free(MPI_Comm * comm)
   return PMPI_Comm_free(comm);
 }
 
+int MPI_Comm_disconnect(MPI_Comm * comm)
+{
+  return PMPI_Comm_disconnect(comm);
+}
+
 int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm* comm_out)
 {
   return PMPI_Comm_split(comm, color, key, comm_out);