X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/31904a7e115f103fc2c2d124d7edded36367dc80..91bb8b44ef09735fc79f40a3d9eeb69456a46909:/src/smpi/smpi_global.c diff --git a/src/smpi/smpi_global.c b/src/smpi/smpi_global.c index 842b659dbd..0616abdc19 100644 --- a/src/smpi/smpi_global.c +++ b/src/smpi/smpi_global.c @@ -30,6 +30,7 @@ typedef struct s_smpi_process_data { void *data; /* user data */ int index; int initialized; + int sampling; /* inside an SMPI_SAMPLE_ block? */ } s_smpi_process_data_t; static smpi_process_data_t *process_data = NULL; @@ -67,6 +68,9 @@ void smpi_process_init(int *argc, char ***argv) if (argc && argv) { proc = SIMIX_process_self(); index = atoi((*argv)[1]); +#ifdef SMPI_F2C + smpi_current_rank = index; +#endif data = smpi_process_remote_data(index); simcall_process_set_data(proc, data); if (*argc > 2) { @@ -253,6 +257,18 @@ MPI_Comm smpi_process_comm_self(void) return data->comm_self; } +void smpi_process_set_sampling(int s) +{ + smpi_process_data_t data = smpi_process_data(); + data->sampling = s; +} + +int smpi_process_get_sampling(void) +{ + smpi_process_data_t data = smpi_process_data(); + return data->sampling; +} + void print_request(const char *message, MPI_Request request) { XBT_DEBUG @@ -261,7 +277,7 @@ void print_request(const char *message, MPI_Request request) request->dst, request->tag, request->flags); } -static void SMPI_comm_copy_buffer_callback(smx_action_t comm, +static void smpi_comm_copy_buffer_callback(smx_action_t comm, void *buff, size_t buff_size) { XBT_DEBUG("Copy the data over"); @@ -284,7 +300,7 @@ void smpi_global_init(void) MPI_Group group; char name[MAILBOX_NAME_MAXLEN]; - SIMIX_comm_set_copy_data_callback(&SMPI_comm_copy_buffer_callback); + SIMIX_comm_set_copy_data_callback(&smpi_comm_copy_buffer_callback); process_count = SIMIX_process_count(); process_data = xbt_new(smpi_process_data_t, process_count); for (i = 0; i < process_count; i++) { @@ -301,6 +317,7 @@ void smpi_global_init(void) group = smpi_group_new(1); process_data[i]->comm_self = smpi_comm_new(group); process_data[i]->initialized = 0; + process_data[i]->sampling = 0; smpi_group_set_mapping(group, i, 0); } @@ -393,14 +410,15 @@ int smpi_main(int (*realmain) (int argc, char *argv[]), int argc, char *argv[]) XBT_LOG_CONNECT(smpi_base); XBT_LOG_CONNECT(smpi_bench); XBT_LOG_CONNECT(smpi_coll); + XBT_LOG_CONNECT(smpi_colls); XBT_LOG_CONNECT(smpi_comm); + XBT_LOG_CONNECT(smpi_dvfs); XBT_LOG_CONNECT(smpi_group); XBT_LOG_CONNECT(smpi_kernel); XBT_LOG_CONNECT(smpi_mpi); XBT_LOG_CONNECT(smpi_mpi_dt); XBT_LOG_CONNECT(smpi_pmpi); XBT_LOG_CONNECT(smpi_replay); - XBT_LOG_CONNECT(smpi_colls); #ifdef HAVE_TRACING TRACE_global_init(&argc, argv);