Boost
License information
Information on the Boost licence is available on their web page.
Precise text of the Boost Software License Version 1.0
From LUMI/23.12 on, the LICENSE_1_0.txt
file can also be found in the
$EBROOTBOOST/share/licenses/Boost
subdirectory after loading the module.
Pre-installed modules (and EasyConfigs)
To access module help and find out for which stacks and partitions the module is
installed, use module spider Boost/<version>
.
EasyConfig:
-
Boost/1.79.0-cpeAMD-22.08-python3 (EasyConfig: Boost-1.79.0-cpeAMD-22.08-python3.eb)
-
Boost/1.79.0-cpeAMD-22.08 (EasyConfig: Boost-1.79.0-cpeAMD-22.08.eb)
-
Boost/1.79.0-cpeAOCC-22.08-python3 (EasyConfig: Boost-1.79.0-cpeAOCC-22.08-python3.eb)
-
Boost/1.79.0-cpeAOCC-22.08 (EasyConfig: Boost-1.79.0-cpeAOCC-22.08.eb)
-
Boost/1.79.0-cpeCray-22.08-python3 (EasyConfig: Boost-1.79.0-cpeCray-22.08-python3.eb)
-
Boost/1.79.0-cpeCray-22.08 (EasyConfig: Boost-1.79.0-cpeCray-22.08.eb)
-
Boost/1.79.0-cpeGNU-22.08-python3 (EasyConfig: Boost-1.79.0-cpeGNU-22.08-python3.eb)
-
Boost/1.79.0-cpeGNU-22.08 (EasyConfig: Boost-1.79.0-cpeGNU-22.08.eb)
-
Boost/1.81.0-cpeAMD-22.12 (EasyConfig: Boost-1.81.0-cpeAMD-22.12.eb)
-
Boost/1.81.0-cpeAOCC-22.12 (EasyConfig: Boost-1.81.0-cpeAOCC-22.12.eb)
-
Boost/1.81.0-cpeCray-22.12 (EasyConfig: Boost-1.81.0-cpeCray-22.12.eb)
-
Boost/1.81.0-cpeCray-23.03 (EasyConfig: Boost-1.81.0-cpeCray-23.03.eb)
-
Boost/1.81.0-cpeGNU-22.12 (EasyConfig: Boost-1.81.0-cpeGNU-22.12.eb)
-
Boost/1.82.0-cpeAMD-23.09 (EasyConfig: Boost-1.82.0-cpeAMD-23.09.eb)
-
Boost/1.82.0-cpeAMD-23.12 (EasyConfig: Boost-1.82.0-cpeAMD-23.12.eb)
-
Boost/1.82.0-cpeAOCC-23.09 (EasyConfig: Boost-1.82.0-cpeAOCC-23.09.eb)
-
Boost/1.82.0-cpeAOCC-23.12 (EasyConfig: Boost-1.82.0-cpeAOCC-23.12.eb)
-
Boost/1.82.0-cpeCray-23.09 (EasyConfig: Boost-1.82.0-cpeCray-23.09.eb)
-
Boost/1.82.0-cpeCray-23.12 (EasyConfig: Boost-1.82.0-cpeCray-23.12.eb)
-
Boost/1.82.0-cpeGNU-23.09 (EasyConfig: Boost-1.82.0-cpeGNU-23.09.eb)
-
Boost/1.82.0-cpeGNU-23.12 (EasyConfig: Boost-1.82.0-cpeGNU-23.12.eb)
-
Boost/1.83.0-cpeAMD-24.03 (EasyConfig: Boost-1.83.0-cpeAMD-24.03.eb)
-
Boost/1.83.0-cpeAOCC-24.03 (EasyConfig: Boost-1.83.0-cpeAOCC-24.03.eb)
-
Boost/1.83.0-cpeCray-24.03 (EasyConfig: Boost-1.83.0-cpeCray-24.03.eb)
-
Boost/1.83.0-cpeGNU-24.03 (EasyConfig: Boost-1.83.0-cpeGNU-24.03.eb)
Technical documentation
EasyBuild
Note that the CSCS repository contains a custom EasyBlock for Boost as the MPI build procedure of the regular one does not work. However, it seems to be based on a very old version of the Boost EasyBlock.
HPE-Cray has a sample build script for Boost in their pe-scripts repository.
Version 1.77.0 for CPE 21.08
-
The EasyConfig is derived from the standard EasyBuild one with some additional help information added to it taken from the UAntwerpen EasyConfig.
It does require additional parameters to specify the toolsets for bootstrapping and building as they are not always correctly recognized.
Id does need some corrections to the EasyBlock to correctly support MPI
-
Our custom EasyBlock
EB_BoostCPE
is needed to enable MPI builds.-
Added code for correctly generating the
user-config.jam
file. -
Added an additional parameter
bjam_features
that allows to add additional features to the b2/bjam command line. It could be used when using old style Cray compilers though it seems that the options that the HPE-Cray build script adds are actually not all valid on recent versions of Boost.
-
-
cpeGNu: Seems to work with the CSCS EasyBlock. It is not clear if any of the Cray patches make sense in this case.
-
cpeCray: Work based on the
boost.sh
script from the pe-scripts repository.-
Patch
boost-context-cray.path
: Adds thecray
toolset tolibs/context/build/JAmfile.v2
. This patch doesn't seem to be needed anymore as it is for the toolsetcray
which is not used for the clang-based CCE compiler. -
Patch
boost-cray-default-feature-fix.patch
basically undoes some settings thattools/build/src/tools/cray.jam
makes specifically for Cray. This patch doesn't seem to be needed anymore as it is for the toolsetcray
which is not used for the clang-based CCE compiler. -
Then the Cray script does a lot of editing in
boost/config/compiler/cray.hpp
that they claim is needed for CCE 8.6 and up. This is still used in our configuration for the Cray compiler. -
The edits in the Cray script in tools/build/src/tools are not needed for version 1.77.0. The errors that those edits deal with have already been corrected (as of commit 3385fe2aa699a45e722a1013658f824b6a7c761f.)
-
-
cpeAMD: Compiles if
toolset == clang
is added to the EasyConfig. It is not clear if any of the Cray patches actually make sense. -
For 21.12, which switched to Python 3.9.4, the version detection is wrong so the sanity check goes looking for the files for Python 3.8 rather than 3.9.
Version 1.79.0 for LUMI/22.06
- Trivial port of the EasyConfigs.
1.81.0 from CPE 22.12 on
-
Trivial port of the EasyConfigs for the regular version.
-
We no longer have the -python3 versions of the modules. Instead a separate Boost.python module will be developed that installs the Python 3 interfaces on top of the regular Boost module. Unless the EasyBuilders repository though we do not distinguish between Boost and Boost.mpi, the latter still a full library but with MPI support, as we don't have those levels of hierarchy in our toolchains.
1.82.0 from CPE 23.09 on
-
Trivial port of the EasyConfigs for the regular version of 1.81.0 to follow the EasyBuild common toolchains version 2023a.
-
Except for cpe Cray 23.09 where some linking errors were generated. The solution turned out to be a special Clang feature to inject options late in the process: Before building, set
which for building Boost we do via
prebuildopts
in the EasyConfig.It might be that similar linking errors (about not finding libunwind) are generated when using Boost with this version of the compiler and the same workaround may be needed in that case!
1.83.0 for LUMI/24.03
- Trivial port of the EasyConfig for version 1.82.0 in LUMI/23.12.
Archived EasyConfigs
The EasyConfigs below are additonal easyconfigs that are not directly available on the system for installation. Users are advised to use the newer ones and these archived ones are unsupported. They are still provided as a source of information should you need this, e.g., to understand the configuration that was used for earlier work on the system.
-
Archived EasyConfigs from LUMI-SoftwareStack - previously centrally installed software
-
EasyConfig Boost-1.77.0-cpeAOCC-21.12-python3.eb, with module Boost/1.77.0-cpeAOCC-21.12-python3
-
EasyConfig Boost-1.77.0-cpeAOCC-21.12.eb, with module Boost/1.77.0-cpeAOCC-21.12
-
EasyConfig Boost-1.77.0-cpeCray-21.08-python3.eb, with module Boost/1.77.0-cpeCray-21.08-python3
-
EasyConfig Boost-1.77.0-cpeCray-21.08.eb, with module Boost/1.77.0-cpeCray-21.08
-
EasyConfig Boost-1.77.0-cpeCray-21.12-python3.eb, with module Boost/1.77.0-cpeCray-21.12-python3
-
EasyConfig Boost-1.77.0-cpeCray-21.12.eb, with module Boost/1.77.0-cpeCray-21.12
-
EasyConfig Boost-1.77.0-cpeGNU-21.08-python3.eb, with module Boost/1.77.0-cpeGNU-21.08-python3
-
EasyConfig Boost-1.77.0-cpeGNU-21.08.eb, with module Boost/1.77.0-cpeGNU-21.08
-
EasyConfig Boost-1.77.0-cpeGNU-21.12-python3.eb, with module Boost/1.77.0-cpeGNU-21.12-python3
-
EasyConfig Boost-1.77.0-cpeGNU-21.12.eb, with module Boost/1.77.0-cpeGNU-21.12
-
EasyConfig Boost-1.79.0-cpeAOCC-22.06-python3.eb, with module Boost/1.79.0-cpeAOCC-22.06-python3
-
EasyConfig Boost-1.79.0-cpeAOCC-22.06.eb, with module Boost/1.79.0-cpeAOCC-22.06
-
EasyConfig Boost-1.79.0-cpeCray-22.06-python3.eb, with module Boost/1.79.0-cpeCray-22.06-python3
-
EasyConfig Boost-1.79.0-cpeCray-22.06.eb, with module Boost/1.79.0-cpeCray-22.06
-
EasyConfig Boost-1.79.0-cpeGNU-22.06-python3.eb, with module Boost/1.79.0-cpeGNU-22.06-python3
-
EasyConfig Boost-1.79.0-cpeGNU-22.06.eb, with module Boost/1.79.0-cpeGNU-22.06
-
-
Archived EasyConfigs from LUMI-EasyBuild-contrib - previously user-installable software