- if (smpi_instances.empty()) { // no instance registered, we probably used smpirun.
- index_to_process_data[index]=index;
- return;
- }
-
- Instance& instance = smpi_instances.at(instance_id);
-
- if (instance.comm_world == MPI_COMM_NULL) {
- MPI_Group group = new simgrid::smpi::Group(instance.size);
- instance.comm_world = new simgrid::smpi::Comm(group, nullptr);
- }
- instance.present_processes++;
- index_to_process_data[index] = instance.index + rank;
- instance.comm_world->group()->set_mapping(index, rank);
+ const Instance& instance = smpi_instances.at(instance_id);
+ instance.comm_world_->group()->set_mapping(actor->get_pid(), rank);