[MPICH] question about MPI-IO Read_all

Russell L. Carter rcarter at esturion.net
Wed Apr 25 18:33:21 CDT 2007


Hi,
I have a question about the amount of data it is possible to read
using MPI::Create_hindex with a fundamental type of MPI::BYTE, and 
MPI::File::Read_all.

Following the discussion about irregularly distributed arras beginning
on p. 78 of "Using MPI-2", I want to read my data by doing this:

double *buf = ...;
int count, bufsize = ...;
MPI::Offset offset = ...;
MPI::File f = MPI::File::Open(...);
MPI::Datatype filetype(MPI::BYTE);
filetype.Create_hindexed(count, blocks, displacements);
f.Set_view(offset, MPI::BYTE, filetype, "native", info_);
f.Read_all(buf, bufsize, MPI::BYTE);

What I a curious about is the amount of data that can
be read with Read_all.  Since bufsize is an int, then
that would seem to imply that the maximum Read_all (per node)
is 2^31.  Which in bytes, is not gigantic.

Is there some other technique I can use to increase the amount
of data I can Read_all at one time?  I have different sized
data interspersed, so I can't offset by a larger fundamental
type.  My arrays are not contiguous in the fortran calling program,
and are of int and 4 or 8 byte reals.  If I use a Create_struct
to make a filetype that I use to Set_view, doesn't this have
the same read size limitation?  Only now it is for all the
arrays in the struct.  Hopefully I am missing something.

Thanks,
Russell




More information about the mpich-discuss mailing list