[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