Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
merge smpi_replay_init and smpi_replay_finalize into smpi_replay_run
authorMartin Quinson <martin.quinson@loria.fr>
Thu, 18 Jun 2015 10:22:34 +0000 (12:22 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Thu, 18 Jun 2015 10:23:57 +0000 (12:23 +0200)
examples/smpi/replay/replay.c
examples/smpi/replay/smpi_replay.tesh
examples/smpi/replay_multiple/replay_multiple.c
include/smpi/smpi.h
src/smpi/smpi_replay.c

index 24c1a0e..87ca15c 100644 (file)
@@ -8,7 +8,6 @@
 #include "smpi/smpi.h"
 
 int main(int argc, char *argv[]) {
 #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;
 }
   return 0;
 }
index f429865..f20f1ff 100644 (file)
@@ -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"
 > 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
 > 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
 > 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
 > 13 14.286929 2 2
 > 12 14.286929 2 2 8
 > 13 18.250974 2 1
index dcc0ad4..9a627e4 100644 (file)
 XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
                "Messages specific for this msg example");
 
 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;
 }
 
        return 0;
 }
 
index f7ac21d..81fc265 100644 (file)
@@ -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_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);
 
 XBT_PUBLIC(void) SMPI_app_instance_register(const char *name, xbt_main_func_t code, int num_processes);
 XBT_PUBLIC(void) SMPI_init(void);
index 9ccdce0..dc2a51f 100644 (file)
@@ -1037,7 +1037,8 @@ static void action_allToAllv(const char *const *action) {
   xbt_free(recvdisps);
 }
 
   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);
   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_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);
 
   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);
   }
   
     smpi_execute_flops(0.0);
   }
   
+  /* Actually run the replay */
   xbt_replay_action_runner(*argc, *argv);
   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[*]",
   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;
   }
   
     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();
 
 
   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();
   TRACE_smpi_finalize(smpi_process_index());
   smpi_process_destroy();
-  return MPI_SUCCESS;
+  free(operation);
 }
 }