X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d367ff11bd2e88d47b9ba5e30f22c2b81473f08e..d92bc6ee22885a3c92996b6c9e749e6363bdb6ba:/src/smpi/colls/smpi_automatic_selector.c diff --git a/src/smpi/colls/smpi_automatic_selector.c b/src/smpi/colls/smpi_automatic_selector.c index 192ac0f892..9ab501ac86 100644 --- a/src/smpi/colls/smpi_automatic_selector.c +++ b/src/smpi/colls/smpi_automatic_selector.c @@ -4,6 +4,22 @@ //attempt to do a quick autotuning version of the collective, +#ifdef HAVE_TRACING +#define TRACE_AUTO_COLL(cat) if (TRACE_is_enabled()){\ + type_t type = PJ_type_get_or_null (#cat, PJ_type_get_root());\ + if (!type){\ + type=PJ_type_event_new(#cat, PJ_type_get_root());\ + }\ + char cont_name[25];\ + sprintf(cont_name, "rank-%d", smpi_process_index());\ + val_t value = PJ_value_get_or_new(mpi_coll_##cat##_description[i].name,"1.0 1.0 1.0", type);\ + new_pajeNewEvent (SIMIX_get_clock(), PJ_container_get(cont_name), type, value);\ + } +#else +#define TRACE_AUTO_COLL(cat) +#endif + + #define AUTOMATIC_COLL_BENCH(cat, ret, args, args2)\ ret smpi_coll_tuned_ ## cat ## _ ## automatic(COLL_UNPAREN args)\ {\ @@ -15,16 +31,7 @@ if(!strcmp(mpi_coll_##cat##_description[i].name, "automatic"))continue;\ if(!strcmp(mpi_coll_##cat##_description[i].name, "default"))continue;\ smpi_mpi_barrier(comm);\ - if (TRACE_is_enabled()){\ - type_t type = PJ_type_get_or_null (#cat, PJ_type_get_root());\ - if (!type){\ - type=PJ_type_event_new(#cat, PJ_type_get_root());\ - }\ - char* cont_name=malloc(25*sizeof(char*));\ - sprintf(cont_name, "rank-%d", smpi_process_index());\ - val_t value = PJ_value_get_or_new(mpi_coll_##cat##_description[i].name,"1.0 1.0 1.0", type);\ - new_pajeNewEvent (SIMIX_get_clock(), PJ_container_get(cont_name), type, value);\ - }\ + TRACE_AUTO_COLL(cat)\ time1 = SIMIX_get_clock();\ ((int (*) args)\ mpi_coll_##cat##_description[i].coll) args2 ;\ @@ -43,9 +50,9 @@ }\ }\ if(smpi_comm_rank(comm)==0){\ - XBT_WARN("For rank 0, the quickest was %s : %lf , but global was %s : %lf at max",mpi_coll_##cat##_description[min_coll].name, time_min,mpi_coll_##cat##_description[global_coll].name, max_min);\ + XBT_WARN("For rank 0, the quickest was %s : %f , but global was %s : %f at max",mpi_coll_##cat##_description[min_coll].name, time_min,mpi_coll_##cat##_description[global_coll].name, max_min);\ }else\ - XBT_WARN("The quickest reduce_scatter was %s on rank %d and took %lf",mpi_coll_##cat##_description[min_coll].name, smpi_comm_rank(comm), time_min);\ + XBT_WARN("The quickest %s was %s on rank %d and took %f",#cat,mpi_coll_##cat##_description[min_coll].name, smpi_comm_rank(comm), time_min);\ return (min_coll!=-1)?MPI_SUCCESS:MPI_ERR_INTERN;\ }\