[mpich-discuss] Question on MPI_Pack/Unpack
Antonio J. Peña
apenya at mcs.anl.gov
Thu Jul 18 10:16:04 CDT 2013
Hi Matthieu,
These functions only copy all the data of the datatype into a contiguous
memory region. They don't do any further action. I'd say these are a more
natural and efficient solution for your problem than the self send-receive
approach. Note that the send is internally performing the pack before
sending, so you'd effectively do the same but avoiding the send/receive
step.
Antonio
On Thursday, July 18, 2013 04:35:28 PM Matthieu Dorier wrote:
Hi,
I'd like some clarification on MPI_Pack/Unpack: the standard only says that
"some communication libraries provide pack/unpack functions for sending
non-contiguous data", but it's not clear to me what MPI_Pack/Unpack are
supposed to do. For example, if I have a MPI_Datatype representing a
structure with holes between fields, is MPI_Pack just supposed to put the
elements of the structure close to each other so that there is no more
holes, or can it do something different (compressing, adding metadata,
etc.)?
The reason I'm asking this is because I'm designing a code to extract
chunks of multi-dimentional arrays (basically a big array has ghost zones
and I want to extract the non-ghost data from this big array into a smaller
array, contiguous in memory). This extraction is local and does not involve
communication so right now after using MPI_Type_create_subarray to
create a datatype adapted to my need, I post an MPI_Irecv with a
contiguous array of MPI_CHAR as type, and then an MPI_Send with one
element of the type I just created. I was wondering if MPI_Pack would be
equivalent (and maybe more efficient)?
Thanks
Matthieu Dorier
PhD student at ENS Cachan Brittany and IRISA
http://people.irisa.fr/Matthieu.Dorier[1]
--------
[1] http://people.irisa.fr/Matthieu.Dorier
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20130718/c12065e4/attachment.html>
More information about the discuss
mailing list