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.
**** Kenneth Moreland
*** Sandia National Laboratories
*** *** *** email: kmorel_at_[hidden]
** *** ** phone: (505) 844-8919
*** fax: (505) 845-0833