X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f77fd2ba9b8e24b890de8c12a445bacee690f628..49609678d7329f0824ca7d5c6d5421fc9d358cbb:/src/smpi/mpi/smpi_comm.cpp diff --git a/src/smpi/mpi/smpi_comm.cpp b/src/smpi/mpi/smpi_comm.cpp index e8e893fe10..6c2bacc133 100644 --- a/src/smpi/mpi/smpi_comm.cpp +++ b/src/smpi/mpi/smpi_comm.cpp @@ -48,10 +48,10 @@ Comm::Comm(MPI_Group group, MPI_Topology topo, int smp, int in_id) : group_(grou id=global_id_; global_id_++; } - Colls::bcast(&id, 1, MPI_INT, 0, this); + colls::bcast(&id, 1, MPI_INT, 0, this); XBT_DEBUG("Communicator %p has id %d", this, id); id_=id;//only set here, as we don't want to change it in the middle of the bcast - Colls::barrier(this); + colls::barrier(this); } } @@ -66,7 +66,7 @@ void Comm::destroy(Comm* comm) } int Comm::dup(MPI_Comm* newcomm){ - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) { // we need to switch as the called function may silently touch global variables smpi_switch_data_segment(s4u::Actor::self()); } @@ -250,7 +250,7 @@ MPI_Comm Comm::split(int color, int key) } else { recvbuf = nullptr; } - Coll_gather_default::gather(sendbuf, 2, MPI_INT, recvbuf, 2, MPI_INT, 0, this); + gather__default(sendbuf, 2, MPI_INT, recvbuf, 2, MPI_INT, 0, this); xbt_free(sendbuf); /* Do the actual job */ if (myrank == 0) { @@ -380,7 +380,7 @@ void Comm::init_smp(){ smpi_process()->set_replaying(false); } - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) { // we need to switch as the called function may silently touch global variables smpi_switch_data_segment(s4u::Actor::self()); } @@ -393,9 +393,9 @@ void Comm::init_smp(){ std::fill_n(leaders_map, comm_size, 0); std::fill_n(leader_list, comm_size, -1); - Coll_allgather_ring::allgather(&leader, 1, MPI_INT , leaders_map, 1, MPI_INT, this); + allgather__ring(&leader, 1, MPI_INT , leaders_map, 1, MPI_INT, this); - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) { // we need to switch as the called function may silently touch global variables smpi_switch_data_segment(s4u::Actor::self()); } @@ -451,7 +451,7 @@ void Comm::init_smp(){ if(comm_intra->rank()==0) { int is_uniform = 1; int* non_uniform_map = xbt_new0(int,leader_group_size); - Coll_allgather_ring::allgather(&my_local_size, 1, MPI_INT, + allgather__ring(&my_local_size, 1, MPI_INT, non_uniform_map, 1, MPI_INT, leader_comm); for(i=0; i < leader_group_size; i++) { if(non_uniform_map[0] != non_uniform_map[i]) { @@ -466,9 +466,9 @@ void Comm::init_smp(){ } is_uniform_=is_uniform; } - Coll_bcast_scatter_LR_allgather::bcast(&(is_uniform_),1, MPI_INT, 0, comm_intra ); + bcast__scatter_LR_allgather(&(is_uniform_),1, MPI_INT, 0, comm_intra ); - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) { // we need to switch as the called function may silently touch global variables smpi_switch_data_segment(s4u::Actor::self()); } @@ -485,7 +485,7 @@ void Comm::init_smp(){ } int global_blocked; - Coll_allreduce_default::allreduce(&is_blocked, &(global_blocked), 1, MPI_INT, MPI_LAND, this); + allreduce__default(&is_blocked, &(global_blocked), 1, MPI_INT, MPI_LAND, this); if(MPI_COMM_WORLD==MPI_COMM_UNINITIALIZED || this==MPI_COMM_WORLD){ if(this->rank()==0){ @@ -571,6 +571,7 @@ MPI_Comm Comm::split_type(int type, int /*key*/, MPI_Info) if(type != MPI_UNDEFINED) return res; else{ + xbt_assert(res->refcount_ == 1); // ensure the next call to Comm::destroy really frees the comm Comm::destroy(res); return MPI_COMM_NULL; }