[MPI3 Fortran] [Fwd: add TYPE(*) and DIMENSION(..) to Fortran]
Aleksandar Donev
donev1 at llnl.gov
Fri Sep 5 13:49:22 CDT 2008
On Friday 05 September 2008 11:39, Jeff Squyres wrote:
> This was also a question -- can we access the parts of the
> descriptor? If so, can we only do so from Fortran?
Yes, but only from C. Inside Fortran, descriptors are "hidden" objects: They
represent arrays, which are the actual language entities. In C, they will be
structs that you can peak into and modify (detailed draft proposal will be
released by Bill Long soon), with heavy restrictions to make sure you don't
crash the Fortran program that will be using the descriptors you have mucked
up.
> We *could* do something more intelligent, but it's questionable as to
> whether it would be better performance (i.e., construct a type map
> struct and have the MPI datatype engine do the heavy lifting -- but
> the process of building that type map may be expensive, depending on
> the complexity and size of the data.
Is there any known stats about how many people if any use MPI datatypes to
copy strided data? I know ARMCI supports strided arrays.
My feeling is that if the MPI library buffers stuff under the covers anyway,
there won't be any advantage. If, however, you have some kind of DRMA or some
such unbuffered mechanism than it would seem to me strided access should be
faster? I have no clue, really. But I do know that it is good to have Fortran
as a language allow for both options. There is nothing that says that the
Fortran MPI binding cannot have *two* MPI_Sends, one more like the C binding
(overhead is essentially one procedure call), and one more modern and
easy-to-use (but with larger overheads, of course).
Best,
Aleks
More information about the mpiwg-fortran
mailing list