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
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
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