On Sun, 25 Apr 2010 20:38:54 -0700, Eugene Loh <eugene....@oracle.com> wrote: > Could you encode it into the tag?
This sounds dangerous. > Or, append a data type to the front of each message? This is the idea, unfortunately this still requires multiple messages for collectives (because you can't probe for a suitable buffer size, and no dynamic language will be happy with "the buffer can be anything as long as it's type is in this list and the total number of bytes is N"). This file is a pretty easy to read reference for a friendly MPI in dynamic language: http://mpi4py.googlecode.com/svn/trunk/src/MPI/pickled.pxi Note that mpi4py also exposes the low-level functionality. Numpy arrays can be sent without pickling: http://mpi4py.googlecode.com/svn/trunk/src/MPI/asbuffer.pxi Something that could be done to prevent packing in some cases is to define an MPI datatype for the send and receive types, but this will usually require an extra message because the receiver has to wire up an empty object that is ready to receive the incoming message. Jed