Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[smpi] replay: storage var is now an ordered_map
authorMillian Poquet <millian.poquet@inria.fr>
Thu, 31 May 2018 13:24:39 +0000 (15:24 +0200)
committerMillian Poquet <millian.poquet@inria.fr>
Fri, 29 Jun 2018 12:53:06 +0000 (14:53 +0200)
This commit is kept separate because it does not change the
code semantics at all, it just changes the data structure.

src/smpi/internals/smpi_replay.cpp

index 8d6b628..0b9995c 100644 (file)
@@ -697,7 +697,7 @@ void AllToAllVAction::kernel(simgrid::xbt::ReplayAction& action)
 } // Replay Namespace
 }} // namespace simgrid::smpi
 
 } // Replay Namespace
 }} // namespace simgrid::smpi
 
-static std::vector<simgrid::smpi::replay::RequestStorage> storage;
+static std::unordered_map<aid_t, simgrid::smpi::replay::RequestStorage> storage;
 /** @brief Only initialize the replay, don't do it for real */
 void smpi_replay_init(int* argc, char*** argv)
 {
 /** @brief Only initialize the replay, don't do it for real */
 void smpi_replay_init(int* argc, char*** argv)
 {
@@ -706,7 +706,9 @@ 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();
-  storage.resize(smpi_process_count());
+  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);