From c2c6a1b37e3c2282309f8cd6e512c37b4c8ce4ef Mon Sep 17 00:00:00 2001 From: George Bosilca Date: Fri, 10 Nov 2006 23:04:50 +0000 Subject: [PATCH] Correctly compute the number of elements in a segment. For broadcast send the correct size for all intermediary nodes. This commit was SVN r12552. --- ompi/mca/coll/tuned/coll_tuned.h | 3 ++- ompi/mca/coll/tuned/coll_tuned_bcast.c | 4 ++-- ompi/mca/coll/tuned/coll_tuned_reduce.c | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ompi/mca/coll/tuned/coll_tuned.h b/ompi/mca/coll/tuned/coll_tuned.h index d95014e459..a895a337ee 100644 --- a/ompi/mca/coll/tuned/coll_tuned.h +++ b/ompi/mca/coll/tuned/coll_tuned.h @@ -405,7 +405,8 @@ do { * expected by the collective call. */ #define COLL_TUNED_COMPUTED_SEGCOUNT(SEGSIZE, TYPELNG, SEGCOUNT) \ - if( (SEGSIZE) >= (TYPELNG) ) { \ + if( ((SEGSIZE) >= (TYPELNG)) && \ + ((SEGSIZE) < ((TYPELNG) * (SEGCOUNT))) ) { \ size_t residual; \ (SEGCOUNT) = (int)((SEGSIZE) / (TYPELNG)); \ residual = (SEGSIZE) - (SEGCOUNT) * (TYPELNG); \ diff --git a/ompi/mca/coll/tuned/coll_tuned_bcast.c b/ompi/mca/coll/tuned/coll_tuned_bcast.c index 26a81340c6..592ba8f4d8 100644 --- a/ompi/mca/coll/tuned/coll_tuned_bcast.c +++ b/ompi/mca/coll/tuned/coll_tuned_bcast.c @@ -140,11 +140,11 @@ ompi_coll_tuned_bcast_intra_generic( void* buffer, for( i = 0; i < tree->tree_nextsize; i++ ) { /* send data to children */ /* send data */ #if defined(COLL_TUNED_BCAST_USE_BLOCKING) - err = MCA_PML_CALL(send(tmpbuf, sendcount, datatype, + err = MCA_PML_CALL(send(tmpbuf, count_by_segment, datatype, tree->tree_next[i], MCA_COLL_BASE_TAG_BCAST, MCA_PML_BASE_SEND_STANDARD, comm)); #else - err = MCA_PML_CALL(isend(tmpbuf, sendcount, datatype, + err = MCA_PML_CALL(isend(tmpbuf, count_by_segment, datatype, tree->tree_next[i], MCA_COLL_BASE_TAG_BCAST, MCA_PML_BASE_SEND_STANDARD, comm, &send_reqs[i])); #endif /* COLL_TUNED_BCAST_USE_BLOCKING */ diff --git a/ompi/mca/coll/tuned/coll_tuned_reduce.c b/ompi/mca/coll/tuned/coll_tuned_reduce.c index be3d85b1c8..aee4f3a50b 100644 --- a/ompi/mca/coll/tuned/coll_tuned_reduce.c +++ b/ompi/mca/coll/tuned/coll_tuned_reduce.c @@ -119,7 +119,7 @@ int ompi_coll_tuned_reduce_generic( void* sendbuf, void* recvbuf, int original_c local_recvbuf = accumbuf + segindex * realsegsize; } } - ret = MCA_PML_CALL(irecv(local_recvbuf, recvcount,datatype, tree->tree_next[i], + ret = MCA_PML_CALL(irecv(local_recvbuf, recvcount, datatype, tree->tree_next[i], MCA_COLL_BASE_TAG_REDUCE, comm, &reqs[inbi])); if (ret != MPI_SUCCESS) { line = __LINE__; goto error_hndl; } }