Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
sometimes, maxdims is too much
authordegomme <augustin.degomme@unibas.ch>
Tue, 19 Apr 2016 00:04:58 +0000 (02:04 +0200)
committerdegomme <augustin.degomme@unibas.ch>
Tue, 19 Apr 2016 00:04:58 +0000 (02:04 +0200)
src/smpi/smpi_topo.cpp

index 1e5f55d..2f22566 100644 (file)
@@ -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);
 
 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];
         dims[i] = topo->topo.cart->dims[i];
         periods[i] = topo->topo.cart->periodic[i];
         coords[i] = topo->topo.cart->position[i];