Committed a reasonably large patch to the Open MPI development trunk last night so that the datatype engine does a reasonable first approximation of the “right” thing in heterogeneous environments. Right now, it deals with endian differences and the differences in representation (size and such) of C++ bool and Fortran LOGICAL. Some work still needs to be done, such as dealing with different representations of long double values. The run-time environment and PML code had already been fixed up to be endian-clean. Still have one issue to fix in the run-time layer before mixing 32 bit and 64 bit code will work properly, however. Hopefully, that will come in the not too distant future.
This work won’t be part of Open MPI 1.0.2, but it should make it into some release down the line, most likely 1.1.