X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2a7da3fc475a11817defb8d201da3887c9215b1a..319a100d7f88e1ce33ca97fe868e796ae61304b9:/teshsuite/smpi/bcast_coll.c diff --git a/teshsuite/smpi/bcast_coll.c b/teshsuite/smpi/bcast_coll.c index 008543a04b..67c0c13bdf 100644 --- a/teshsuite/smpi/bcast_coll.c +++ b/teshsuite/smpi/bcast_coll.c @@ -10,6 +10,7 @@ int main(int argc, char **argv) { int i, size, rank; + int count = 2048; int *values; int status; @@ -17,20 +18,37 @@ int main(int argc, char **argv) MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); - values = (int *) xbt_malloc(size * sizeof(int)); + values = (int *) xbt_malloc(count * sizeof(int)); - for (i = 0; i < size; i++) + for (i = 0; i < count; i++) values[i] = (0 == rank) ? 17 : 3; - status = MPI_Bcast(values, size, MPI_INT, 0, MPI_COMM_WORLD); + status = MPI_Bcast(values, count, MPI_INT, 0, MPI_COMM_WORLD); - printf("[%d] values=[", rank); - for (i = 0; i < size; i++) - printf("%d ", values[i]); - printf("]\n"); + int good = 0; + for (i = 0; i < count; i++) + if (values[i]==17) good++; + printf("[%d] number of values equals to 17: %d\n", rank, good); MPI_Barrier(MPI_COMM_WORLD); + xbt_free(values); + count = 4096; + values = (int *) xbt_malloc(count * sizeof(int)); + + for (i = 0; i < count; i++) + values[i] = (size -1 == rank) ? 17 : 3; + + status = MPI_Bcast(values, count, MPI_INT, size-1, MPI_COMM_WORLD); + + good = 0; + for (i = 0; i < count; i++) + if (values[i]==17) good++; + printf("[%d] number of values equals to 17: %d\n", rank, good); + + + + if (rank == 0) { if (status != MPI_SUCCESS) { printf("bcast returned %d\n", status);