[MPICH] Questions about independent non-contiguous I/O

Heshan Lin hlin2 at ncsu.edu
Mon Jan 29 20:58:43 CST 2007


Hi,

Some questions about non-contiguous independent file access, which is
classified as LEVEL 2 access pattern in MPI-I/O in Chapter 3 of book "Using
MPI-2: Advanced Features of the Message-passing Interface". It looks to me
with this type of I/O, the file is (or at least is legal to be) opened with
MPI_COMM_SELF communicator, is it correct?

Then I am a little confused about the file consistency when using
non-contiguous independent write. In the same Chapter of book "Using MPI-2",
there is following discussion about the consistency.

"Now let's consider the case where all processes access a common file but
specify MPI_COMM_SELF as the communicator when they open it. (It's legal to
do so, but we don't recommend it in general.) In this case, there is only
one way to achieve consistency: the user must take steps to ensure that no
write sequence on any process is concurrent with any sequence (read or
write) on any other process. This is needed even if there are no overlapping
accesses among processes, that is, even if each process accesses separate
parts of the file."

According to the above discussion, specifically "... ensure that no write
sequence on any process is concurrent with any sequence (read or write) on
any other process", does it mean writing to a file in this I/O scheme can
not be performed in parallel? Or we can rely on the underline file system to
take care of the consistency issue? 

In some of my preliminary tests, I found non-contiguous independent write
without any application level synchronization can generate correct results
on PVFS2 but not on NFS. Does this make sense and how can we make
assumptions about which file systems can support the LEVEL 2 I/O?

I'd appreciate it if anyone can clarify this.

Thanks,
Heshan




More information about the mpich-discuss mailing list