[Mpi-22] Another MPI-2.2 attribute ambiguity?

Iain Bason Iain.Bason at [hidden]
Thu May 14 12:33:33 CDT 2009



On May 14, 2009, at 1:05 PM, Jeff Squyres wrote:

> Another question about this issue...
>
> Since all fortran values are passed by reference, does the MPI care  
> if the callback function changes the EXTRA_STATE value?  I see 2  
> choices:
>
> 1. The MPI copies the value of extra_state when MPI_*_CREATE_KEVAL  
> is invoked to internal storage.  This internal storage is passed to  
> all the callbacks when invoked.  If any of the callbacks change the  
> value, then subsequent invocations of the callback get the changed  
> value.
>
> 2. The MPI copies the value of extra_state when MPI_*_CREATE_KEVAL  
> is invoked to internal storage.  This internal storage is copied any  
> time a callback is invoked; the copy is passed to the callback (and  
> freed when the callback returns).  In this way, the same EXTRA_STATE  
> value that was originally passed to the keyval constructor will  
> always be passed to any callbacks.
>
> What do current MPI implementations do?
>
> OMPI's development trunk has been updated to do #1; I'm wondering if  
> it should do #2.

I wondered about that too.  I don't think that the Fortran standard  
has anything to say about it, so it's really a matter of what would be  
most useful to MPI users.  Of course, if the MPI spec said that  
EXTRA_STATE was INTENT(IN) then there would be no ambiguity.

Iain



More information about the Mpi-22 mailing list