// we need to switch as the called function may silently touch global variables
smpi_switch_data_segment(s4u::Actor::self());
}
- MPI_Group cp = new Group(this->group());
+ auto* cp = new Group(this->group());
(*newcomm) = new Comm(cp, this->topo());
int ret = MPI_SUCCESS;
for (int j = i + 1; j < size; j++) {
if(recvbuf[2 * i] == recvbuf[2 * j]) {
recvbuf[2 * j] = MPI_UNDEFINED;
- rankmap.push_back({recvbuf[2 * j + 1], j});
+ rankmap.emplace_back(recvbuf[2 * j + 1], j);
}
}
/* Add self in the group */
recvbuf[2 * i] = MPI_UNDEFINED;
- rankmap.push_back({recvbuf[2 * i + 1], i});
+ rankmap.emplace_back(recvbuf[2 * i + 1], i);
std::sort(begin(rankmap), end(rankmap));
group_out = new Group(rankmap.size());
if (i == 0) {
int min_index = INT_MAX; // the minimum index will be the leader
for (auto& actor : actor_list) {
int index = actor.get_pid();
- if (this->group()->rank(actor.ciface()) != MPI_UNDEFINED) { // Is this process in the current group?
+ if (this->group()->rank(actor.get_ciface()) != MPI_UNDEFINED) { // Is this process in the current group?
intra_comm_size++;
if (index < min_index)
min_index = index;
}
}
XBT_DEBUG("number of processes deployed on my node : %d", intra_comm_size);
- MPI_Group group_intra = new Group(intra_comm_size);
+ auto* group_intra = new Group(intra_comm_size);
int i = 0;
for (auto& actor : actor_list) {
- if (this->group()->rank(actor.ciface()) != MPI_UNDEFINED) {
- group_intra->set_mapping(actor.ciface(), i);
+ if (this->group()->rank(actor.get_ciface()) != MPI_UNDEFINED) {
+ group_intra->set_mapping(actor.get_ciface(), i);
i++;
}
}
// identify neighbors in comm
MPI_Comm comm_intra = find_intra_comm(&leader);
-
- int* leaders_map = new int[comm_size];
- int* leader_list = new int[comm_size];
+ auto* leaders_map = new int[comm_size];
+ auto* leader_list = new int[comm_size];
std::fill_n(leaders_map, comm_size, 0);
std::fill_n(leader_list, comm_size, -1);
xbt_assert(leader_group_size > 0);
std::sort(leader_list, leader_list + leader_group_size);
- MPI_Group leaders_group = new Group(leader_group_size);
+ auto* leaders_group = new Group(leader_group_size);
MPI_Comm leader_comm = MPI_COMM_NULL;
if(MPI_COMM_WORLD!=MPI_COMM_UNINITIALIZED && this!=MPI_COMM_WORLD){