Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
[simgrid.git] / src / smpi / smpi_coll.cpp
index 1df9861..3d50a57 100644 (file)
@@ -122,14 +122,14 @@ void coll_help(const char *category, s_mpi_coll_description_t * table)
 int find_coll_description(s_mpi_coll_description_t * table,
                            char *name, const char *desc)
 {
-  int i;
   char *name_list = NULL;
   int selector_on=0;
-  if(name==NULL){//no argument provided, use active selector's algorithm
-    name=(char*)sg_cfg_get_string("smpi/coll_selector");
+  if (name==NULL || name[0] == '\0') {
+    //no argument provided, use active selector's algorithm
+    name=(char*)xbt_cfg_get_string("smpi/coll-selector");
     selector_on=1;
   }
-  for (i = 0; table[i].name; i++)
+  for (int i = 0; table[i].name; i++)
     if (!strcmp(name, table[i].name)) {
       if (strcmp(table[i].name,"default"))
         XBT_INFO("Switch to algorithm %s for collective %s",table[i].name,desc);
@@ -139,7 +139,7 @@ int find_coll_description(s_mpi_coll_description_t * table,
   if(selector_on){
     // collective seems not handled by the active selector, try with default one
     name=(char*)"default";
-    for (i = 0; table[i].name; i++)
+    for (int i = 0; table[i].name; i++)
       if (!strcmp(name, table[i].name)) {
         return i;
     }
@@ -147,7 +147,7 @@ int find_coll_description(s_mpi_coll_description_t * table,
   if (!table[0].name)
     xbt_die("No collective is valid for '%s'! This is a bug.",name);
   name_list = xbt_strdup(table[0].name);
-  for (i = 1; table[i].name; i++) {
+  for (int i = 1; table[i].name; i++) {
     name_list = static_cast<char*>(xbt_realloc(name_list,
                     strlen(name_list) + strlen(table[i].name) + 3));
     strcat(name_list, ", ");
@@ -168,6 +168,7 @@ int (*mpi_coll_reduce_fun)(void *buf, void *rbuf, int count, MPI_Datatype dataty
 int (*mpi_coll_reduce_scatter_fun)(void *sbuf, void *rbuf, int *rcounts,MPI_Datatype dtype,MPI_Op  op,MPI_Comm  comm);
 int (*mpi_coll_scatter_fun)(void *sendbuf, int sendcount, MPI_Datatype sendtype,void *recvbuf, int recvcount, MPI_Datatype recvtype,int root, MPI_Comm comm);
 int (*mpi_coll_barrier_fun)(MPI_Comm comm);
+void (*smpi_coll_cleanup_callback)(void);
 
 
 int smpi_coll_tuned_alltoall_ompi2(void *sendbuf, int sendcount,