The equivalent model for I/O is to have one datatype describing the
file layout. That datatype represents the smallest unit of access
and some number of contiguous copies of this datatype are read/written
depending on how much was requested in the read/write call.
The type matching restriction is that the "type signature"
of the data being read/written from the file must match the "type
signature" of the data layout in memory.
"etype" adds another level of mapping in the file.
I think it exists for historical reasons (because it was always
there).
If MPI uses a one-level mapping in memory for communication, do
we have good reasons for providing a two-level mapping for I/O?
One can come up with examples where a two-level mapping is useful (for
both I/O and communication), but they are not common cases.
If someone new to MPI-IO asks me why there are both etypes and
filetypes, where filetypes also define a tiling, I'm not sure
I can give a convincing answer.
Therefore, I am in favor of eliminating etypes. It will simplify the
interface.
Rajeev