Re: [MPI3 Fortran] Results of San Jose Forum meeting
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. Regards, Nick Maclaren.
participants (1)
-
N.M. Maclaren