[Mpi-21] [MPI3 Fortran] MPI-2.1: Fortran 90 bindings
Richard Graham
rlgraham at [hidden]
Thu Mar 6 08:40:23 CST 2008
MPI 2.1 is no changes - only changes to the docs.
MPI 2.2 are small changes...
Rich
On 3/6/08 8:36 AM, "Jeff Squyres" <jsquyres_at_[hidden]> wrote:
> Yes, this is the direction we are going for new Fortran bindings in
> MPI-3.
>
> My proposal is specifically for a small/incremental fix for MPI-2.1's
> existing MPI F90 bindings. The rule for MPI-2.1 is that changes
> cannot break existing MPI codes. As such, only "small" things are
> going into MPI-2.1.
>
>
>
> On Mar 6, 2008, at 8:25 AM, Lionel, Steve wrote:
>
>> I would recommend that for buffers of variable type and rank that the
>> Fortran interface make use of the Fortran 2003 C interoperability
>> features, supported by many compilers already, and make these
>> arguments
>> of type C_PTR passed by value. The programmer would then pass
>> C_LOC(buffer), where buffer can be of any type and rank. This is all
>> specifiable with standard-conforming syntax.
>>
>> If this is done, you don't need to have multiple interfaces just to
>> change type, and you're not giving up any type checking that you would
>> have had before, as any combination of type and rank would have
>> matched
>> some interface. Now you can have as many of these "variant"
>> arguments as
>> you like without a mind-numbing series of specific interfaces.
>>
>> A compiler using this choice must support the following Fortran 2003
>> features:
>> - Intrinsic module ISO_C_BINDING
>> - The VALUE attribute
>> - The BIND(C) attribute
>>
>> And if the user chooses a compiler that does not support this, then
>> they
>> can use the F77 interfaces.
>>
>> Steve Lionel
>> Developer Products Division
>> Intel Corporation
>> Nashua, NH
>>
>>
>>
>> -----Original Message-----
>> From: mpi3-fortran-bounces_at_[hidden]
>> [mailto:mpi3-fortran-bounces_at_[hidden]] On Behalf Of Jeff
>> Squyres
>> Sent: Wednesday, March 05, 2008 9:16 PM
>> To: Mailing list for discussion of MPI 2.1
>> Cc: MPI-3 Fortran working group
>> Subject: [MPI3 Fortran] MPI-2.1: Fortran 90 bindings
>> Importance: Low
>>
>> The current MPI-2 F90 bindings are un-implementable because they
>> require almost 7 *million* interface functions: with 15 intrinsic
>> Fortran types, each with 7 possible dimensions, the current F90
>> interface *requires*:
>>
>> - 50 MPI functions with one choice buffer: 15 * 7 * 50 = 5,250
>> functions
>> - 25 MPI functions with two choice buffers: (15 * 7 * 25)^2 = 6.8M
>> functions
>> - ...and a few hundred more MPI functions with no choice buffers
>>
>> This is clearly broken.
>>
>> An MPI-2.1-worthy solution could be to add a global statement saying
>> that MPI functions with two choice buffers are explicitly not included
>> in the F90 bindings. F90 MPI applications can transparently fall back
>> to the F77 bindings (although they won't get the strong type checking,
>> etc.). This idea therefore fits the requirement of not breaking any
>> existing MPI codes.
>>
>> Specifically: if we remove the requirement to provide all MPI
>> functions with two choice buffers, 5,000+ F90 interface functions is
>> [a pain but] implementable. I doubt that any current MPI
>> implementation provides more than the no-choice-buffers plus one-
>> choice-buffer functions anyway...
>>
>> If this seems like a good idea, I can write a proper proposal for it.
>> Comments?
>>
>> --
>> Jeff Squyres
>> Cisco Systems
>>
>> _______________________________________________
>> mpi3-fortran mailing list
>> mpi3-fortran_at_[hidden]
>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-fortran
>>
>> _______________________________________________
>> mpi3-fortran mailing list
>> mpi3-fortran_at_[hidden]
>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-fortran
>
More information about the Mpi-21
mailing list