Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[smpi] replay: increase storage dynamicity
authorMillian Poquet <millian.poquet@inria.fr>
Thu, 31 May 2018 13:55:26 +0000 (15:55 +0200)
committerMillian Poquet <millian.poquet@inria.fr>
Fri, 29 Jun 2018 12:53:58 +0000 (14:53 +0200)
Storing data associated to a SMPI process is now done in the
smpi_replay_main function -- previously it was done at initialization
time.

This allows more dynamicity regarding the replay of SMPI traces:
One will now be able to replay different traces in a fully dynamic
fashion.

src/smpi/internals/smpi_replay.cpp

index f043083..e503a21 100644 (file)
@@ -706,9 +706,6 @@ void smpi_replay_init(int* argc, char*** argv)
   smpi_process()->set_replaying(true);
 
   int my_proc_id = simgrid::s4u::this_actor::get_pid();
   smpi_process()->set_replaying(true);
 
   int my_proc_id = simgrid::s4u::this_actor::get_pid();
-  for (int i = 0; i < smpi_process_count(); i++) {
-    storage[i] = simgrid::smpi::replay::RequestStorage();
-  }
 
   TRACE_smpi_init(my_proc_id);
   TRACE_smpi_computing_init(my_proc_id);
 
   TRACE_smpi_init(my_proc_id);
   TRACE_smpi_computing_init(my_proc_id);
@@ -758,6 +755,7 @@ void smpi_replay_main(int* argc, char*** argv)
 {
   static int active_processes = 0;
   active_processes++;
 {
   static int active_processes = 0;
   active_processes++;
+  storage[simgrid::s4u::this_actor::get_pid()] = simgrid::smpi::replay::RequestStorage();
   simgrid::xbt::replay_runner(*argc, *argv);
 
   /* and now, finalize everything */
   simgrid::xbt::replay_runner(*argc, *argv);
 
   /* and now, finalize everything */