[MPI3 Fortran] Non-contiguous arrays (was Re: Argument data sizes)

Aleksandar Donev donev1 at llnl.gov
Thu Sep 18 12:44:35 CDT 2008


On Thursday 18 September 2008 10:35, Supalov, Alexander wrote:

> I think, technically, copy-in/out might occur on the subroutine boundary
> in this case.
A copy in/out can formally be disallowed by adding the TARGET, VOLATILE, or 
ASYNCHRONOUS attribute on the dummy and on the actual. For the non-blocking 
calls, this is what we should do (I would argue for both TARGET and 
VOLATILE---it is only in the interface so it doesn't affect any 
optimization). For the non-blocking, a copy is technically allowed (and 
should be), but no sane compiler would do it for a 32GB array (or if it does, 
it will stop doing that when the customers call).

Also note that Fortran 2008 has a new CONTIGUOUS attribute which may be useful 
in the MPI interface (or the "Modern Fortran MPI Interface" that Craig and I 
mentioned already)...

Best,
Aleks

-- 
Aleksandar Donev, Ph.D.
Lawrence Postdoctoral Fellow @ Lawrence Livermore National Laboratory
High Performance Computational Materials Science and Chemistry
E-mail: donev1 at llnl.gov
Phone: (925) 424-6816  Fax: (925) 423-0785
Address: P.O.Box 808, L-367, Livermore, CA 94551-9900
Web: http://cherrypit.princeton.edu/donev



More information about the mpiwg-fortran mailing list