From: Doug Gregor (dgregor_at_[hidden])
Date: 2006-06-29 14:36:17
On Jun 29, 2006, at 10:29 AM, John Fletcher wrote:
> Does this library make any use of the work done in OOMPI
> (see http://www.osl.iu.edu/research/oompi/)
> which also provides a C++ interface for MPI?
I work in the Open Systems Lab, which is also responsible for OOMPI,
so we're well-aware of OOPMPI and there's definitely some
institutional mindshare. That said, OOMPI and the candidate Boost.MPI
take rather different approaches to presenting MPI in C++.
Architecturally, OOMPI is, well, OO: it relies on inheritance,
virtual functions, and overloading for abstraction. Boost.MPI is
build using Generic Programming, so it relies on templates, traits,
and specialization for abstraction. Boost.MPI is meant to fit in best
with the style of programming used in STL and Boost, with function
objects, integration with Boost.Serialization, etc.
I think there's also a philosophical difference between the two.
OOMPI provides some syntactic innovations (such as ports) that can
make MPI easier to use. Boost.MPI is a little more "purist",
attempting to keep the flavor of the C MPI bindings while adapting
better to modern C++. We still "send" in the same way as "MPI_Send"
in Boost.MPI. Of course, should something like ports be useful, they
could be added as syntactic sugar.