[Mpi-forum] MPI-IO for mesh based simulations beyond 2 billion elements
Rob Latham
robl at mcs.anl.gov
Mon Feb 20 14:09:36 CST 2012
On Mon, Feb 20, 2012 at 09:26:28AM -0600, Rob Latham wrote:
> On Sun, Feb 19, 2012 at 10:51:42AM -0600, Rajeev Thakur wrote:
> > Harald,
> > If all you have is a one-dimensional array, and each process reads or writes a large contiguous chunk of it, you don't need to use Type_create_subarray or even use collective I/O. You can just have each process call MPI_File_read_at or write_at with the right offset. The subarray type is more useful if you have a multidimensional array and need to read a subsection of it that is not contiguously located in the file.
>
> Hi Rajeev: that's not entirely true any longer. On BlueGene,
> collective I/O will carry out aggregation and alignment to block
> boundaries. On Lustre, collective I/O can conjure up a workload such
> that all operations from a particular client go to one server.
>
> So, anything that allows collective I/O, even for large requests, we
> should try to encourage.
>
> 32 bit MPI_Aint on 32 bit platforms isn't perfect (I think there's
> some problem in the Fortran cases?) but it's allowed us to actually
> get work done on BlueGene.
oh, gosh, right, 64 bit MPI_Aint on a platform with 32 bit integers.
Rajeev points out that if it's a 1d array just use
MPI_File_read_at_all or MPI_File_write_at_all. The offsets in those
calls take MPI_Offset types.
==rob
--
Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA
More information about the mpi-forum
mailing list