* under the terms of the license (GNU LGPL) which comes with this package. */
#include "smpi_comm.hpp"
-#include "private.h"
#include "private.hpp"
#include "simgrid/s4u/Host.hpp"
#include "smpi_coll.hpp"
#include "smpi_request.hpp"
#include "smpi_status.hpp"
#include "smpi_win.hpp"
-#include "src/simix/smx_private.h"
+#include "src/simix/smx_private.hpp"
#include <algorithm>
#include <climits>
#include <vector>
}
MPI_Request* requests = xbt_new(MPI_Request, rankmap.size());
int reqs = 0;
- for (const auto& rank : rankmap) {
+ for (auto const& rank : rankmap) {
if (rank.second != 0) {
group_snd[reqs]=new Group(group_out);
requests[reqs] = Request::isend(&(group_snd[reqs]), 1, MPI_PTR, rank.second, system_tag, this);
if (non_uniform_map_ != nullptr)
xbt_free(non_uniform_map_);
if (leaders_map_ != nullptr)
- xbt_free(leaders_map_);
+ delete[] leaders_map_;
}
void Comm::unref(Comm* comm){
MPI_Comm comm_intra = new Comm(group_intra, nullptr);
leader=min_index;
- int * leaders_map= static_cast<int*>(xbt_malloc0(sizeof(int)*comm_size));
- int * leader_list= static_cast<int*>(xbt_malloc0(sizeof(int)*comm_size));
- for(i=0; i<comm_size; i++){
- leader_list[i] = -1;
- }
+ int* leaders_map = new int[comm_size];
+ int* leader_list = new int[comm_size];
+ std::fill_n(leaders_map, comm_size, 0);
+ std::fill_n(leader_list, comm_size, -1);
Coll_allgather_mpich::allgather(&leader, 1, MPI_INT , leaders_map, 1, MPI_INT, this);
if(leaders_map_==nullptr){
leaders_map_= leaders_map;
}else{
- xbt_free(leaders_map);
+ delete[] leaders_map;
}
int j=0;
int leader_group_size = 0;
}else{
is_blocked_=global_blocked;
}
- xbt_free(leader_list);
+ delete[] leader_list;
if(replaying)
smpi_process()->set_replaying(true);