Re: [MPI3 Fortran] Non-contiguous arrays (was Re: Argument data sizes)
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: [email protected] 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
participants (1)
-
Aleksandar Donev