[MPI3 Fortran] Request for a straw vote.

Bill Long longb at cray.com
Wed Jun 10 18:40:14 CDT 2009

Craig Rasmussen wrote:
> On Jun 10, 2009, at 11:08 AM, Hubert Ritzdorf wrote:
>> Craig Rasmussen wrote:
>>> 12. Q: Is it an error if the user gives a non-contiguous buffer to a 
>>> choice argument as it is for C?
>>>    A: Yes.
>>>    Unresolved issue:  Should the vendor be required to catch the 
>>> error as always checking the argument is a performance issue
>> No; The MPI library has to support this and the MPI forum has to 
>> define how the
>> non-contiguous buffer has to be interpreted.
> A note to everyone not at the MPI Forum meeting.  There seems to be a 
> consensus forming around having the MPI implementors doing the "right" 
> thing with regards to noncontiguous memory.

Doing the "right" thing could be simpler if the request argument were a 
small structure instead of a simple integer. Maybe TYPE MPI_Request. 
The first component of the struct would be the same as the current 
integer. That way the address of the struct could be passed to the C 
routine as is now the case and still work.  The other components would 
be ignored by the lower level routine, and contain the information used 
to control the copy-in and copy-out processes inside wrappers for the 
non-blocking routines.  The same information is available to the WAIT 
routine later. There it can be used to decide if a temp copy was 
allocated (non-NULL address in the temp component), and if a copy-out is 
needed (non-NULL address for the descriptor for the original actual 
argument). This allows deferring the copy-out and freeing of the temp to 
the WAIT routine, solving the classic "copy-in/copy-out" problem that 
can afflict the non-blocking routines now.


Bill Long                                   longb at cray.com
Fortran Technical Support    &              voice: 651-605-9024
Bioinformatics Software Development         fax:   651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120

More information about the mpiwg-fortran mailing list