well, but the point is, that the requirement I listed is explicitly mentioned in the chapter about MPI_Reduce. So I would claim, that it trumps (at least) the second citation. (BTW: I am pretty sure that I remember having this discussion early in Open MPI days already :-) )

But maybe that's something for 2.1?
Thanks
edgar


George Bosilca wrote:
Well, well, well ... There is really no way to make everybody happy ...

When I did the previous commit (where I added the check), Tim Prins pointed out the following 2 paragraphs from the MPI standard.

MPI-1.1 s4.9.1 (p113, line 28) says the recvbuf is "significant only at root".

MPI-1.1 s2.2 (p7, line 7-9) and MPI-2 s2.3 (p7 line 1-3) have the identical text: "Another frequent situation arises when an argument value is needed only by a subset of the processes. When an argument is not significant at a process then an arbitrary value can be passed as argument."

As you can see on the second paragraph, the standard claims that an arbitrary value can be passed.

  george.

On Feb 4, 2008, at 8:17 AM, Edgar Gabriel wrote:

George,

I hate to say this, but I don't think that this is correct. Page 114 in
MPI 1 says (in the section about MPI_Reduce)

"Thus, all processes provide input buffers and output buffers of the
same length, with elements of the same time".

The content is only significant at the root, but all processes have to
provide the buffer according to my understanding...

Thanks
Edgar

bosi...@osl.iu.edu wrote:
Author: bosilca
Date: 2008-02-03 20:44:41 EST (Sun, 03 Feb 2008)
New Revision: 17366
URL: https://svn.open-mpi.org/trac/ompi/changeset/17366

Log:
As the receive buffer is only significant at root, limit the
check only where it makes sense.

Text files modified:
  trunk/ompi/mpi/c/reduce.c |     4 +---
  1 files changed, 1 insertions(+), 3 deletions(-)

Modified: trunk/ompi/mpi/c/reduce.c
==============================================================================
--- trunk/ompi/mpi/c/reduce.c    (original)
+++ trunk/ompi/mpi/c/reduce.c 2008-02-03 20:44:41 EST (Sun, 03 Feb 2008)
@@ -59,9 +59,7 @@
            free(msg);
            return ret;
} else if ((ompi_comm_rank(comm) != root && MPI_IN_PLACE == sendbuf) || - (ompi_comm_rank(comm) == root && MPI_IN_PLACE == recvbuf)) {
-            err = MPI_ERR_ARG;
-        } else if( sendbuf == recvbuf ) {
+ (ompi_comm_rank(comm) == root && ((MPI_IN_PLACE == recvbuf) || (sendbuf == recvbuf)))) {
            err = MPI_ERR_ARG;
        } else {
            OMPI_CHECK_DATATYPE_FOR_SEND(err, datatype, count);
_______________________________________________
svn mailing list
s...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/svn

--
Edgar Gabriel
Assistant Professor
Parallel Software Technologies Lab      http://pstl.cs.uh.edu
Department of Computer Science          University of Houston
Philip G. Hoffman Hall, Room 524        Houston, TX-77204, USA
Tel: +1 (713) 743-3857                  Fax: +1 (713) 743-3335
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel


------------------------------------------------------------------------

_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

--
Edgar Gabriel
Assistant Professor
Parallel Software Technologies Lab      http://pstl.cs.uh.edu
Department of Computer Science          University of Houston
Philip G. Hoffman Hall, Room 524        Houston, TX-77204, USA
Tel: +1 (713) 743-3857                  Fax: +1 (713) 743-3335

Reply via email to