Handle MPI_IN_PLACE correctly in the ompi_coll_tuned_reduce_scatter_intra_ring function.
We were not adjusting the sendbuf in this case so we were reducing garbage. This fixes ticket #1506. This commit was SVN r19673.
Этот коммит содержится в:
родитель
852c0e35b8
Коммит
0a0ddfc934
@ -9,6 +9,7 @@
|
|||||||
* University of Stuttgart. All rights reserved.
|
* University of Stuttgart. All rights reserved.
|
||||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
|
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -526,12 +527,14 @@ ompi_coll_tuned_reduce_scatter_intra_ring(void *sbuf, void *rbuf, int *rcounts,
|
|||||||
inbuf[1] = inbuf_free[1] - lb;
|
inbuf[1] = inbuf_free[1] - lb;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle MPI_IN_PLACE */
|
/* Handle MPI_IN_PLACE for size > 1 */
|
||||||
if (MPI_IN_PLACE != sbuf) {
|
if (MPI_IN_PLACE == sbuf) {
|
||||||
|
sbuf = rbuf;
|
||||||
|
}
|
||||||
|
|
||||||
ret = ompi_ddt_copy_content_same_ddt(dtype, total_count,
|
ret = ompi_ddt_copy_content_same_ddt(dtype, total_count,
|
||||||
accumbuf, (char*)sbuf);
|
accumbuf, (char*)sbuf);
|
||||||
if (ret < 0) { line = __LINE__; goto error_hndl; }
|
if (ret < 0) { line = __LINE__; goto error_hndl; }
|
||||||
}
|
|
||||||
|
|
||||||
/* Computation loop */
|
/* Computation loop */
|
||||||
|
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user