Hi Mikael, Loris,
I concur with your user. Boost.MPI is miles ahead of anything MPI you
can do in C++. It is very handy, but not many software packages are
actually written in C++.
I know of RepastHPC, a package written for agent based modeling, which
uses it (https://repast.github.io/repast_hpc.html)
I have used and taught it myself many times. You can literally send
multidimentional complex STL containers of any type in a single line of
code.
It is a must for anyone doing MPI in C++.
That being said, at Compute Canada, we take a different approach from
the one proposed in Mikael's PR and simply build multiple complete
boost, one with, one without MPI, and they get named differently (boost
and boost-mpi). They both include all of the boost libraries (Except
that the MPI version also includes Boost.MPI, of course).
https://github.com/ComputeCanada/easybuild-easyconfigs/blob/computecanada-main/easybuild/easyconfigs/b/Boost/Boost-1.72.0-GCC-9.3.0.eb
https://github.com/ComputeCanada/easybuild-easyconfigs/blob/computecanada-main/easybuild/easyconfigs/b/Boost/Boost-1.72.0-gompi-2020a.eb
I am not sure how useful those recipes will be to you without our hooks
which rename the module and adds a version suffix depending on whether
it is built with a MPI or non-MPI toolchain:
https://github.com/ComputeCanada/easybuild-computecanada-config/blob/main/cc_hooks_gentoo.py#L735
Cheers,
Maxime
Le 2022-06-08 à 07:06, Loris Bennett a écrit :
Hi Mikael,
Thanks for the info.
The user says that Boost.MPI makes it much easier for him to pack and
unpack complex data types into those supported by MPI. I am not
questioning his experience, but if it is so useful, why do other
programs not seem to use it? Do they use something else instead?
Cheers,
Loris
Mikael Öhman <[email protected]> writes:
In order to move all the common boost libraries (like boost_filesystem) up to
GCCcore we want to split that apart.
But i think it was some uncertainty on how to handle Boost.MPI it kind of got
stuck.
https://github.com/easybuilders/easybuild-easyconfigs/pull/11695
I don't think I ever found any application that used it, so, it wasn't strongly
motivated to be rushed in and we have nothing to test the setup on.
Best regards, Mikael
On Wed, Jun 8, 2022 at 9:15 AM Loris Bennett <[email protected]> wrote:
Hi,
One of my users wants to use Boost to add MPI parallelisation to his
program. However, I notice that the ECs for Boost disable MPI:
...
configopts = '--without-libraries=python,mpi'
# disable MPI, build Boost libraries with tagged layout
boost_mpi = False
...
What is the reason for disabling MPI?
Cheers,
Loris
--
Dr. Loris Bennett (Herr/Mr)
ZEDAT, Freie Universität Berlin Email [email protected]