
I am requesting a formal review for a Boost library that provides modern C++ bindings for the Message Passing Interface (MPI). The Message Passing Interface (MPI) is a standard interface for message passing in high-performance parallel applications. It defines a library interface, available from C, Fortran, and C++, for which there are many MPI implementations. Although there exist C++ bindings for MPI, they offer little functionality over the C bindings. The Boost.MPI library provides an alternative C++ interface to MPI that better supports modern C++ development styles, including complete support for user-defined data types and C++ Standard Library types and using arbitrary function objects for collective algorithms. Boost.MPI is built for efficiency, avoiding unnecessary overhead and translating high-level operations into the most specialized MPI call possible. Boost.MPI currently covers the majority of the MPI 1.1specification, including blocking and non-blocking point-to-point communication, collective operations, communicators, MPI datatypes, and environment management. The library documentation is available in HTML and PDF: http://www.osl.iu.edu/~dgregor/boost.mpi/libs/parallel/doc/html/ http://www.osl.iu.edu/~dgregor/boost.mpi/libs/parallel/doc/mpi.pdf You can browse the library source code here: http://www.osl.iu.edu/~dgregor/boost.mpi/ Or download the source code and documentation as a tarball here: http://www.osl.iu.edu/~dgregor/boost.mpi/boost-mpi-20060628.tgz The library is also available in the Boost Sandbox, in the subdirectories boost/parallel and libs/parallel. Note that you will need the latest Boost from CVS HEAD. Cheers, Doug Gregor