Skip to content

Commit e449535

Browse files
authored
Merge pull request #9219 from awlauria/fix_allreduce_0
reduce/ireduce: Return MPI_SUCCESS when count == 0 and send == recv.
2 parents bf41016 + 715a162 commit e449535

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

ompi/mpi/c/ireduce.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ int MPI_Ireduce(const void *sendbuf, void *recvbuf, int count,
100100
free(msg);
101101
return ret;
102102
} else if ((ompi_comm_rank(comm) != root && MPI_IN_PLACE == sendbuf) ||
103-
(ompi_comm_rank(comm) == root && ((MPI_IN_PLACE == recvbuf) || (sendbuf == recvbuf)))) {
103+
(ompi_comm_rank(comm) == root && ((MPI_IN_PLACE == recvbuf) ||
104+
((sendbuf == recvbuf) && (0 != count))))) {
104105
err = MPI_ERR_ARG;
105106
} else {
106107
OMPI_CHECK_DATATYPE_FOR_SEND(err, datatype, count);

ompi/mpi/c/reduce.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,8 @@ int MPI_Reduce(const void *sendbuf, void *recvbuf, int count,
9999
free(msg);
100100
return ret;
101101
} else if ((ompi_comm_rank(comm) != root && MPI_IN_PLACE == sendbuf) ||
102-
(ompi_comm_rank(comm) == root && ((MPI_IN_PLACE == recvbuf) || (sendbuf == recvbuf)))) {
102+
(ompi_comm_rank(comm) == root && ((MPI_IN_PLACE == recvbuf) ||
103+
((sendbuf == recvbuf) && (0 != count))))) {
103104
err = MPI_ERR_ARG;
104105
} else {
105106
OMPI_CHECK_DATATYPE_FOR_SEND(err, datatype, count);

0 commit comments

Comments
 (0)