1
1

Correctly compute the number of elements in a segment.

For broadcast send the correct size for all intermediary nodes.

This commit was SVN r12552.
Этот коммит содержится в:
George Bosilca 2006-11-10 23:04:50 +00:00
родитель 7102147b9f
Коммит c2c6a1b37e
3 изменённых файлов: 5 добавлений и 4 удалений

Просмотреть файл

@ -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); \

Просмотреть файл

@ -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 */

Просмотреть файл

@ -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; }
}