Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] Compile-time MPI_Datatype checking
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2012-05-31 07:29:28


On May 31, 2012, at 7:22 AM, Dmitri Gribenko wrote:

>> I can't think of a case offhand where it's acceptable to pass MPI_DATATYPE_NULL to an MPI function. I could be missing something, though... (actually, I guess I can think of some cases -- we have some regression test programs that specifically pass MPI_DATATYPE_NULL, just to ensure that it properly invokes an MPI exception)
>
> I usually pass <NULL, MPI_DATATYPE_NULL> as arguments which are
> "significant only at root" and that function call is not in the root
> process code path.

Ah, good point. But in those cases, MPI specifically defines that those arguments are wholly ignored on non-root processes. So you could still even pass <&foo, MPI_DATATYPE_NULL>, or <NULL, MPI_INT>, and it would be ok.

>> But even so, if one passes MPI_DATATYPE_NULL, the buffer and count arguments will be ignored. So I don't think that we want to require that MPI_DATATYPE_NULL *requires* a NULL pointer.
>
> It just doesn't make sense to pass non-null pointer and
> MPI_DATATYPE_NULL (because null pointer will be ignored). Hence the
> warning.

Hmm. I'm still a bit torn about this.

>>> *** JMS I'm a bit confused as to why 2int got a tag, but the others
>>> did not. We do have C equivalents for all types -- do you need a
>>> listing of the configure results where we figured out all the C
>>> equivalents? (i.e., I can look them up for you -- our configury
>>> is a bit... deep :-) )
>>>
>>> I did not annotate them because those are Fortran types. If there are
>>> some known C equivalents in OpenMPI, I will happily add them. But
>>> please note that if these equivalents are discovered during configure,
>>> we can not hardcode them into mpi.h.in. Some autoconf macros will be
>>> needed probably.
>>
>> We should have AC macros for all of these already.
>
> OK, I'll try find them to support (1) usecase described below.

No, I'll find them -- sorry, I meant to look them up before I sent the last mail. Let me look them up and get back to you. Our configury is quite complicated, and I know the right places to look. :-)

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/