[mpich-discuss] logical to physical in collective I/O

Rob Latham robl at mcs.anl.gov
Mon Sep 15 13:56:23 CDT 2014



On 09/15/2014 01:11 PM, Jaln wrote:
>
> Hi,
> In MPI-IO, when doing collective I/O,
> how does each process translate the logical access information into the
> byte offset list?
> Which file does this work?

There are a couple parts here
- the MPI datatype describing the memory layout or the file view
- the actual I/O

ROMIO will flatten the datatype into offset-list pairs.  So for a simple 
example MPI_TYPE_CONTIGUOUS(100, MPI_BYTE, &contig) will get flattened 
into (0, 100)

this happens in ADIOI_Flatten_datatype:

http://git.mpich.org/mpich.git/blob/HEAD:/src/mpi/romio/adio/common/flatten.c

The collective I/O routines will exchange these offset-length lists to 
bulid up an I/O schedule.  That happens in a bunch of functions, but one 
example is in ADIOI_GEN_WriteStrided:

http://git.mpich.org/mpich.git/blob/HEAD:/src/mpi/romio/adio/common/ad_write_coll.c

==rob

-- 
Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA



More information about the discuss mailing list