[MPI3 Fortran] WG mission statement / bullets
Bill Long
longb at cray.com
Thu Sep 3 13:03:13 CDT 2009
MPI constants whose values depend on settings of default size command
options (-i8,...) can be easily handled if you have separate modules for
each size setting. This issue is more problematic if you want to try to
make a single module that works everywhere. The fact that MPI is not
intrinsically aware of the host language's data typing system is a
fundamental design feature/flaw. I don't see any alternative that is
not highly disruptive. The current proposal leans heavily toward the
conservative side; massive disruption seems off the table.
Cheers,
Bill
Supalov, Alexander wrote:
> Hi,
>
> Let's not forget about MPI datatypes. My personal favorite is MPI_2INT. 8 bytes in 32-bit mode, 16 bytes for -i8. This is just to highlight that the effect of the -i8, etc., upon MPI may spread well beyond the language interface as we normally know it.
>
> Best regards.
>
> Alexander
>
> -----Original Message-----
> From: mpi3-fortran-bounces at lists.mpi-forum.org [mailto:mpi3-fortran-bounces at lists.mpi-forum.org] On Behalf Of Bill Long
> Sent: Thursday, September 03, 2009 3:36 PM
> To: MPI-3 Fortran working group
> Subject: Re: [MPI3 Fortran] WG mission statement / bullets
>
>
>
> Iain Bason wrote:
>> On Sep 3, 2009, at 5:14 AM, N.M. Maclaren wrote:
>>
>>> I haven't seen the mission statement for the same reason as Malcolm,
>>> but would favour MPI using Fortran default integers whereever they
>>> make sense. Fortran's semantic specification of them is still useful
>>> in a way that C's isn't.
>> I believe that the idea behind using C int (or, more generally,
>> something like a MPI_DEFAULT_INT kind) was to allow people to build a
>> library that would work regardless of whether the application is
>> compiled with -i8. As it stands, the MPI Fortran library has to be
>> compiled with -i8 if the application is. If people use an explicit kind
>> for their integers, then one library can serve applications with and
>> without -i8.
>
> With the current MPI setup, we (as a vendor) supply two sets of
> module/library, compiled with 32-bit and 64-bit defaults respectively.
> The compiler figures out which to use based on what the meaning of
> "default" is based on the compile options. This is extra work to
> maintain, but it works for the user (mostly). Until some clown wants -r8
> -i4, in which case a third version is needed.
>
> The advantage of explicitly specifying a KIND for the MPI dummy
> arguments is that it encourages (forces) users to supply actual
> arguments with the correct kinds. This avoids hidden problems of
> supplying an actual argument with a value that is too large to fit into
> the 'int' that is used in the actual implementation routine.
>
> The downside is that some existing codes will start getting error
> messages about mismatched interfaces.
>
>
>> There are, of course, other possible solutions to the problem. Is there
>> one in particular that you favor? Or do you think the problem shouldn't
>> be solved?
>
>
> I think the better alternative is to make the user-called names generic,
> and have the interface specify two specific interfaces, one for 32-bit
> and one for 64-bit. Both specifics would correspond to wrapper
> routines; in the wrappers you would cast the integer arguments to
> integer(c_int) before passing them on to the underlying C MPI functions.
> Perhaps you would need 3 specifics if you want to cover the dreaded
> -r8/-i4 case as well.
>
> The advantage of the generic version is that the vendor need only supply
> one MPI module and one library. This simplifies the implementation and
> also avoids errors such as the user forgetting to include the -i8 on the
> link command to trigger getting the 'right' library.
>
> Cheers,
> Bill
>
>
>
>> Iain
>>
>> _______________________________________________
>> mpi3-fortran mailing list
>> mpi3-fortran at lists.mpi-forum.org
>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-fortran
>
--
Bill Long longb at cray.com
Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120
More information about the mpiwg-fortran
mailing list