X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8aa3d4e2efefa53572b4bff010b49d637d02d880..1ba8e265192b67c6903d48faeabe9e1d626bcd3d:/teshsuite/smpi/reduce_coll.c?ds=sidebyside diff --git a/teshsuite/smpi/reduce_coll.c b/teshsuite/smpi/reduce_coll.c index df40dc224c..7acc93d99f 100644 --- a/teshsuite/smpi/reduce_coll.c +++ b/teshsuite/smpi/reduce_coll.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2009, 2010. The SimGrid Team. +/* Copyright (c) 2009-2010, 2013-2014. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -34,16 +34,16 @@ int main(int argc, char *argv[]) sb[i] = rank*size + i; rb[i] = 0; } - printf("[%d] sndbuf=[", rank); for (i = 0; i < size; i++) printf("%d ", sb[i]); printf("]\n"); - - status = MPI_Reduce(sb, rb, size, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); + + int root=0; + status = MPI_Reduce(sb, rb, size, MPI_INT, MPI_SUM, root, MPI_COMM_WORLD); MPI_Barrier(MPI_COMM_WORLD); - if (rank == 0) { + if (rank == root) { printf("[%d] rcvbuf=[", rank); for (i = 0; i < size; i++) printf("%d ", rb[i]); @@ -53,6 +53,27 @@ int main(int argc, char *argv[]) fflush(stdout); } } + + + printf("[%d] second sndbuf=[", rank); + for (i = 0; i < 1; i++) + printf("%d ", sb[i]); + printf("]\n"); + + root=size-1; + status = MPI_Reduce(sb, rb, 1, MPI_INT, MPI_PROD, root, MPI_COMM_WORLD); + MPI_Barrier(MPI_COMM_WORLD); + + if (rank == root) { + printf("[%d] rcvbuf=[", rank); + for (i = 0; i < 1; i++) + printf("%d ", rb[i]); + printf("]\n"); + if (status != MPI_SUCCESS) { + printf("all_to_all returned %d\n", status); + fflush(stdout); + } + } free(sb); free(rb); MPI_Finalize();