[mpich-devel] MPI_Pack/MPI_Unpack/MPI_Pack_size and large datatypes

Rob Latham robl at mcs.anl.gov
Fri Oct 18 20:15:42 CDT 2013

On Fri, Oct 18, 2013 at 04:44:32PM -0500, Pavan Balaji wrote:
> Hi Rob,
> I totally agree with adding this into MPICH.
> However, with respect to the MPI standard, can one not implement MPIX_Pack_x on top of current MPI-3 using appropriate datatype creation?

It'd have to be "next to" or "inside", but not "on top of".  The usual
trick of "just describe big type with a smaller number of CONTIGs
won't work:

MPI_Pack(const void *inbuf, int incount, MPI_Datatype datatype,
        void * outbuf, int outcount int *position);

We're ok on inputs: a normal buf, count, datatype tuple. 

How do you work around the output, though?  outcount is a count of
bytes, not a count of datatypes.  Position is a plain old pointer to


Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA

More information about the devel mailing list