As reported by the mpi4py community (Bennet Fauber, Lisandro Dalcin,
Jonathan Dursi), fix a bug in the parameter verification of MPI_ALLGATHERV: ensure to use the ''remote'' group size when checking the recvcounts array. This commit was SVN r26488.
Этот коммит содержится в:
родитель
32337d0d5c
Коммит
42793aa10f
@ -10,6 +10,7 @@
|
|||||||
* 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) 2010 University of Houston. All rights reserved.
|
* Copyright (c) 2010 University of Houston. All rights reserved.
|
||||||
|
* Copyright (c) 2012 Cisco Systems, Inc. All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -93,7 +94,12 @@ int MPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
|||||||
}
|
}
|
||||||
OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME);
|
OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME);
|
||||||
|
|
||||||
size = ompi_comm_size(comm);
|
/* We always define the remote group to be the same as the local
|
||||||
|
group in the case of an intracommunicator, so it's safe to
|
||||||
|
get the size of the remote group here for both intra- and
|
||||||
|
intercommunicators */
|
||||||
|
|
||||||
|
size = ompi_comm_remote_size(comm);
|
||||||
for (i = 0; i < size; ++i) {
|
for (i = 0; i < size; ++i) {
|
||||||
if (recvcounts[i] < 0) {
|
if (recvcounts[i] < 0) {
|
||||||
return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_COUNT, FUNC_NAME);
|
return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_COUNT, FUNC_NAME);
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user