Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

Subject: Re: [OMPI devel] [EXTERNAL] Re: Compile-time MPI_Datatype checking
From: Dmitri Gribenko (gribozavr_at_[hidden])
Date: 2012-10-31 15:57:34


On Wed, Oct 31, 2012 at 9:51 PM, Barrett, Brian W <bwbarre_at_[hidden]> wrote:
> On 10/31/12 1:39 PM, "Paul Hargrove" <phhargrove_at_[hidden]> wrote:
>
>>No, I don't have specific usage cases that concern me.
>>
>>
>>As I said a minute or two ago in a reply to Ralph, my concern is that the
>>Sandia codes provide an "existence proof" that "really smart people" can
>>write questionable code at times. So, I fear that a larger-than-expected
>>fraction of real codes would generate warnings.
>
> Not surprisingly, most of the codes I'm concerned about are really old
> (like pre-MPI old). The authors were dealing with more than one
> communication library, so they wrote wrappers inside their code for
> communication. The wrappers were for a bunch of different communication
> interfaces and so fairly agnostic, but looked a lot like MPI (because MPI
> looks a lot like NX, PVM, etc.). Anyway, they squashed down everything to
> either a void* or char* (remember, this is when void* was not always
> supported), passed that to MPI with a datatype, and off we go.

Thank you for sharing the context.

> That said, if we didn't throw a warning if the pointer is of type void* or
> char*, I think I'd be mostly ok with the patch being on by default. I'm
> not sure if that's possible or not...

It is certainly possible to do that. However, we would lose the
ability to diagnose type mismatches for MPI_CHARACTER, but it is a
rarely-used type tag (is it?).

Dmitri

-- 
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr_at_[hidden]>*/