[MPI3 Fortran] Argument data sizes
Bill Long
longb at cray.com
Thu Sep 18 10:15:09 CDT 2008
Jeff Squyres wrote:
> On Sep 18, 2008, at 9:36 AM, Iain Bason wrote:
>
>>> So it isn't that we need the count to be able to convey a huge
>>> number, it's that the absence of an interface that accepts an 8 byte
>>> count makes it more difficult to write portable programs.
>
> Yes, I understand that, but if MPI itself doesn't accept counts (and
> other parameter values) larger than what can be represented by a C
> int, what does allowing an INTEGER*8 in the MPI Fortran interface mean?
But essentially all modern processors use 64-bit addressing. If a C int
is 32 bits, then this restriction is a basic design flaw in MPI that
needs to be fixed. Either that or a C int needs to be 64 bits. (The
earlier discussion about default64 switches originated with legacy
supercomputers where, indeed, the default integer in Fortran AND C int
were 64 bits, so there was no internal inconsistency.) Getting MPI to
force a change on the C standard is probably out of scope. However,
fixing the MPI spec to mandate that count arguments be of type int64_t,
or perhaps better, intptr_t, is quite reasonable, and recognizes modern
reality.
Besides, I thought one of the earlier postings claimed that the MPI spec
was language independent. In that case, discussion of C int is out of
order. A language independent spec would refer to an integer type
capable of representing any system address.
>
> If it means that all MPI implementations now have to accept 8-byte
> counts (etc.), there might be some resistance from the rest of the
> Forum because it is a potentially large implementation change
> (internal data structures have to change, wire protocols have to
> change, which can lead to backwards compatibility issues, etc.).
>
A language or library standard that is incapable of adapting to changing
hardware realities eventually becomes irrelevant. The major languages
are morphing into natively parallel languages (Fortran 2008, C++ 20xx,
and UPC), so maybe the intention is that MPI is going into
maintenance/retirement/legacy/phase-out mode. If that's the case, it
should be stated up front. And it does not seem all that important to
spend time on new interfaces.
Cheers,
Bill
--
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