From 94653f82c2c82911c12625c2e08c6f2a84c8a947 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Thu, 18 Jun 2015 12:22:34 +0200 Subject: [PATCH] merge smpi_replay_init and smpi_replay_finalize into smpi_replay_run --- examples/smpi/replay/replay.c | 3 +-- examples/smpi/replay/smpi_replay.tesh | 4 +-- .../smpi/replay_multiple/replay_multiple.c | 8 ++---- include/smpi/smpi.h | 3 +-- src/smpi/smpi_replay.c | 26 ++++++++++--------- 5 files changed, 20 insertions(+), 24 deletions(-) diff --git a/examples/smpi/replay/replay.c b/examples/smpi/replay/replay.c index 24c1a0e592..87ca15c478 100644 --- a/examples/smpi/replay/replay.c +++ b/examples/smpi/replay/replay.c @@ -8,7 +8,6 @@ #include "smpi/smpi.h" int main(int argc, char *argv[]) { - smpi_replay_init(&argc, &argv); - smpi_replay_finalize(); + smpi_replay_run(&argc, &argv); return 0; } diff --git a/examples/smpi/replay/smpi_replay.tesh b/examples/smpi/replay/smpi_replay.tesh index f42986552b..f20f1ff24b 100644 --- a/examples/smpi/replay/smpi_replay.tesh +++ b/examples/smpi/replay/smpi_replay.tesh @@ -166,7 +166,7 @@ $ tail -n +3 ./simgrid.trace > 4 3 0 1 1 MPI_LINK > 6 0 1 1 0 "rank-0" > 5 4 2 computing "0 1 1" -> 5 5 2 smpi_replay_init "0 1 0" +> 5 5 2 smpi_replay_run_init "0 1 0" > 6 0 2 1 0 "rank-1" > 6 0 3 1 0 "rank-2" > 12 0 2 1 4 @@ -207,7 +207,7 @@ $ tail -n +3 ./simgrid.trace > 12 10.194200 2 1 7 > 13 13.138198 2 3 > 12 13.138198 2 3 7 -> 5 8 2 smpi_replay_finalize "0 1 0" +> 5 8 2 smpi_replay_run_finalize "0 1 0" > 13 14.286929 2 2 > 12 14.286929 2 2 8 > 13 18.250974 2 1 diff --git a/examples/smpi/replay_multiple/replay_multiple.c b/examples/smpi/replay_multiple/replay_multiple.c index dcc0ad4803..9a627e492d 100644 --- a/examples/smpi/replay_multiple/replay_multiple.c +++ b/examples/smpi/replay_multiple/replay_multiple.c @@ -15,12 +15,8 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example"); -int smpi_replay(int argc, char *argv[]); - -int smpi_replay(int argc, char *argv[]) -{ - smpi_replay_init(&argc, &argv); - smpi_replay_finalize(); +static int smpi_replay(int argc, char *argv[]) { + smpi_replay_run(&argc, &argv); return 0; } diff --git a/include/smpi/smpi.h b/include/smpi/smpi.h index f7ac21dd3f..81fc265b1b 100644 --- a/include/smpi/smpi.h +++ b/include/smpi/smpi.h @@ -884,8 +884,7 @@ XBT_PUBLIC(int) smpi_process_index(void); XBT_PUBLIC(void) smpi_process_init(int *argc, char ***argv); /* Trace replay specific stuff */ -XBT_PUBLIC(void) smpi_replay_init(int *argc, char***argv); -XBT_PUBLIC(int) smpi_replay_finalize(void); +XBT_PUBLIC(void) smpi_replay_run(int *argc, char***argv); XBT_PUBLIC(void) SMPI_app_instance_register(const char *name, xbt_main_func_t code, int num_processes); XBT_PUBLIC(void) SMPI_init(void); diff --git a/src/smpi/smpi_replay.c b/src/smpi/smpi_replay.c index 9ccdce00c0..dc2a51f3c3 100644 --- a/src/smpi/smpi_replay.c +++ b/src/smpi/smpi_replay.c @@ -1037,7 +1037,8 @@ static void action_allToAllv(const char *const *action) { xbt_free(recvdisps); } -void smpi_replay_init(int *argc, char***argv){ +void smpi_replay_run(int *argc, char***argv){ + /* First initializes everything */ smpi_process_init(argc, argv); smpi_process_mark_as_initialized(); smpi_process_set_replaying(1); @@ -1047,8 +1048,10 @@ void smpi_replay_init(int *argc, char***argv){ TRACE_smpi_computing_init(rank); instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1); extra->type = TRACING_INIT; - TRACE_smpi_collective_in(rank, -1, __FUNCTION__, extra); - TRACE_smpi_collective_out(rank, -1, __FUNCTION__); + char *operation =bprintf("%s_init",__FUNCTION__); + TRACE_smpi_collective_in(rank, -1, operation, extra); + TRACE_smpi_collective_out(rank, -1, operation); + free(operation); if (!_xbt_replay_action_init()) { xbt_replay_action_register("init", action_init); @@ -1091,10 +1094,10 @@ void smpi_replay_init(int *argc, char***argv){ smpi_execute_flops(0.0); } + /* Actually run the replay */ xbt_replay_action_runner(*argc, *argv); -} -int smpi_replay_finalize(){ + /* and now, finalize everything */ double sim_time= 1.; /* One active process will stop. Decrease the counter*/ XBT_DEBUG("There are %lu elements in reqq[*]", @@ -1131,16 +1134,15 @@ int smpi_replay_finalize(){ reqq = NULL; } - - int rank = smpi_process_index(); - instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1); - extra->type = TRACING_FINALIZE; - TRACE_smpi_collective_in(rank, -1, __FUNCTION__, extra); + instr_extra_data extra_fin = xbt_new0(s_instr_extra_data_t,1); + extra_fin->type = TRACING_FINALIZE; + operation =bprintf("%s_finalize",__FUNCTION__); + TRACE_smpi_collective_in(rank, -1, operation, extra_fin); smpi_process_finalize(); - TRACE_smpi_collective_out(rank, -1, __FUNCTION__); + TRACE_smpi_collective_out(rank, -1, operation); TRACE_smpi_finalize(smpi_process_index()); smpi_process_destroy(); - return MPI_SUCCESS; + free(operation); } -- 2.20.1