Question

What is the purpose of using the Boost.MPI library? Does it increase performance? And what is the difference between it and the MPICH library?

Was it helpful?

Solution

Boost.MPI 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, arbitrary function objects for collective algorithms, and the use of modern C++ library techniques.

It intends

to maintain maximal efficiency

but not to actually improve the performance of MPI; it can't, because it's still tied to existing MPI implementations (though it may implement some high-level patterns in a more efficient way than you would write them, depending on how much of an MPI expert you are). It's mainly more convenient than the regular C API.

OTHER TIPS

It is basically a "modern" c++ interface to the same old C API that is implemented in, say MPICH. Since it is using the same functions it cannot lead to any performance improvement but might help with the actual implementation by making it easier.

The C++ bindings in MPI deprecated since version 2.2: http://www.mpi-forum.org/docs/mpi22-report/node328.htm

Boost.MPI based on C MPI API, so it is good decision for those who want C++ API: https://github.com/mpi-forum/mpi-forum-historic/issues/150

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top