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
subarrayfiles.c
Description: subarrayfiles.c