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]

Reply via email to