XDR defines all data representations in blocks of 4 bytes. That
would add a requirement that all etype sizes and displacement must be
in multiples of 4 bytes. I am hesistate to impose such a requirement.
And there are a few MPI basic datatypes that are not defined in XDR.
E.g., MPI_SHORT, MPI_COMPLEX.
Also, do MPI_INT and MPI_FLOAT map into XDR's 32 bits integer and floating
point, even if the host machine, like Cray, uses 64 bits for those two
types? Does an MPI_LONG map to XDR's integer or hyper integer?
I think in order to define "MPI_DATA_XDR" access mode, we need to borrow
something from XDR (floating points are in IEEE representation, byte orders
are in Big-Endian order), and map every MPI basic type to defined byte sizes
and orders (like typemap). We would need to deal with alignment problems
such as "is there any unused bytes for {int, char, int}?"
=Albert
--