Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
MC_restore_communications_pattern() and MC_patterns_copy() moved to CommunicationDete...
authorEhsan Azimi <eazimi@ehsan.irisa.fr>
Mon, 30 Nov 2020 17:39:03 +0000 (18:39 +0100)
committerEhsan Azimi <eazimi@ehsan.irisa.fr>
Mon, 30 Nov 2020 17:39:03 +0000 (18:39 +0100)
mc_comm_pattern.cpp dissolved

src/mc/checker/CommunicationDeterminismChecker.cpp
src/mc/mc_comm_pattern.cpp [deleted file]
tools/cmake/DefinePackages.cmake

index a23e2ca..c959f92 100644 (file)
@@ -30,6 +30,24 @@ std::vector<std::vector<simgrid::mc::PatternCommunication*>> incomplete_communic
 
 /********** Static functions ***********/
 
+void copy_incomplete_comm_pattern(simgrid::mc::State* state)
+{
+  state->incomplete_comm_pattern_.clear();
+  for (unsigned i=0; i < MC_smx_get_maxpid(); i++) {
+    std::vector<simgrid::mc::PatternCommunication> res;
+    for (auto const& comm : incomplete_communications_pattern[i])
+      res.push_back(comm->dup());
+    state->incomplete_comm_pattern_.push_back(std::move(res));
+  }
+}
+
+void copy_index_comm_pattern(simgrid::mc::State* state)
+{
+  state->communication_indices_.clear();
+  for (auto const& list_process_comm : initial_communications_pattern)
+    state->communication_indices_.push_back(list_process_comm.index_comm);
+}
+
 static simgrid::mc::CommPatternDifference compare_comm_pattern(const simgrid::mc::PatternCommunication* comm1,
                                                                const simgrid::mc::PatternCommunication* comm2)
 {
@@ -51,6 +69,25 @@ static simgrid::mc::CommPatternDifference compare_comm_pattern(const simgrid::mc
   return CommPatternDifference::NONE;
 }
 
+static void patterns_copy(std::vector<simgrid::mc::PatternCommunication*>& dest,
+                             std::vector<simgrid::mc::PatternCommunication> const& source)
+{
+  dest.clear();
+  for (simgrid::mc::PatternCommunication const& comm : source) {
+    auto* copy_comm = new simgrid::mc::PatternCommunication(comm.dup());
+    dest.push_back(copy_comm);
+  }
+}
+
+void restore_communications_pattern(simgrid::mc::State* state)
+{
+  for (unsigned i = 0; i < initial_communications_pattern.size(); i++)
+    initial_communications_pattern[i].index_comm = state->communication_indices_[i];
+
+  for (unsigned i = 0; i < mcapi::get().get_maxpid(); i++)
+    patterns_copy(incomplete_communications_pattern[i], state->incomplete_comm_pattern_[i]);
+}
+
 static char* print_determinism_result(simgrid::mc::CommPatternDifference diff, int process,
                                       const simgrid::mc::PatternCommunication* comm, unsigned int cursor)
 {
@@ -338,7 +375,7 @@ void CommunicationDeterminismChecker::restoreState()
   State* last_state = stack_.back().get();
   if (last_state->system_state_) {
     mc_api::get().restore_state(last_state->system_state_);
-    MC_restore_communications_pattern(last_state);
+    restore_communications_pattern(last_state);
     return;
   }
 
diff --git a/src/mc/mc_comm_pattern.cpp b/src/mc/mc_comm_pattern.cpp
deleted file mode 100644 (file)
index e3ead2c..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (c) 2007-2020. The SimGrid Team. All rights reserved.          */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include <cstring>
-
-#include "src/mc/checker/CommunicationDeterminismChecker.hpp"
-#include "src/mc/mc_smx.hpp"
-
-using simgrid::mc::remote;
-
-static void MC_patterns_copy(std::vector<simgrid::mc::PatternCommunication*>& dest,
-                             std::vector<simgrid::mc::PatternCommunication> const& source)
-{
-  dest.clear();
-  for (simgrid::mc::PatternCommunication const& comm : source) {
-    auto* copy_comm = new simgrid::mc::PatternCommunication(comm.dup());
-    dest.push_back(copy_comm);
-  }
-}
-
-void MC_restore_communications_pattern(simgrid::mc::State* state)
-{
-  for (unsigned i = 0; i < initial_communications_pattern.size(); i++)
-    initial_communications_pattern[i].index_comm = state->communication_indices_[i];
-
-  for (unsigned i = 0; i < MC_smx_get_maxpid(); i++)
-    MC_patterns_copy(incomplete_communications_pattern[i], state->incomplete_comm_pattern_[i]);
-}
\ No newline at end of file
index 27bf5f8..aeb9429 100644 (file)
@@ -658,7 +658,6 @@ set(MC_SRC
   src/mc/mc_forward.hpp
   src/mc/Session.cpp
   src/mc/Session.hpp
-  src/mc/mc_comm_pattern.cpp
   src/mc/mc_comm_pattern.hpp
   src/mc/mc_pattern.hpp
   src/mc/compare.cpp