X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/84402e8e2ee2a2d0bef25fdceb0a263ed8b471f6..1aab041889e9a68f49b95561ddb756cb1710157b:/src/smpi/mpi/smpi_win.cpp diff --git a/src/smpi/mpi/smpi_win.cpp b/src/smpi/mpi/smpi_win.cpp index 58a644861e..806b363d87 100644 --- a/src/smpi/mpi/smpi_win.cpp +++ b/src/smpi/mpi/smpi_win.cpp @@ -96,9 +96,9 @@ Win::~Win(){ int Win::attach(void* /*base*/, MPI_Aint size) { - if (not(base_ == MPI_BOTTOM || base_ == 0)) + if (not(base_ == MPI_BOTTOM || base_ == nullptr)) return MPI_ERR_ARG; - base_=0;//actually the address will be given in the RMA calls, as being the disp. + base_ = nullptr; // actually the address will be given in the RMA calls, as being the disp. size_+=size; return MPI_SUCCESS; } @@ -110,7 +110,8 @@ int Win::detach(const void* /*base*/) return MPI_SUCCESS; } -void Win::get_name(char* name, int* length){ +void Win::get_name(char* name, int* length) const +{ if(name_==nullptr){ *length=0; name=nullptr; @@ -136,23 +137,28 @@ MPI_Info Win::info() return info_; } -int Win::rank(){ +int Win::rank() const +{ return rank_; } -MPI_Aint Win::size(){ +MPI_Aint Win::size() const +{ return size_; } -void* Win::base(){ +void* Win::base() const +{ return base_; } -int Win::disp_unit(){ +int Win::disp_unit() const +{ return disp_unit_; } -int Win::dynamic(){ +int Win::dynamic() const +{ return dynamic_; } @@ -222,7 +228,7 @@ int Win::put(const void *origin_addr, int origin_count, MPI_Datatype origin_data if(target_count*target_datatype->get_extent()>recv_win->size_) return MPI_ERR_ARG; - void* recv_addr = static_cast ( static_cast(recv_win->base_) + target_disp * recv_win->disp_unit_); + void* recv_addr = static_cast(recv_win->base_) + target_disp * recv_win->disp_unit_; if (target_rank != comm_->rank()) { // This is not for myself, so we need to send messages XBT_DEBUG("Entering MPI_Put to remote rank %d", target_rank); @@ -342,7 +348,7 @@ int Win::accumulate(const void *origin_addr, int origin_count, MPI_Datatype orig if(target_count*target_datatype->get_extent()>recv_win->size_) return MPI_ERR_ARG; - void* recv_addr = static_cast(static_cast(recv_win->base_) + target_disp * recv_win->disp_unit_); + void* recv_addr = static_cast(recv_win->base_) + target_disp * recv_win->disp_unit_; XBT_DEBUG("Entering MPI_Accumulate to %d", target_rank); // As the tag will be used for ordering of the operations, subtract count from it (to avoid collisions with other // SMPI tags, SMPI_RMA_TAG is set below all the other ones we use) @@ -611,12 +617,11 @@ int Win::lock(int lock_type, int rank, int /*assert*/) } int Win::lock_all(int assert){ - int i=0; int retval = MPI_SUCCESS; - for (i=0; isize();i++){ - int ret = this->lock(MPI_LOCK_SHARED, i, assert); - if(ret != MPI_SUCCESS) - retval = ret; + for (int i = 0; i < comm_->size(); i++) { + int ret = this->lock(MPI_LOCK_SHARED, i, assert); + if (ret != MPI_SUCCESS) + retval = ret; } return retval; } @@ -638,9 +643,8 @@ int Win::unlock(int rank){ } int Win::unlock_all(){ - int i=0; int retval = MPI_SUCCESS; - for (i=0; isize();i++){ + for (int i = 0; i < comm_->size(); i++) { int ret = this->unlock(i); if (ret != MPI_SUCCESS) retval = ret; @@ -705,7 +709,7 @@ int Win::finish_comms(int rank){ if (size > 0) { size = 0; std::vector myreqqs; - std::vector::iterator iter = reqqs->begin(); + auto iter = reqqs->begin(); int proc_id = comm_->group()->actor(rank)->get_pid(); while (iter != reqqs->end()){ // Let's see if we're either the destination or the sender of this request @@ -730,7 +734,7 @@ int Win::finish_comms(int rank){ return size; } -int Win::shared_query(int rank, MPI_Aint* size, int* disp_unit, void* baseptr) +int Win::shared_query(int rank, MPI_Aint* size, int* disp_unit, void* baseptr) const { const Win* target_win = rank != MPI_PROC_NULL ? connected_wins_[rank] : nullptr; for (int i = 0; not target_win && i < comm_->size(); i++) {