From 24689c95f53e8345b05f5417537c43699e634d5f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20B=C3=A9daride?= Date: Tue, 9 Apr 2013 15:42:46 +0200 Subject: [PATCH] Fix mpi bcast flattree-pipeline collective --- src/smpi/colls/bcast-flattree-pipeline.c | 5 +++- teshsuite/smpi/bcast_coll.c | 15 ++++++----- teshsuite/smpi/bcast_coll.tesh | 33 ++++++++++++------------ 3 files changed, 28 insertions(+), 25 deletions(-) diff --git a/src/smpi/colls/bcast-flattree-pipeline.c b/src/smpi/colls/bcast-flattree-pipeline.c index f01bbae76d..9033bf571d 100644 --- a/src/smpi/colls/bcast-flattree-pipeline.c +++ b/src/smpi/colls/bcast-flattree-pipeline.c @@ -16,7 +16,10 @@ smpi_coll_tuned_bcast_flattree_pipeline(void *buff, int count, int segment = flattree_segment_in_byte / extent; int pipe_length = count / segment; int increment = segment * extent; - + if (pipe_length==0) { + XBT_WARN("MPI_bcast_flattree_pipeline use default MPI_bcast_flattree."); + return smpi_coll_tuned_bcast_flattree(buff, count, data_type, root, comm); + } rank = smpi_comm_rank(comm); num_procs = smpi_comm_size(comm); diff --git a/teshsuite/smpi/bcast_coll.c b/teshsuite/smpi/bcast_coll.c index 008543a04b..9bb6a04fe6 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,17 +18,17 @@ 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); diff --git a/teshsuite/smpi/bcast_coll.tesh b/teshsuite/smpi/bcast_coll.tesh index f14e2b7e4a..7dc08a5df0 100644 --- a/teshsuite/smpi/bcast_coll.tesh +++ b/teshsuite/smpi/bcast_coll.tesh @@ -21,20 +21,19 @@ $ ../../bin/smpirun -map -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/ > [rank 14] -> Bourassa > [rank 15] -> Tremblay > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s) -> [0] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [1] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [2] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [3] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [4] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [5] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [6] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [7] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [8] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [9] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [10] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [11] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [12] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [13] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [14] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] -> [15] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ] - +> [0] number of values equals to 17: 2048 +> [1] number of values equals to 17: 2048 +> [2] number of values equals to 17: 2048 +> [3] number of values equals to 17: 2048 +> [4] number of values equals to 17: 2048 +> [5] number of values equals to 17: 2048 +> [6] number of values equals to 17: 2048 +> [7] number of values equals to 17: 2048 +> [8] number of values equals to 17: 2048 +> [9] number of values equals to 17: 2048 +> [10] number of values equals to 17: 2048 +> [11] number of values equals to 17: 2048 +> [12] number of values equals to 17: 2048 +> [13] number of values equals to 17: 2048 +> [14] number of values equals to 17: 2048 +> [15] number of values equals to 17: 2048 -- 2.20.1