Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of framagit.org:simgrid/simgrid
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 23 Dec 2019 13:55:49 +0000 (14:55 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 23 Dec 2019 13:55:49 +0000 (14:55 +0100)
1  2 
src/mc/inspect/Frame.hpp
src/smpi/include/smpi_comm.hpp
src/smpi/mpi/smpi_comm.cpp

diff --combined src/mc/inspect/Frame.hpp
@@@ -23,6 -23,8 +23,6 @@@ namespace mc 
  /** Debug information about a given function or scope within a function */
  class Frame {
  public:
 -  Frame() = default;
 -
    /** Kind of scope (DW_TAG_subprogram, DW_TAG_inlined_subroutine, etc.) */
    int tag = DW_TAG_invalid;
  
@@@ -30,7 -32,7 +30,7 @@@
    std::string name;
  
    /** Range of instruction addresses for which this scope is valid */
 -  simgrid::xbt::Range<std::uint64_t> range = {0, 0};
 +  simgrid::xbt::Range<std::uint64_t> range{0, 0};
  
    simgrid::dwarf::LocationList frame_base_location;
  
@@@ -56,7 -58,6 +56,6 @@@
    void* frame_base(unw_cursor_t& unw_cursor) const;
    void remove_variable(char* name);
  };
  } // namespace mc
  } // namespace simgrid
  
@@@ -21,20 -21,20 +21,20 @@@ class Comm : public F2C, public Keyval
    MPI_Group group_;
    SMPI_Topo_type topoType_ = MPI_INVALID_TOPO;
    MPI_Topology topo_; // to be replaced by an union
 -  int refcount_ = 1;
 -  MPI_Comm leaders_comm_; // inter-node communicator
 -  MPI_Comm intra_comm_;   // intra-node communicator . For MPI_COMM_WORLD this can't be used, as var is global.
 -  // use an intracomm stored in the process data instead
 -  int* leaders_map_     = nullptr; // who is the leader of each process
 +  int refcount_          = 1;
 +  MPI_Comm leaders_comm_ = MPI_COMM_NULL; // inter-node communicator
 +  MPI_Comm intra_comm_   = MPI_COMM_NULL; // intra-node communicator. For MPI_COMM_WORLD this can't be used, as var is
 +                                          // global. Use an intracomm stored in the process data instead
 +  int* leaders_map_     = nullptr;        // who is the leader of each process
    int is_uniform_       = 1;
    int* non_uniform_map_ = nullptr; // set if smp nodes have a different number of processes allocated
    int is_blocked_       = 0;       // are ranks allocated on the same smp node contiguous ?
    int is_smp_comm_;             // set to 0 in case this is already an intra-comm or a leader-comm to avoid recursion
    std::list<MPI_Win> rma_wins_; // attached windows for synchronization.
    std::string name_;
 -  MPI_Info info_;
 +  MPI_Info info_ = MPI_INFO_NULL;
    int id_;
-   MPI_Errhandler errhandler_;
+   MPI_Errhandler errhandler_ = MPI_ERRORS_ARE_FATAL;
  
  public:
    static std::unordered_map<int, smpi_key_elem> keyvals_;
@@@ -30,7 -30,9 +30,6 @@@ int Comm::keyval_id_=0
  
  Comm::Comm(MPI_Group group, MPI_Topology topo, int smp, int in_id) : group_(group), topo_(topo),is_smp_comm_(smp), id_(in_id)
  {
-   errhandler_      = MPI_ERRORS_ARE_FATAL;
 -  intra_comm_      = MPI_COMM_NULL;
 -  leaders_comm_    = MPI_COMM_NULL;
 -  info_            = MPI_INFO_NULL;
    errhandler_->ref();
    //First creation of comm is done before SIMIX_run, so only do comms for others
    if(in_id==MPI_UNDEFINED && smp==0 && this->rank()!=MPI_UNDEFINED ){