X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e7c0c67af63b3979a597a66e5e1c8b0435fc6e19..21446da234b79358c6f7ed918e582e7e5a36d8b3:/src/smpi/colls/bcast-flattree-pipeline.c diff --git a/src/smpi/colls/bcast-flattree-pipeline.c b/src/smpi/colls/bcast-flattree-pipeline.c index f01bbae76d..9b94eb214e 100644 --- a/src/smpi/colls/bcast-flattree-pipeline.c +++ b/src/smpi/colls/bcast-flattree-pipeline.c @@ -1,3 +1,9 @@ +/* Copyright (c) 2013-2014. The SimGrid Team. + * All rights reserved. */ + +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the license (GNU LGPL) which comes with this package. */ + #include "colls_private.h" int flattree_segment_in_byte = 8192; @@ -8,15 +14,19 @@ smpi_coll_tuned_bcast_flattree_pipeline(void *buff, int count, MPI_Comm comm) { int i, j, rank, num_procs; - int tag = 1; + int tag = COLL_TAG_BCAST; MPI_Aint extent; extent = smpi_datatype_get_extent(data_type); int segment = flattree_segment_in_byte / extent; + segment = segment == 0 ? 1 :segment; 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);