[MPI3 Fortran] What if Fortran is the primary interface?

Supalov, Alexander alexander.supalov at intel.com
Mon Mar 17 15:39:11 CDT 2008


Careful: quite a few implementations use INTEGER to represent a handle
as a bit mask, rather than a pointer.

Best regards.


-----Original Message-----
From: mpi3-fortran-bounces at lists.mpi-forum.org
[mailto:mpi3-fortran-bounces at lists.mpi-forum.org] On Behalf Of
Aleksandar Donev
Sent: Monday, March 17, 2008 9:04 PM
To: MPI-3 Fortran working group
Subject: Re: [MPI3 Fortran] What if Fortran is the primary interface?

On Monday 17 March 2008 11:54, Hubert Ritzdorf wrote:

> I have an additional question. Is this really guaranteed by the
> Fortran 2003 standard that
> type(MPI_COMM), bind(C), protected :: MPI_COMM_WORLD
> err = MPI_Recv (..., ..., MPI_COMM_WORLD, ...)
> in the same C Pointer such as the MPI_Comm MPI_COMM_WORLD ?
No, it is not.

> My feeling is that it points to a structure containing the C pointer
Exactly. One can put the VALUE attribute on the communicator dummy
which means that the communicator will be passed in whatever way structs
passed by value (presumably put on the stack). Whether that is the same
passing the actual pointer (without the enclosing struct) depends on the
I believe.

On Monday 17 March 2008 12:53, Jeff Squyres wrote:
> FWIW, I don't think the 2-level indirection is necessary. 
Depends on the details of the MPI implementation, and the ABI for

> I think   
> that Craig was trying to unify everything, but I would agree with  
> Hubert: it would be better if MPI_COMM directly referred to whatever  
> the Right stuff is in C.
What is the *set of Right things* accross implementations. Is a plain C 
pointer (void*) always good enough---then just make the argument
and pass a pointer instead of a struct containing a pointer. Do some 
implementations use non-pointers, say a simple integer, for that

Craig's scheme has two advantages:
1) Uniform interface to MPI accross implementations---put inside the
whatever you need (pointers, integers, etc.).
2) Strong type-checking
BUT, it has the disadvantage that I don't think it is possible to avoid
wrapper level of indirection to massage the arguments. Personally, I
see that as a design goal: MPI internally surely will call dozens of
until the actual work gets done?

mpi3-fortran mailing list
mpi3-fortran at lists.mpi-forum.org
Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen Germany
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Douglas Lusk, Peter Gleissner, Hannes Schwaderer
Registergericht: Muenchen HRB 47456 Ust.-IdNr.
VAT Registration No.: DE129385895
Citibank Frankfurt (BLZ 502 109 00) 600119052

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

More information about the mpiwg-fortran mailing list