[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