[MPI3 Fortran] MPI Data types

Iain Bason Iain.Bason at Sun.COM
Sat May 9 13:53:13 CDT 2009


On May 9, 2009, at 1:56 PM, N.M. Maclaren wrote:

> On May 8 2009, Iain Bason wrote:
>>
>> I should add that some compilers (including Sun's) do a run time  
>> check  for contiguity, and only do copy in/out when it is actually  
>> needed.  I  don't think that makes a difference for Nick's  
>> argument, though.
>
> That's interesting.  Something that I raised in J3 is that compilers
> may use copy-in/copy-out even when passing to assumed shape dummy
> arguments.  Consider calls like:
>
>   REAL :: X(1000,1000,10000)
>   LinearSolve(X(1,:,:),X(2,3,:))
>
> That is most cache-unfriendly, and can often be speeded up  
> considerably by
> copying the arrays to contiguous storage.  Fortran permits that, in  
> the
> absence of various special attributes.  And, yes, it has been done  
> and may
> still be done.

Yes, although we would generally do that inside the called routine  
(i.e., the prologue and epilogue to LinearSolve in this case would do  
the copies).  A compiler might also do that to pad inner dimensions to  
avoid thrashing TLB, for instance.

Iain




More information about the mpiwg-fortran mailing list