[MPI3 Fortran] Argument data sizes

Jeff Squyres jsquyres at cisco.com
Thu Sep 18 11:19:24 CDT 2008


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?

>> 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 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.

-- 
Jeff Squyres
Cisco Systems




More information about the mpiwg-fortran mailing list