Last modified 11 years ago Last modified on 05/05/2008 12:41:03 PM

Proposal to upgrade Boost libraries for Boost.MPI

Boost.MPI is a new library available within Boost 1.35.0 . Boost.MPI offers LSST a way to communicate complex types between Slices over MPI. It operates as a higher level library/interface on top of the underlying MPI implementation (MPICH2, OpenMPI). Boost.MPI works in a tightly coupled manner with the Boost.Serialization library. A general, serializable type can be handed to the "send" of Boost.MPI and it will work automatically with the Boost.Serialization library to package/buffer the contents into a transmittable form, all hidden from the upper level user or code. Tests that transmit simple objects, instances of base/derived classes, objects with fields that are containers like std::list, objects with fields that are boost_sharedptr's, etc., have all worked properly, transmitting these types seamlessly between MPI processes.

As the IPDP, Association, and MOPS pipelines (and possibly others) will have different types of data and information that might be shared betweened Slices, having a general interface for communicating the various types along the lines of Boost.MPI (as opposed to writing customized routines on our own) is very valuable. Without the upgrade, we will end up reproducing existing functionality in Boost.MPI and we'll be challenged to get the same level of functionality, performance, etc.

Boost 1.35.0 overview
Boost.MPI documentation: