[MPI3 Fortran] Argument data sizes

Bill Long longb at cray.com
Thu Sep 18 11:54:15 CDT 2008



Jeff Squyres wrote:
> On Sep 18, 2008, at 12:06 PM, Bill Long wrote:
>
>>> I don't follow Cray hardware -- do you actually have machines that 
>>> have more than 32GB per core?  If my math is right, 4^32 * 8 = 32GB 
>>> would be the actual size of a 4B element array of doubles.
>>
>> Yes, but you don't really need that.  It is not uncommon to use 
>> OpenMP within a local SMP domain and use MPI between such domains.  
>> Local SMP domains of more than 32GB are not hard to find.  Only 16GB 
>> is needed for an array with 4-byte elements.  PC's have that much 
>> memory these days.  If the intention is to make a standard relevant 
>> going forward, the target should be clear.
>
> Did you read the rest of my mail?

Yes.


>
>>> Remember three key facts:
>>>
>>> - MPI's model is effectively distributed memory
>>> - MPI's counts are *elements*, not *bytes*
>>> - MPI datatypes are composable
>>>
>>> Most MPI apps that I have seen with huge arrays like this are 
>>> actually representing multiple dimensions -- so they usually make a 
>>> datatype for one row and use that as a unit to compose larger 
>>> datatypes (e.g., a plane, a 3D space, ...etc.).  So most apps send 
>>> "1 array" (or "N rows" or ...), not 2B (or 4B or ...) individual 
>>> elements.

This might occur to a C programmer, in that C does not really have 
arrays.  However, such contortions would be very unnatural for a Fortran 
programmer, and would only be considered if there were some artificial 
constraint on buffer sizes.

>>>
>>> This is at least part of the discussion in the Forum about this 
>>> issue (I mentioned this in a prior mail as well): since MPI 
>>> datatypes are composable, applications can easily smash the 2B int 
>>> count limitation anyway.  As Alexander S. noted, however, there are 
>>> other issues as well.

I'm not sure about "easily".  Certainly very unnaturally.  MPI is hard 
to use in the first place. Asking programmers to play these sorts of 
games makes it even worse.

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