X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0ec122a780b6dd27347cca4d240de563e607f349..3fab894cbce7d5bdd43a6fc9aa647b3809d63507:/src/smpi/smpi_topo.cpp diff --git a/src/smpi/smpi_topo.cpp b/src/smpi/smpi_topo.cpp index 1e5f55d56f..16b8cfa1c3 100644 --- a/src/smpi/smpi_topo.cpp +++ b/src/smpi/smpi_topo.cpp @@ -150,7 +150,7 @@ int smpi_mpi_cart_create(MPI_Comm comm_old, int ndims, int dims[], int periods[] } else { if (rank == 0) { newCart = smpi_cart_topo_create(ndims); - *comm_cart = smpi_comm_new(smpi_comm_group(MPI_COMM_SELF), newCart); + *comm_cart = smpi_comm_new(smpi_group_copy(smpi_comm_group(MPI_COMM_SELF)), newCart); } else { *comm_cart = MPI_COMM_NULL; } @@ -203,8 +203,8 @@ int smpi_mpi_cart_coords(MPI_Comm comm, int rank, int maxdims, int coords[]) { int smpi_mpi_cart_get(MPI_Comm comm, int maxdims, int* dims, int* periods, int* coords) { MPI_Topology topo = smpi_comm_topo(comm); - - for(int i = 0 ; i < maxdims ; i++) { + int ndims=topo->topo.cart->ndims < maxdims ? topo->topo.cart->ndims : maxdims; + for(int i = 0 ; i < ndims ; i++) { dims[i] = topo->topo.cart->dims[i]; periods[i] = topo->topo.cart->periodic[i]; coords[i] = topo->topo.cart->position[i];