X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7f04fa5306f52960db709bb520c49e9f4ecec000..31bc8c4868d7518f247a8f8c371b175ed80dc6b5:/teshsuite/smpi/bcast_coll.c diff --git a/teshsuite/smpi/bcast_coll.c b/teshsuite/smpi/bcast_coll.c index 140288391c..ea0709263b 100644 --- a/teshsuite/smpi/bcast_coll.c +++ b/teshsuite/smpi/bcast_coll.c @@ -9,29 +9,53 @@ int main(int argc, char **argv) { - int size, rank; - int value = 3; + int i, size, rank; + int count = 2048; + int *values; int status; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); + + values = (int *) xbt_malloc(count * sizeof(int)); - if (0 == rank) { - value = 17; - } - status = MPI_Bcast(&value, 1, MPI_INT, 0, MPI_COMM_WORLD); - printf("node %d has value %d after broadcast\n", rank, value); + for (i = 0; i < count; i++) + values[i] = (0 == rank) ? 17 : 3; + + status = MPI_Bcast(values, count, MPI_INT, 0, MPI_COMM_WORLD); + + 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); fflush(stdout); } } - + xbt_free(values); MPI_Finalize(); return 0; }