[MPI3 Fortran] Results of San Jose Forum meeting

N.M. Maclaren nmm1 at cam.ac.uk
Thu Mar 11 10:59:25 CST 2010

On Mar 11 2010, Jeff Squyres wrote:
>> >    - Make the explicit interfaces in "use mpi" be *required* by MPI
>> >      implementations (they are optional right now).  This is now
>> >      possible because of the (void*)-like behavior that is available
>> >      in all Fortran compilers.
>> Are you SURE?  I am pretty sure that many don't, and won't do for a
>> while.
> Rolf and Craig assured me that this was so -- so I defer to you experts. 
> Keep in mind that their assurance to me was predicated that compilers may 
> have *vendor-specific* mechanisms; they may not be the standard/blessed 
> mechanism (yet).
>But if this is not true, then the whole plan is suspect.

Indeed.  I doubt very much that NAG has, and I can't find such a facility
in the several vendors' documentation I have looked at, which doesn't
mean that it's not there and undocumented.  But relying on undocumented
facilities is risky, even if they all had it.

In particular, Rolf and Craig, what are the facilities for doing that
in NAG, gfortran, Intel, Sun and Pathscale?  I can check all of those.

>> Yuck.  You're not planning on playing tricks with EQUIVALENCE, are you?
>> If not, why a sequence type?
> I don't know what EQUIVALENCE is; there was no mention of it in the 
> discussion.

That's good.  It was the only reason that I could see for putting it in.

> Rolf explained the SEQUENCE as meaning that this would guarantee that an 
> instance of the derived type in memory would be exactly the same as a 
> single INTEGER.

Others have answered that one.

> That being said, this is definitely an engineering tradeoff. As I 
> mentioned, the current OMPI prototype implementation has a Fortran 
> derived type that includes the corresponding OMPI C handle as a member 
> (which is a pointer). I was a bit unhappy to give this up, but Rolf 
> convinced me that the other benefits outweigh this.

Does it still hold true, if it doesn't do what he though that it did?

>> >        call MPI_Send(A(3:9:3, 4:8:2), any_mpi_datatype, ...)
>> Sorry, but it won't, as I keep saying, unless you are making
>> incompatible changes to MPI that will affect a very large number of
>> programs.  In particular, it will be no longer possible to pass an
>> assumed-size array or an array element.  To see this, try:
> I'll let you Fortran experts debate this... (this is out of my expertise; 
> Rolf and Craig told me it would work and I had no reason to disbelieve 
> them)

Sorry, but it won't.  Not a hope.

Nick Maclaren.

More information about the mpiwg-fortran mailing list