Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
rename smpi::Process to smpi::ActorExt
authorMartin Quinson <martin.quinson@loria.fr>
Thu, 12 Jul 2018 13:37:37 +0000 (15:37 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Thu, 12 Jul 2018 13:38:13 +0000 (15:38 +0200)
First step toward registering it as an official s4u::Actor extension,
to remove MSG from that loop too.

27 files changed:
include/simgrid/smpi/replay.hpp
include/smpi/forward.hpp
src/simix/smx_global.cpp
src/smpi/bindings/smpi_f77.cpp
src/smpi/bindings/smpi_pmpi.cpp
src/smpi/bindings/smpi_pmpi_coll.cpp
src/smpi/bindings/smpi_pmpi_comm.cpp
src/smpi/bindings/smpi_pmpi_group.cpp
src/smpi/bindings/smpi_pmpi_request.cpp
src/smpi/bindings/smpi_pmpi_win.cpp
src/smpi/colls/smpi_automatic_selector.cpp
src/smpi/colls/smpi_default_selector.cpp
src/smpi/include/smpi_actor.hpp [new file with mode: 0644]
src/smpi/include/smpi_process.hpp [deleted file]
src/smpi/internals/instr_smpi.cpp
src/smpi/internals/smpi_actor.cpp [moved from src/smpi/internals/smpi_process.cpp with 75% similarity]
src/smpi/internals/smpi_bench.cpp
src/smpi/internals/smpi_global.cpp
src/smpi/internals/smpi_memory.cpp
src/smpi/internals/smpi_replay.cpp
src/smpi/mpi/smpi_comm.cpp
src/smpi/mpi/smpi_datatype.cpp
src/smpi/mpi/smpi_f2c.cpp
src/smpi/mpi/smpi_op.cpp
src/smpi/mpi/smpi_request.cpp
src/smpi/mpi/smpi_win.cpp
tools/cmake/DefinePackages.cmake

index 49d32c3..034e065 100644 (file)
@@ -5,8 +5,9 @@
 #ifndef SMPI_REPLAY_HPP_
 #define SMPI_REPLAY_HPP_
 
+#include "src/smpi/include/smpi_actor.hpp"
+
 #include <boost/algorithm/string/join.hpp>
-#include <src/smpi/include/smpi_process.hpp>
 #include <xbt/replay.hpp>
 #include <xbt/ex.h>
 
index 9187369..ac6b7e7 100644 (file)
@@ -21,7 +21,7 @@ class Group;
 class Info;
 class Keyval;
 class Op;
-class Process;
+class ActorExt;
 class Request;
 class Status;
 class Topo;
@@ -38,7 +38,7 @@ typedef simgrid::smpi::Datatype SMPI_Datatype;
 typedef simgrid::smpi::Group SMPI_Group;
 typedef simgrid::smpi::Info SMPI_Info;
 typedef simgrid::smpi::Op SMPI_Op;
-typedef simgrid::smpi::Process SMPI_Process;
+typedef simgrid::smpi::ActorExt SMPI_Process;
 typedef simgrid::smpi::Request SMPI_Request;
 typedef simgrid::smpi::Topo SMPI_Topology;
 typedef simgrid::smpi::Topo_Cart SMPI_Cart_topology;
index 56eb832..0d7299f 100644 (file)
@@ -6,6 +6,7 @@
 #include "mc/mc.h"
 #include "simgrid/s4u/Engine.hpp"
 #include "simgrid/s4u/Host.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 #include "simgrid/sg_config.hpp"
 #include "src/kernel/activity/ExecImpl.hpp"
@@ -17,7 +18,6 @@
 #include "src/mc/mc_replay.hpp"
 #include "src/simix/smx_host_private.hpp"
 #include "src/simix/smx_private.hpp"
-#include "src/smpi/include/smpi_process.hpp"
 #include "src/surf/StorageImpl.hpp"
 #include "src/surf/xml/platf.hpp"
 
index 23db44a..47d296a 100644 (file)
@@ -7,9 +7,9 @@
 #include "smpi_comm.hpp"
 #include "smpi_datatype.hpp"
 #include "smpi_op.hpp"
-#include "smpi_process.hpp"
 #include "smpi_request.hpp"
 #include "smpi_win.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 static int running_processes = 0;
 
index 5b9b873..b50e9e3 100644 (file)
@@ -8,9 +8,9 @@
 #include "simgrid/s4u/Host.hpp"
 #include "smpi_comm.hpp"
 #include "smpi_datatype_derived.hpp"
-#include "smpi_process.hpp"
 #include "smpi_status.hpp"
 #include "src/simix/ActorImpl.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_pmpi, smpi, "Logging specific to SMPI (pmpi)");
 
@@ -34,7 +34,7 @@ int PMPI_Init(int *argc, char ***argv)
   int already_init;
   MPI_Initialized(&already_init);
   if(already_init == 0){
-    simgrid::smpi::Process::init(argc, argv);
+    simgrid::smpi::ActorExt::init(argc, argv);
     smpi_process()->mark_as_initialized();
     int rank = simgrid::s4u::this_actor::get_pid();
     TRACE_smpi_init(rank);
index 586f9b7..27eadf8 100644 (file)
@@ -8,7 +8,7 @@
 #include "smpi_comm.hpp"
 #include "smpi_datatype_derived.hpp"
 #include "smpi_op.hpp"
-#include "smpi_process.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(smpi_pmpi);
 
index 4775ea2..144f28d 100644 (file)
@@ -7,7 +7,7 @@
 
 #include "private.hpp"
 #include "smpi_comm.hpp"
-#include "smpi_process.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(smpi_pmpi);
 
index 172b5c1..3c6720f 100644 (file)
@@ -8,11 +8,10 @@
 #include "smpi_comm.hpp"
 #include "smpi_datatype_derived.hpp"
 #include "smpi_op.hpp"
-#include "smpi_process.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(smpi_pmpi);
 
-
 /* PMPI User level calls */
 
 int PMPI_Group_free(MPI_Group * group)
index ffc1b05..b06e4f4 100644 (file)
@@ -6,8 +6,8 @@
 #include "private.hpp"
 #include "smpi_comm.hpp"
 #include "smpi_datatype.hpp"
-#include "smpi_process.hpp"
 #include "smpi_request.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(smpi_pmpi);
 
index 3dfcf2e..5a8ca34 100644 (file)
@@ -8,8 +8,8 @@
 #include "smpi_comm.hpp"
 #include "smpi_datatype_derived.hpp"
 #include "smpi_op.hpp"
-#include "smpi_process.hpp"
 #include "smpi_win.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(smpi_pmpi);
 
index 333c8e6..7ec49d1 100644 (file)
@@ -1,5 +1,4 @@
-/* Copyright (c) 2013-2018. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2013-2018. 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. */
@@ -8,7 +7,7 @@
 #include <exception>
 
 #include "colls_private.hpp"
-#include "smpi_process.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 //attempt to do a quick autotuning version of the collective,
 #define TRACE_AUTO_COLL(cat)                                                                                           \
index 41fe01a..2d96a01 100644 (file)
@@ -1,13 +1,12 @@
 /* selector with default/naive Simgrid algorithms. These should not be trusted for performance evaluations */
 
-/* Copyright (c) 2009-2018. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2009-2018. 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 "colls_private.hpp"
-#include "smpi_process.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 namespace simgrid{
 namespace smpi{
diff --git a/src/smpi/include/smpi_actor.hpp b/src/smpi/include/smpi_actor.hpp
new file mode 100644 (file)
index 0000000..73e9e6e
--- /dev/null
@@ -0,0 +1,84 @@
+/* Copyright (c) 2009-2018. 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. */
+
+#ifndef SMPI_ACTOR_HPP
+#define SMPI_ACTOR_HPP
+
+#include "private.hpp"
+#include "simgrid/s4u/Mailbox.hpp"
+#include "src/instr/instr_smpi.hpp"
+#include "xbt/synchro.h"
+
+namespace simgrid {
+namespace smpi {
+
+class ActorExt {
+private:
+  double simulated_ = 0 /* Used to time with simulated_start/elapsed */;
+  int* argc_        = nullptr;
+  char*** argv_     = nullptr;
+  simgrid::s4u::MailboxPtr mailbox_;
+  simgrid::s4u::MailboxPtr mailbox_small_;
+  xbt_mutex_t mailboxes_mutex_;
+  xbt_os_timer_t timer_;
+  MPI_Comm comm_self_   = MPI_COMM_NULL;
+  MPI_Comm comm_intra_  = MPI_COMM_NULL;
+  MPI_Comm* comm_world_ = nullptr;
+  void* data_           = nullptr; /* user data */
+  SmpiProcessState state_;
+  int sampling_ = 0; /* inside an SMPI_SAMPLE_ block? */
+  std::string instance_id_;
+  bool replaying_ = false; /* is the process replaying a trace */
+  simgrid::s4u::Barrier* finalization_barrier_;
+  smpi_trace_call_location_t trace_call_loc_;
+  simgrid::s4u::ActorPtr actor_                  = nullptr;
+  smpi_privatization_region_t privatized_region_ = nullptr;
+  int optind                                     = 0; /*for getopt replacement */
+#if HAVE_PAPI
+  /** Contains hardware data as read by PAPI **/
+  int papi_event_set_;
+  papi_counter_t papi_counter_data_;
+#endif
+public:
+  explicit ActorExt(simgrid::s4u::ActorPtr actor, simgrid::s4u::Barrier* barrier);
+  ~ActorExt();
+  void set_data(int* argc, char*** argv);
+  void finalize();
+  int finalized();
+  int initialized();
+  void mark_as_initialized();
+  void set_replaying(bool value);
+  bool replaying();
+  void set_user_data(void* data);
+  void* get_user_data();
+  smpi_trace_call_location_t* call_location();
+  void set_privatized_region(smpi_privatization_region_t region);
+  smpi_privatization_region_t privatized_region();
+  smx_mailbox_t mailbox();
+  smx_mailbox_t mailbox_small();
+  xbt_mutex_t mailboxes_mutex();
+#if HAVE_PAPI
+  int papi_event_set();
+  papi_counter_t& papi_counters();
+#endif
+  xbt_os_timer_t timer();
+  void simulated_start();
+  double simulated_elapsed();
+  MPI_Comm comm_world();
+  MPI_Comm comm_self();
+  MPI_Comm comm_intra();
+  void set_comm_intra(MPI_Comm comm);
+  void set_sampling(int s);
+  int sampling();
+  static void init(int* argc, char*** argv);
+  simgrid::s4u::ActorPtr get_actor();
+  int get_optind();
+  void set_optind(int optind);
+};
+
+} // namespace smpi
+} // namespace simgrid
+
+#endif
diff --git a/src/smpi/include/smpi_process.hpp b/src/smpi/include/smpi_process.hpp
deleted file mode 100644 (file)
index 68d717b..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (c) 2009-2018. 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. */
-
-#ifndef SMPI_PROCESS_HPP
-#define SMPI_PROCESS_HPP
-
-#include "private.hpp"
-#include "simgrid/s4u/Mailbox.hpp"
-#include "src/instr/instr_smpi.hpp"
-#include "xbt/synchro.h"
-
-namespace simgrid{
-namespace smpi{
-
-class Process {
-  private:
-    double simulated_ = 0 /* Used to time with simulated_start/elapsed */;
-    int* argc_        = nullptr;
-    char*** argv_     = nullptr;
-    simgrid::s4u::MailboxPtr mailbox_;
-    simgrid::s4u::MailboxPtr mailbox_small_;
-    xbt_mutex_t mailboxes_mutex_;
-    xbt_os_timer_t timer_;
-    MPI_Comm comm_self_   = MPI_COMM_NULL;
-    MPI_Comm comm_intra_  = MPI_COMM_NULL;
-    MPI_Comm* comm_world_ = nullptr;
-    void* data_           = nullptr; /* user data */
-    SmpiProcessState state_;
-    int sampling_                   = 0; /* inside an SMPI_SAMPLE_ block? */
-    std::string instance_id_;
-    bool replaying_                 = false; /* is the process replaying a trace */
-    simgrid::s4u::Barrier* finalization_barrier_;
-    smpi_trace_call_location_t trace_call_loc_;
-    simgrid::s4u::ActorPtr actor_ = nullptr;
-    smpi_privatization_region_t privatized_region_ = nullptr;
-    int optind=0; /*for getopt replacement */
-#if HAVE_PAPI
-  /** Contains hardware data as read by PAPI **/
-    int papi_event_set_;
-    papi_counter_t papi_counter_data_;
-#endif
-  public:
-    explicit Process(simgrid::s4u::ActorPtr actor, simgrid::s4u::Barrier* barrier);
-    ~Process();
-    void set_data(int* argc, char*** argv);
-    void finalize();
-    int finalized();
-    int initialized();
-    void mark_as_initialized();
-    void set_replaying(bool value);
-    bool replaying();
-    void set_user_data(void *data);
-    void *get_user_data();
-    smpi_trace_call_location_t* call_location();
-    void set_privatized_region(smpi_privatization_region_t region);
-    smpi_privatization_region_t privatized_region();
-    smx_mailbox_t mailbox();
-    smx_mailbox_t mailbox_small();
-    xbt_mutex_t mailboxes_mutex();
-#if HAVE_PAPI
-    int papi_event_set();
-    papi_counter_t& papi_counters();
-#endif
-    xbt_os_timer_t timer();
-    void simulated_start();
-    double simulated_elapsed();
-    MPI_Comm comm_world();
-    MPI_Comm comm_self();
-    MPI_Comm comm_intra();
-    void set_comm_intra(MPI_Comm comm);
-    void set_sampling(int s);
-    int sampling();
-    static void init(int *argc, char ***argv);
-    simgrid::s4u::ActorPtr get_actor();
-    int get_optind();
-    void set_optind(int optind);
-};
-
-
-}
-}
-
-#endif
index 00d1a46..63ee871 100644 (file)
@@ -1,5 +1,4 @@
-/* Copyright (c) 2010-2018. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2010-2018. 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. */
@@ -15,8 +14,8 @@
 #include <simgrid/s4u/Host.hpp>
 #include <string>
 #include <vector>
-#include "smpi_process.hpp"
 
+#include "src/smpi/include/smpi_actor.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_smpi, instr, "Tracing SMPI");
 
similarity index 75%
rename from src/smpi/internals/smpi_process.cpp
rename to src/smpi/internals/smpi_actor.cpp
index 48f6c6e..2b88022 100644 (file)
@@ -3,7 +3,7 @@
 /* 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 "smpi_process.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 #include "mc/mc.h"
 #include "smpi_comm.hpp"
 #include "src/mc/mc_replay.hpp"
@@ -17,13 +17,13 @@ extern std::string papi_default_config_name;
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_process, smpi, "Logging specific to SMPI (kernel)");
 
-namespace simgrid{
-namespace smpi{
+namespace simgrid {
+namespace smpi {
 
 using simgrid::s4u::Actor;
 using simgrid::s4u::ActorPtr;
 
-Process::Process(ActorPtr actor, simgrid::s4u::Barrier* finalization_barrier)
+ActorExt::ActorExt(ActorPtr actor, simgrid::s4u::Barrier* finalization_barrier)
     : finalization_barrier_(finalization_barrier), actor_(actor)
 {
   mailbox_         = simgrid::s4u::Mailbox::by_name("SMPI-" + std::to_string(actor_->get_pid()));
@@ -52,7 +52,7 @@ Process::Process(ActorPtr actor, simgrid::s4u::Barrier* finalization_barrier)
 #endif
 }
 
-Process::~Process()
+ActorExt::~ActorExt()
 {
   if (comm_self_ != MPI_COMM_NULL)
     simgrid::smpi::Comm::destroy(comm_self_);
@@ -62,10 +62,10 @@ Process::~Process()
   xbt_mutex_destroy(mailboxes_mutex_);
 }
 
-void Process::set_data(int* argc, char*** argv)
+void ActorExt::set_data(int* argc, char*** argv)
 {
-  instance_id_      = std::string((*argv)[1]);
-  comm_world_       = smpi_deployment_comm_world(instance_id_);
+  instance_id_                   = std::string((*argv)[1]);
+  comm_world_                    = smpi_deployment_comm_world(instance_id_);
   simgrid::s4u::Barrier* barrier = smpi_deployment_finalization_barrier(instance_id_);
   if (barrier != nullptr) // don't overwrite the current one if the instance has none
     finalization_barrier_ = barrier;
@@ -86,26 +86,26 @@ void Process::set_data(int* argc, char*** argv)
 }
 
 /** @brief Prepares the current process for termination. */
-void Process::finalize()
+void ActorExt::finalize()
 {
   state_ = SmpiProcessState::FINALIZED;
   XBT_DEBUG("<%ld> Process left the game", actor_->get_pid());
 
   // This leads to an explosion of the search graph which cannot be reduced:
-  if(MC_is_active() || MC_record_replay_is_active())
+  if (MC_is_active() || MC_record_replay_is_active())
     return;
   // wait for all pending asynchronous comms to finish
   finalization_barrier_->wait();
 }
 
 /** @brief Check if a process is finalized */
-int Process::finalized()
+int ActorExt::finalized()
 {
   return (state_ == SmpiProcessState::FINALIZED);
 }
 
 /** @brief Check if a process is initialized */
-int Process::initialized()
+int ActorExt::initialized()
 {
   // TODO cheinrich: Check if we still need this. This should be a global condition, not for a
   // single process ... ?
@@ -113,32 +113,34 @@ int Process::initialized()
 }
 
 /** @brief Mark a process as initialized (=MPI_Init called) */
-void Process::mark_as_initialized()
+void ActorExt::mark_as_initialized()
 {
   if (state_ != SmpiProcessState::FINALIZED)
     state_ = SmpiProcessState::INITIALIZED;
 }
 
-void Process::set_replaying(bool value){
+void ActorExt::set_replaying(bool value)
+{
   if (state_ != SmpiProcessState::FINALIZED)
     replaying_ = value;
 }
 
-bool Process::replaying(){
+bool ActorExt::replaying()
+{
   return replaying_;
 }
 
-void Process::set_user_data(void *data)
+void ActorExt::set_user_data(void* data)
 {
   data_ = data;
 }
 
-void *Process::get_user_data()
+void* ActorExt::get_user_data()
 {
   return data_;
 }
 
-ActorPtr Process::get_actor()
+ActorPtr ActorExt::get_actor()
 {
   return actor_;
 }
@@ -148,102 +150,104 @@ ActorPtr Process::get_actor()
  *
  * \see smpi_trace_set_call_location
  */
-smpi_trace_call_location_t* Process::call_location()
+smpi_trace_call_location_t* ActorExt::call_location()
 {
   return &trace_call_loc_;
 }
 
-void Process::set_privatized_region(smpi_privatization_region_t region)
+void ActorExt::set_privatized_region(smpi_privatization_region_t region)
 {
   privatized_region_ = region;
 }
 
-smpi_privatization_region_t Process::privatized_region()
+smpi_privatization_region_t ActorExt::privatized_region()
 {
   return privatized_region_;
 }
 
-MPI_Comm Process::comm_world()
+MPI_Comm ActorExt::comm_world()
 {
-  return comm_world_==nullptr ? MPI_COMM_NULL : *comm_world_;
+  return comm_world_ == nullptr ? MPI_COMM_NULL : *comm_world_;
 }
 
-smx_mailbox_t Process::mailbox()
+smx_mailbox_t ActorExt::mailbox()
 {
   return mailbox_->get_impl();
 }
 
-smx_mailbox_t Process::mailbox_small()
+smx_mailbox_t ActorExt::mailbox_small()
 {
   return mailbox_small_->get_impl();
 }
 
-xbt_mutex_t Process::mailboxes_mutex()
+xbt_mutex_t ActorExt::mailboxes_mutex()
 {
   return mailboxes_mutex_;
 }
 
 #if HAVE_PAPI
-int Process::papi_event_set()
+int ActorExt::papi_event_set()
 {
   return papi_event_set_;
 }
 
-papi_counter_t& Process::papi_counters()
+papi_counter_t& ActorExt::papi_counters()
 {
   return papi_counter_data_;
 }
 #endif
 
-xbt_os_timer_t Process::timer()
+xbt_os_timer_t ActorExt::timer()
 {
   return timer_;
 }
 
-void Process::simulated_start()
+void ActorExt::simulated_start()
 {
   simulated_ = SIMIX_get_clock();
 }
 
-double Process::simulated_elapsed()
+double ActorExt::simulated_elapsed()
 {
   return SIMIX_get_clock() - simulated_;
 }
 
-MPI_Comm Process::comm_self()
+MPI_Comm ActorExt::comm_self()
 {
-  if(comm_self_==MPI_COMM_NULL){
-    MPI_Group group = new  Group(1);
-    comm_self_ = new  Comm(group, nullptr);
+  if (comm_self_ == MPI_COMM_NULL) {
+    MPI_Group group = new Group(1);
+    comm_self_      = new Comm(group, nullptr);
     group->set_mapping(actor_, 0);
   }
   return comm_self_;
 }
 
-MPI_Comm Process::comm_intra()
+MPI_Comm ActorExt::comm_intra()
 {
   return comm_intra_;
 }
 
-void Process::set_comm_intra(MPI_Comm comm)
+void ActorExt::set_comm_intra(MPI_Comm comm)
 {
   comm_intra_ = comm;
 }
 
-void Process::set_sampling(int s)
+void ActorExt::set_sampling(int s)
 {
   sampling_ = s;
 }
 
-int Process::sampling()
+int ActorExt::sampling()
 {
   return sampling_;
 }
 
-void Process::init(int *argc, char ***argv){
+void ActorExt::init(int* argc, char*** argv)
+{
 
   if (smpi_process_count() == 0) {
-    xbt_die("SimGrid was not initialized properly before entering MPI_Init. Aborting, please check compilation process and use smpirun\n");
+    xbt_die("SimGrid was not initialized properly before entering MPI_Init. Aborting, please check compilation process "
+            "and use smpirun\n");
   }
   if (argc != nullptr && argv != nullptr) {
     simgrid::s4u::ActorPtr proc = simgrid::s4u::Actor::self();
@@ -259,7 +263,7 @@ void Process::init(int *argc, char ***argv){
 
     // cheinrich: I'm not sure what the impact of the SMPI_switch_data_segment on this call is. I moved
     // this up here so that I can set the privatized region before the switch.
-    Process* process = smpi_process_remote(proc);
+    ActorExt* process = smpi_process_remote(proc);
     if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) {
       /* Now using the segment index of this process  */
       process->set_privatized_region(smpi_init_global_memory_segment_process());
@@ -274,12 +278,14 @@ void Process::init(int *argc, char ***argv){
                              "Please use MPI_Init(&argc, &argv) as usual instead.");
 }
 
-int Process::get_optind(){
+int ActorExt::get_optind()
+{
   return optind;
 }
-void Process::set_optind(int new_optind){
-  optind=new_optind;
+void ActorExt::set_optind(int new_optind)
+{
+  optind = new_optind;
 }
 
-}
-}
+} // namespace smpi
+} // namespace simgrid
index f7101a3..5f9532b 100644 (file)
@@ -7,13 +7,13 @@
 #include "simgrid/host.h"
 #include "simgrid/modelchecker.h"
 #include "smpi_comm.hpp"
-#include "smpi_process.hpp"
 #include "src/internal_config.h"
 #include "src/mc/mc_replay.hpp"
 #include "src/simix/ActorImpl.hpp"
 #include "xbt/config.hpp"
 #include "getopt.h"
 
+#include "src/smpi/include/smpi_actor.hpp"
 #include <unordered_map>
 
 #ifndef WIN32
index f1a3199..990a646 100644 (file)
@@ -8,11 +8,11 @@
 #include "simgrid/s4u/Engine.hpp"
 #include "smpi_coll.hpp"
 #include "smpi_f2c.hpp"
-#include "smpi_process.hpp"
 #include "src/msg/msg_private.hpp"
 #include "src/simix/smx_private.hpp"
 #include "xbt/config.hpp"
 
+#include "src/smpi/include/smpi_actor.hpp"
 #include <cfloat> /* DBL_MAX */
 #include <dlfcn.h>
 #include <fcntl.h>
@@ -60,7 +60,7 @@ using simgrid::s4u::Actor;
 using simgrid::s4u::ActorPtr;
 std::unordered_map<std::string, double> location2speedup;
 
-static std::map</*process_id*/ ActorPtr, simgrid::smpi::Process*> process_data;
+static std::map</*process_id*/ ActorPtr, simgrid::smpi::ActorExt*> process_data;
 int process_count = 0;
 static int smpi_exit_status = 0;
 int smpi_universe_size = 0;
@@ -96,16 +96,16 @@ int smpi_process_count()
   return process_count;
 }
 
-simgrid::smpi::Process* smpi_process()
+simgrid::smpi::ActorExt* smpi_process()
 {
   ActorPtr me = Actor::self();
   if (me == nullptr) // This happens sometimes (eg, when linking against NS3 because it pulls openMPI...)
     return nullptr;
   simgrid::msg::ActorExt* msgExt = static_cast<simgrid::msg::ActorExt*>(me->get_impl()->get_user_data());
-  return static_cast<simgrid::smpi::Process*>(msgExt->data);
+  return static_cast<simgrid::smpi::ActorExt*>(msgExt->data);
 }
 
-simgrid::smpi::Process* smpi_process_remote(ActorPtr actor)
+simgrid::smpi::ActorExt* smpi_process_remote(ActorPtr actor)
 {
   return process_data.at(actor);
 }
@@ -115,7 +115,7 @@ MPI_Comm smpi_process_comm_self(){
 }
 
 void smpi_process_init(int *argc, char ***argv){
-  simgrid::smpi::Process::init(argc, argv);
+  simgrid::smpi::ActorExt::init(argc, argv);
 }
 
 int smpi_process_index(){
@@ -688,7 +688,7 @@ int smpi_main(const char* executable, int argc, char* argv[])
 void SMPI_init(){
   simgrid::s4u::Actor::on_creation.connect([](simgrid::s4u::ActorPtr actor) {
     if (not actor->is_daemon()) {
-      process_data.insert({actor, new simgrid::smpi::Process(actor, nullptr)});
+      process_data.insert({actor, new simgrid::smpi::ActorExt(actor, nullptr)});
     }
   });
   simgrid::s4u::Actor::on_destruction.connect([](simgrid::s4u::ActorPtr actor) {
index 3a8f7e9..47d7705 100644 (file)
@@ -24,7 +24,7 @@
 #include "src/xbt/memory_map.hpp"
 
 #include "private.hpp"
-#include "smpi_process.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_memory, smpi, "Memory layout support for SMPI");
 
@@ -133,7 +133,7 @@ void smpi_really_switch_data_segment(simgrid::s4u::ActorPtr actor)
 #if HAVE_PRIVATIZATION
   // FIXME, cross-process support (mmap across process when necessary)
   XBT_DEBUG("Switching data frame to the one of process %ld", actor->get_pid());
-  simgrid::smpi::Process* process = smpi_process_remote(actor);
+  simgrid::smpi::ActorExt* process = smpi_process_remote(actor);
   int current                     = process->privatized_region()->file_descriptor;
   void* tmp = mmap(TOPAGE(smpi_data_exe_start), smpi_data_exe_size, PROT_RW, MAP_FIXED | MAP_SHARED, current, 0);
   if (tmp != TOPAGE(smpi_data_exe_start))
index e503a21..b78eec2 100644 (file)
@@ -701,7 +701,7 @@ 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)
 {
-  simgrid::smpi::Process::init(argc, argv);
+  simgrid::smpi::ActorExt::init(argc, argv);
   smpi_process()->mark_as_initialized();
   smpi_process()->set_replaying(true);
 
index 8eb30b5..d4ef053 100644 (file)
@@ -6,9 +6,9 @@
 #include "smpi_comm.hpp"
 #include "smpi_coll.hpp"
 #include "smpi_datatype.hpp"
-#include "smpi_process.hpp"
 #include "smpi_request.hpp"
 #include "smpi_win.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 #include "src/surf/HostImpl.hpp"
 
 #include <climits>
index d56464d..5136911 100644 (file)
@@ -4,11 +4,12 @@
 /* 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 "simgrid/modelchecker.h"
 #include "private.hpp"
+#include "simgrid/modelchecker.h"
 #include "smpi_datatype_derived.hpp"
 #include "smpi_op.hpp"
-#include "smpi_process.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
+
 #include <string>
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_datatype, smpi, "Logging specific to SMPI (datatype)");
index 0294dcd..2049fd1 100644 (file)
@@ -5,7 +5,7 @@
 
 #include "smpi_f2c.hpp"
 #include "private.hpp"
-#include "smpi_process.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 #include <cstdio>
 
index b710929..2ec1734 100644 (file)
@@ -3,10 +3,10 @@
 /* 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 "smpi_op.hpp"
 #include "private.hpp"
 #include "smpi_datatype.hpp"
-#include "smpi_op.hpp"
-#include "smpi_process.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_op, smpi, "Logging specific to SMPI (op)");
 
index 10c3639..fa48be2 100644 (file)
@@ -5,16 +5,16 @@
 
 #include "smpi_request.hpp"
 
-#include "smpi_host.hpp"
 #include "mc/mc.h"
 #include "private.hpp"
 #include "smpi_comm.hpp"
 #include "smpi_datatype.hpp"
+#include "smpi_host.hpp"
 #include "smpi_op.hpp"
-#include "smpi_process.hpp"
 #include "src/kernel/activity/CommImpl.hpp"
 #include "src/mc/mc_replay.hpp"
 #include "src/simix/ActorImpl.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 #include "xbt/config.hpp"
 #include <xbt/ex.hpp>
 
@@ -370,7 +370,7 @@ void Request::start()
   if ((flags_ & MPI_REQ_RECV) != 0) {
     this->print_request("New recv");
 
-    simgrid::smpi::Process* process = smpi_process_remote(simgrid::s4u::Actor::by_pid(dst_));
+    simgrid::smpi::ActorExt* process = smpi_process_remote(simgrid::s4u::Actor::by_pid(dst_));
 
     int async_small_thresh = simgrid::config::get_value<int>("smpi/async-small-thresh");
 
@@ -421,7 +421,7 @@ void Request::start()
     if (async_small_thresh != 0 || (flags_ & MPI_REQ_RMA) != 0)
       xbt_mutex_release(mut);
   } else { /* the RECV flag was not set, so this is a send */
-    simgrid::smpi::Process* process = smpi_process_remote(simgrid::s4u::Actor::by_pid(dst_));
+    simgrid::smpi::ActorExt* process = smpi_process_remote(simgrid::s4u::Actor::by_pid(dst_));
     int rank = src_;
     if (TRACE_smpi_view_internals()) {
       TRACE_smpi_send(rank, rank, dst_, tag_, size_);
index 5e00ce5..c0abd4d 100644 (file)
@@ -4,14 +4,15 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "smpi_win.hpp"
+
 #include "private.hpp"
 #include "smpi_coll.hpp"
 #include "smpi_comm.hpp"
 #include "smpi_datatype.hpp"
 #include "smpi_info.hpp"
 #include "smpi_keyvals.hpp"
-#include "smpi_process.hpp"
 #include "smpi_request.hpp"
+#include "src/smpi/include/smpi_actor.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_rma, smpi, "Logging specific to SMPI (RMA operations)");
 
index 493b62f..2e9dda9 100644 (file)
@@ -224,7 +224,7 @@ set(SMPI_SRC
   src/smpi/internals/smpi_global.cpp
   src/smpi/internals/smpi_host.cpp
   src/smpi/internals/smpi_replay.cpp
-  src/smpi/internals/smpi_process.cpp
+  src/smpi/internals/smpi_actor.cpp
   src/smpi/internals/smpi_utils.cpp
   src/smpi/mpi/smpi_comm.cpp
   src/smpi/mpi/smpi_datatype.cpp
@@ -248,7 +248,7 @@ set(SMPI_SRC
   src/smpi/include/smpi_keyvals.hpp
   src/smpi/include/smpi_datatype_derived.hpp
   src/smpi/include/smpi_op.hpp
-  src/smpi/include/smpi_process.hpp
+  src/smpi/include/smpi_actor.hpp
   src/smpi/include/smpi_request.hpp
   src/smpi/include/smpi_status.hpp
   src/smpi/include/smpi_win.hpp