On Feb 11, 2010, at 2:14 PM, Lisandro Dalcin wrote:

> But you did not answer my previous question... What's the rationale
> for requiring sendbuf!=recvbuf when count=0? I would argue you want a
> free ticket :-) to put restrictions on user code (without an actual
> rationale) in order to simplify your implementation.

I don't understand your assertion.  The MPI spec clearly says that sendbuf must 
!= recvbuf.  If you want the sendbuf to be the same as the recvbuf, MPI 
supports MPI_IN_PLACE for several operations.

I realize that's not what you're trying to do, but these are the semantics that 
MPI has defined.

> > While zero-length arrays/sequence/containers do appears in real code, they 
> > are not equal to NULL. If they are NULL, that means they do not contain any 
> > useful data, and they don't need to be source or target of any kind of 
> > [collective or point-to-point] communications.

And even stronger than this: remember that NULL *is* a valid pointer for MPI 
when it is paired with an appropriate datatype.  As I said in an earlier mail, 
NULL is therefore not a special case buffer for sendbuf or recvbuf.

To be absolutely clear: none of OMPI's MPI API calls have checks of the form:

    if (NULL == choice_buffer)
        return error;

> Yes, I know. Moreover, I agree with you. NULL should be reserved for
> invalid pointers, not for zero-length array...

But it is not.  MPI's datatype mechanism is so general that NULL is valid.

So yes, passing MPI_REDUCE(NULL, NULL, ...) violates the sendbuf!=recvbuf rule 
(partially because there is only one datatype in MPI_REDUCE).  If a language 
may convert a buffer representation to NULL for you behind the scenes, then 
it's up to the language binding to catch/correct that.

...at least by the wording in today's MPI spec.  That being said, your python 
example of buffers a and b unknowingly being transformed to NULL behind the 
scenes seems like a good thing that MPI should support better.  It's exactly 
these kinds of issues that would be helpful to know / discuss / propose 
improvements for MPI-3.

Could we convince you to come to a Forum meeting?  :-)

-- 
Jeff Squyres
jsquy...@cisco.com

For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to