I've run into a problem with the File I/O with openmpi version 1.2.3.
It is not possible to call MPI_File_set_view with a datatype created
from a subarray.  Instead of letting me set a view of this type, it
gives an invalid datatype error.  I have attached a simple program that
demonstrates the problem.  In particular, the following sequence of
function calls should be supported, but they are not.

  MPI_Type_create_subarray(3, sizes, subsizes, starts,
                           MPI_ORDER_FORTRAN, MPI_BYTE, &view);
  MPI_File_set_view(fd, 20, MPI_BYTE, view, "native", MPI_INFO_NULL);

After poking around in the source code a bit, I discovered that the I/O
implementation actually supports the subarray data type, but there is a
check that is issuing an error before the underlying I/O layer (ROMIO)
has a chance to handle the request.

I found that I can get around this problem by setting the MCA parameter
mpi_param_check to 0, although I do not know what consequence this will
have on other function calls.  It's also a problem for deployment as I
don't think I have a way to set the parameter inside my application, and
thus have to rely on users setting the MCA parameters themselves.

-Ken

   ****      Kenneth Moreland
    ***      Sandia National Laboratories
***********  
*** *** ***  email: kmo...@sandia.gov
**  ***  **  phone: (505) 844-8919
    ***      fax:   (505) 845-0833

Attachment: subarrayfiles.c
Description: subarrayfiles.c

Reply via email to