
Hi Ian, On Sep 18, 2006, at 6:35 PM, Ian McCulloch wrote:
Really its only a name change - and "packed archive" is already inside an mpi namespace so its not a huge issue. BUT I'm wondering if the idea of rendering C++ data structures as MPI primitives should be more orthogonal to MPI prototcol itself. That is, might it not be sometimes convenient to save such serializations to disk? Wouldn' this provide a portable binary format for free? (Lots of people have asked for this but no one as been sufficiently interested to actually invest the required effort).
As Doug Gregor pointed out this is not possible since the format is implementation-defined, and can change from one execution to another.
This is only true for MPI-1.1. MPI-2 supports multiple data representations and adds the functions MPI_Pack_external and MPI_Unpack_external to convert to/from the "external32" format defined in section 9.5.2 of the MPI-2 standard. The intent of this is to be able to transfer data between MPI implementations. Also, as part of the file I/O interface, MPI-2 also allows user-defined representations so in principle it would be possible to make some kind of adaptor to read a different archive format via the MPI-2 file I/O. Not that MPI file I/O seems to be used much anyway...
The current library is based on MPI-1.1 only, which is reasonably stable. A future extension of the library to MPI-2 could indeed include the use of MPI-I/O to write portable binary archives. Matthias