[MPI3 Fortran] Proposing changes to Fortran 2008

Craig Rasmussen crasmussen at lanl.gov
Tue Mar 18 09:08:33 CDT 2008


On Mar 14, 2008, at 6:29 PM, Jeff Squyres wrote:

> On Mar 12, 2008, at 5:24 PM, Aleksandar Donev wrote:
>
>> For non-blocking sends, a pointer to the actual must be retained.  
>> This
>> requires matching TARGET attributes on *both* the dummy and actual:
>>
>> interface
>> subroutine mpi_Isend(buffer...) bind(c)
>>    type(c_void), dimension(*), target :: buffer
>> end subroutine
>> end interface
>>
>> integer(c_int), target :: x(100)
>>
>> call mpi_Isend(x...)
>>
>> For the call to actually work as expected, the actual must be
>> contiguous
>> (this is a new defined term in Fortran 2008 with some intrinsics to
>> test
>> is an array is contiguous) and have the target attribute, and must
>> be of
>> interoperable type.
>
>
> I admit that I know so little about Fortran that much of your mail
> went over my head.  :-(  But a question about the above: is it
> possible to allow non-contiguous datatypes to be passed through
> without having the compiler copy them into contiguous areas?  It may
> be possible, for example, for the MPI datatype to accurately describe
> the non-contiguousness of the data, and MPI is well-equipped to handle
> such situations.

I'm not sure I understand MPI datatypes to respond coherently, but  
that's never stopped me before :-)

I think you really want contiguous"ness", otherwise you wouldn't know  
how to stride through the data with constant offsets.  Right?

Cheers,
Craig




More information about the mpiwg-fortran mailing list