Brian,

You can think of Boost.MPI as a very well-designed wrapper. All it does is to call the underlying C (OpenMPI, MPICH, others) implementation when the types are covered by the MPI standard.

On other hand, i agree with you, maybe would be possible to specialize a template for std::vector<T> that handles it as a raw buffer. Someone has an opinion about this?

When i have time, i'll think carefully to see if i can contribute a patch.

Regards,
Júlio.

2012/9/6 Brian Budge <brian.budge@gmail.com>
Okay.  I can do that.  I was just wondering if there was a trick to
make it happen under the hood.  I'm curious as to why Bcast doesn't
get called by boost::mpi::broadcast for non-trivial types.

Thanks,
  Brian

On Wed, Sep 5, 2012 at 7:00 PM, Júlio Hoffimann
<julio.hoffimann@gmail.com> wrote:
> Hi Brian,
>
> If i understood correctly, you're actually doing something like:
>
> std::vector<char> gigaVec;
> MPI_Bcast(blah, blah, ..., &gigaVec[0])
>
>
> and want to replace that by boost::mpi::broadcast, is that correct?
>
> Just do it the same way, if the type of the container is a MPI type, you're
> guaranteed that the underlying MPI implementation will be called.
>
> Regards,
> Júlio.
>
> _______________________________________________
> Boost-users mailing list
> Boost-users@lists.boost.org
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users