MPI_File_read/write functions uses an integer to specify the size of
the buffer, for instance:
int MPI_File_read(MPI_File fh, void *buf, int count, MPI_Datatype
datatype, MPI_Status *status)
count Number of elements in buffer (integer).
datatype Data type of each buffer element (handle).
However, using the maximum value of 32 bytes integers:
count = 2^31-1 = 2147483647 (and datatype = MPI_BYTE)
MPI_file_read only reads 2^31-2^12 = 2147479552 bytes.
This means that 4095 bytes are ignored.
I am not aware of this specific limit for integers in (Open) MPI
function calls. Is this supposed to be correct?
MPI_File_read/write does not return an error (but MPI_Get_count states
that only 2147479552 bytes are considered). Find attached a C++ code
example which tries to write and read 2^31-1 bytes.
I am using Open MPI 1.4.2 compiled with the Intel compiler.