#include "colls/colls.h"
#include "simgrid/sg_config.h"
-XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_coll, smpi,
- "Logging specific to SMPI (coll)");
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_coll, smpi, "Logging specific to SMPI (coll)");
s_mpi_coll_description_t mpi_coll_gather_description[] = {
- {"default",
- "gather default collective",
- (void*)smpi_mpi_gather},
-COLL_GATHERS(COLL_DESCRIPTION, COLL_COMMA),
- {NULL, NULL, NULL} /* this array must be NULL terminated */
+ {"default", "gather default collective", (void*)smpi_mpi_gather},
+ COLL_GATHERS(COLL_DESCRIPTION, COLL_COMMA), {NULL, NULL, NULL} /* this array must be NULL terminated */
};
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);
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;
}
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, ", ");
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,