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