[MPI3 Fortran] Summary of items on the table
Craig Rasmussen
crasmussen at lanl.gov
Tue May 13 17:53:45 CDT 2008
Requirements:
1. Poorly defined interfaces now
2. type safety
3. no wrappers
On Apr 28, 2008, at 1:12 PM, Craig Rasmussen wrote:
> There has been quite a lot of traffic in the past couple of months
> regarding possible directions for a new MPI binding for Fortran. I
> thought now would be a good time to summarize and try to get a
> consensus on what direction we should pursue. Some choices will
> require changes to the Fortran standard and this input we need to get
> to the Fortran standards committee within the next two weeks.
>
> The major choice we need to make is how to declare an MPI "choice
> buffer" (void *) in a Fortran interface. I'll list the options below
> with advantages and disadvantages as I see them. Please rank these
> options (they all will use F2003 BIND(C)).
>
> 1. Map void* to C_PTR. Upside: this will work now in most compilers
> and likely all soon. Downside: users must change the call site to
> use C_LOC to obtain the C address; C_LOC requires the POINTER or
> TARGET attribute and may reduce performance and require additional
> code changes.
worried about performance and C_LOC for actual argument, users might
revolt because of changes in code and performance
>
> 2. Map void* to a new Fortran type C_VOID. Upside: no changes to
> current code (I think). Downside: would require a change in the
> Fortran standard and couldn't be done until Fortran 20xx (a long time
> before we see it in compilers).
>
OK.
> 3. Map void* to type(C_VOID) defined in the ISO_C_BINDING intrinsic
> module and add LANG=C to the Fortran standard. Upside: no changes to
> current code other than to USE the MPI3 module. Downside: it will
> require changes to the Fortran standard but can get to users
> relatively soon (before F2008 appears in compilers).
>
OK
> 4. Add an IGNORE attribute with parameters T (type) K (kind) R (rank)
> for BIND(C) interfaces. This pretty much (as I understand it) does
> the same thing as #3, just with different syntax and with slightly
> more flexibility (partial type checking). Upside: see #3. Downside:
> see #3.
>
OK, although to declare a type and then ignore it seems ackward.
> Aleks has submitted a proposal to the Fortran J3 committee to improve
> on the ASYNCHRONOUS attribute. Hopefully this can make it into the
> F2008 standard and fix problems associated with copyin/copyout
> semantics and with code motion associated with asynchronous MPI
> calls. A question I have is there a problem with copyin/copyout for
> synchronous MPI?
>
> I'm currently at the April MPI Forum where I'll collect votes.
> Others please add your feedback (rank the options) in email (actually
> it would be helpful for the record to get email from everyone within
> shouting distance).
>
> A question just came up about passing CHARACTER parameters. Comments?
>
> Regards,
> Craig
>
> _______________________________________________
> mpi3-fortran mailing list
> mpi3-fortran at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-fortran
More information about the mpiwg-fortran
mailing list