From: Douglas Gregor (dgregor_at_[hidden])
Date: 2006-09-17 15:17:08
Matthias is far more qualified than I to provide adequate responses to
your questions, but this much I can answer...
> Note that you've used packed_archive - I would use mpi_archive instead. I
> think this is a better description of what it is.
> 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
> MPI prototcol itself. That is, might it not be sometimes convenient to
> such serializations to disk? Wouldn' this provide a portable binary
> for free?
Unfortunately, the MPI packed archives do not give us a portable binary
format, because there is no published MPI protocol. The MPI packed
archivers use the MPI calls MPI_Pack and MPI_Unpack to pack a buffer. The
only guarantee they give is that if you MPI_Pack something, you can
transmit it via MPI and then MPI_Unpack it later. The protocol used varies
from one MPI implementation to another, and could conceivably vary from
one invocation to another. For instance, in a homogeneous environment,
MPI_Pack and MPI_Unpack could be implemented as a memcpy(); in a
heterogeneous environment, they might use some XDR representation. A
really smart MPI might make the decision at run-time, after determining
what kind of environment we're running in.
So we can't really separate the MPI archivers from MPI. They're really
very, very specialized.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk