[Mpi-22] [MPI Forum] #55: MPI-2.1 Cross-language attribute example is wrong

William Gropp wgropp at [hidden]
Tue Jan 27 16:35:16 CST 2009



On the last point, the real answer is that since the attributes behave  
as if they were set by the now deprecated functions, they should  
themselves be deprecated, since we must not change their behavior.   
This is also the source of the int/MPI_Fint issue - there was no  
MPI_Fint in MPI-1.

Bill

On Jan 27, 2009, at 4:09 PM, MPI Forum wrote:

> #55: MPI-2.1 Cross-language attribute example is wrong
> ----------------------------------- 
> +----------------------------------------
> Reporter:  jsquyres                |        Owner:  jsquyres
>    Type:  Correction to standard  |       Status:  new
> Priority:  Waiting for reviews     |    Milestone:  2008/12/15 Menlo  
> Park
> Version:  MPI 2.2                 |   Resolution:
> Keywords:                          |
> ----------------------------------- 
> +----------------------------------------
>
> Comment(by jsquyres):
>
> I am re-working this proposal and will post a new one soon.  Some  
> things
> that have been consistently missed by multiple reviewers:
>
>  * The original example is '''definitely wrong'''.   
> MPI_COMM_PUT_ATTR does
> not exist; the correct call is MPI_COMM_SET_ATTR.
>  * The original example is '''definitely wrong'''.  Example B sets an
> INTEGER(KIND=MPI_ADDRESS_KIND) value, and therefore the output C  
> type must
> be MPI_Aint* (not (int*)) -- regardless of the behavior of predefined
> attributes.
>  * If predefined attributes are supposed to behave as if they were  
> set via
> the (deprecated!) Fortran MPI-1 function, then the value when  
> retrieved in
> C (e.g., MPI_TAG_UB) should actually be of type MPI_Fint, not int.  I
> think that the text in MPI-2.1 p488:3 is wrong on this point (i.e.,
> s/int/MPI_Fint/).
>
> Per the last point, I think it is pretty good luck that existing MPI  
> apps
> work when using (int*) instead of (MPI_Fint*) -- indeed, most  
> compilers
> have the default sizeof(INTEGER) == sizeof(int).  But that does not  
> have
> to be the case; MPI_Fint is technically more correct.
>
> Also per the last point, why are we specifying that predefined  
> attributes
> behave as if they were set by deprecated functions?  That seems  
> strange.
>
> -- 
> Ticket URL: <https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/55#comment:21 
> >
> MPI Forum <https://svn.mpi-forum.org/>
> MPI Forum

William Gropp
Deputy Director for Research
Institute for Advanced Computing Applications and Technologies
Paul and Cynthia Saylor Professor of Computer Science
University of Illinois Urbana-Champaign



More information about the Mpi-22 mailing list