PLUMED
License information
PLUMED is distributed under the GNU Lesser General Public License version 3.0 a copy of which can be found in the COPYING.LESSER file in the source repository.
Users are asked to acknowledge PLUMED in their work and cite the relevant publications, see the "How to cite PLUMED" page on the PLUMED web site.
User documentation
Note: Recent versions of PLUMED need to be build on the compute nodes if you want
to optimise for them (and hence use partition/C
or partition/G
).
After the March-April 2023 system update the EasyConfigs of PLUMED were replaced with two versions due to build problems on the updated system.
-
-cray-python-3.9.12.1
versions include Python support as before, with thecray-python
module now loaded explicitly as a dependency.These EasyConfigs in particular are currently workarounds as we are not sure about the root cause of the problem yet and suspect the configure process may still be picking up unintended versions of packages.
-
-noPython
versions have Python support disabled.
User-installable modules (and EasyConfigs)
Install with the EasyBuild-user module:
To access module help after installation and get reminded for which stacks and partitions the module is installed, usemodule spider PLUMED/<version>
.
EasyConfig:
-
EasyConfig PLUMED-2.8.3-cpeGNU-23.09-noPython.eb, will build PLUMED/2.8.3-cpeGNU-23.09-noPython
-
EasyConfig PLUMED-2.9.0-cpeGNU-23.09-noPython.eb, will build PLUMED/2.9.0-cpeGNU-23.09-noPython
-
EasyConfig PLUMED-2.9.2-cpeAMD-24.03-noPython.eb, will build PLUMED/2.9.2-cpeAMD-24.03-noPython
-
EasyConfig PLUMED-2.9.2-cpeCray-24.03-noPython.eb, will build PLUMED/2.9.2-cpeCray-24.03-noPython
-
PLUMED with the Python plugin. Only in cpeGNU as Cray Python is compiled with the GNU compilers and not compatible with libraries compiled with other compilers that use or link to libraries with OpenMP support.
-
EasyConfig PLUMED-2.9.2-cpeGNU-24.03-noPython.eb, will build PLUMED/2.9.2-cpeGNU-24.03-noPython
Technical documentation
Note that the choice of PLUMED version depends a lot on the software that it will be used with. E.g., every GROMACS version requires a very specific version of PLUMED.
EasyBuild
Version 2.6.4 and 2.7.2 for CPE 21.08
-
We started from the CSCS recipe but added the Boost-support used in the EasyBuilders recipe.
-
Enabled hugepages, though this may not be needed even when including in GROMACS.
-
Added cray-fftw to the dependencies as the configure process does look for a FFTW library. It was already used in the CSCS recipes for 2.7 but is equally useful in 2.6.
-
Added cray-python to the build dependencies as CSCS does for the 2.7 recipes, though it may make sense to make it an actual dependency. We did not do this for now as the Python support is really only meant for developers according to the manual.
-
Removed
--enable-rpath
used in the CSCS recipe as the configure process produces a warning that the-R
-option does not work. -
The
MPIEXEC=srun
has also been removed as the configure process can still not find a way to start MPI processes; it assumesmpirun
is the way to do it.The correct way to do this is actually through
PLUMED_MPIRUN
but as we may not be compiling in a job context or a job context suitable for the tests that PLUMED wants to do it is OK to not set this. -
Added
--enable-asmjit
, an option used in the EasyBuilders recipe (and off by default).
-
-
IMPORATANT: Cray Blas currently does not work properly with PLUMED so it has been disabled.
-
cpeGNU: Crashes. The crash happens in
src/crayblas_util.c
line 353 for the 2.7.2 version in_freeBlasMemPool
, called by_crayblas_shutdown
. -
cpeCray: Blas isn't active according to
config has blas
even when compiling with--enable-external-blas
. So obviously something goes wrong in the configure step that does not go wrong with cpeGNU. -
Did not yet try with cpeAMD.
-
-
We currently have XDR file support disabled (as is the default in an EasyBuild installation). XDR file support is a tricky thing as it seems to be something that comes with GROMACS but is not available separate from GROMACS.
-
As for GROMACS, hugepages support does not work with the AMD compilers.
2.7.4 and 2.8.0 for CPE 21.12
-
Trivial adaptations of the EasyConfigs for 21.08.
-
Did not go exclusively for 2.8.0 as this version is very new and hence may still have problems.
2.7.4 and 2.8.0 for CPE 22.06
-
Had a look at the BLAS problem. It turns out that whatever version of GSL one uses, when one does an
ldd
of theplumed
executable, it is linked against two versions of libsci, the sequential and the OpenMP one.TODO: Further investigation of the log files to check what is going on.
It looks like:
-
GSL uses the sequential or OpenMP libsci as suggested by the module versionsuffix.
-
libplumedKernel.so itself seems to link directly to the OpenMP version, so likely OpenMP is activated during the compile.
-
However, it looks like the
plumed
executable then adds the link against the sequential version of the libsci library.
Though not all observations are in line with this, the problem might be in the PLUMED kernel library itself.
-
In 22.06, Cray libsci produces a warning if the application is linked against multiple
versions of the libsci library. This turns out to be the case irrespective of the
version of GSL that is linked into PLUMED. It looks like a problem in the PLUMED build
process itself causes it to link to multiple libsci libraries if --enable-external-blas
and --enable-external-lapack
are used.
2.7.4 and 2.8.0 for CPE 22.08 (after update of April 2023)
-
There was a problem with the EasyConfig of PLUMED as there was an interaction between the PYTHONPATH set by EasyBuild and adjusted by cray-python, causing the build process to fail in the installation process
Two solutions have been implemented:
-
-cray-python-3.9.12.1
-versions: Load Python in a different way so that we can first unset the PYTHONPATH.These EasyConfigs need further investigation and are a temporary workaround as we suspect they may still be picking up unintended Python binaries or packages.
-
-noPython
: Simply disables Python; build PLUMED without Python support.
-
2.8.3 for CPE 23.09
-
Trivial version bump of 2.8.0.
-
But at least initially no support for cpeCray/23.09 as Boost fails to build.
2.9.0 for CPE 23.09
-
Fails to build on the login nodes if you build for
partition/C
. -
Version bump from 2.8.3 but switched to the downloads that EasyBuild also uses so that we can copy checksums from there.
-
Initially no support for cpeCray as we cannot build Boost for cpeCray.
2.9.2 for CPE 24.03
-
Some improvements inspired by the current EasyBuilders versions.
-
Re-enabled external BLAS/LAPACK. Doesn't seems to be a problem anymore.
-
Small workaround applied to make sure linking against libsci is correct.
-
Some improvements to the way environment variables are set.
-
cpeGNU version also with the Python plugin and extra sanity checks to test the Python integration.
-
Include information in the comments on how to run the regression tests.
According to the manual, it is normal that some tests fail due to numerical differences when using different compilers with more aggressive optimisations, so interpret with care.
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-EasyBuild-contrib - previously user-installable software
-
EasyConfig PLUMED-2.6.4-cpeAMD-21.08.eb, with module PLUMED/2.6.4-cpeAMD-21.08
-
EasyConfig PLUMED-2.6.4-cpeCray-21.08.eb, with module PLUMED/2.6.4-cpeCray-21.08
-
EasyConfig PLUMED-2.6.4-cpeGNU-21.08.eb, with module PLUMED/2.6.4-cpeGNU-21.08
-
EasyConfig PLUMED-2.7.2-cpeAMD-21.08.eb, with module PLUMED/2.7.2-cpeAMD-21.08
-
EasyConfig PLUMED-2.7.2-cpeCray-21.08.eb, with module PLUMED/2.7.2-cpeCray-21.08
-
EasyConfig PLUMED-2.7.2-cpeGNU-21.08.eb, with module PLUMED/2.7.2-cpeGNU-21.08
-
EasyConfig PLUMED-2.7.2-cpeGNU-21.12.eb, with module PLUMED/2.7.2-cpeGNU-21.12
-
EasyConfig PLUMED-2.7.4-cpeAOCC-21.12.eb, with module PLUMED/2.7.4-cpeAOCC-21.12
-
EasyConfig PLUMED-2.7.4-cpeCray-21.12.eb, with module PLUMED/2.7.4-cpeCray-21.12
-
EasyConfig PLUMED-2.7.4-cpeCray-22.06.eb, with module PLUMED/2.7.4-cpeCray-22.06
-
EasyConfig PLUMED-2.7.4-cpeCray-22.08-noPython.eb, with module PLUMED/2.7.4-cpeCray-22.08-noPython
-
EasyConfig PLUMED-2.7.4-cpeCray-22.08.eb, with module PLUMED/2.7.4-cpeCray-22.08
-
EasyConfig PLUMED-2.7.4-cpeGNU-21.12.eb, with module PLUMED/2.7.4-cpeGNU-21.12
-
EasyConfig PLUMED-2.7.4-cpeGNU-22.06.eb, with module PLUMED/2.7.4-cpeGNU-22.06
-
EasyConfig PLUMED-2.7.4-cpeGNU-22.08-noPython.eb, with module PLUMED/2.7.4-cpeGNU-22.08-noPython
-
EasyConfig PLUMED-2.7.4-cpeGNU-22.08.eb, with module PLUMED/2.7.4-cpeGNU-22.08
-
EasyConfig PLUMED-2.8.0-cpeAOCC-21.12.eb, with module PLUMED/2.8.0-cpeAOCC-21.12
-
EasyConfig PLUMED-2.8.0-cpeCray-21.12.eb, with module PLUMED/2.8.0-cpeCray-21.12
-
EasyConfig PLUMED-2.8.0-cpeCray-22.06.eb, with module PLUMED/2.8.0-cpeCray-22.06
-
EasyConfig PLUMED-2.8.0-cpeCray-22.08-noPython.eb, with module PLUMED/2.8.0-cpeCray-22.08-noPython
-
EasyConfig PLUMED-2.8.0-cpeCray-22.08.eb, with module PLUMED/2.8.0-cpeCray-22.08
-
EasyConfig PLUMED-2.8.0-cpeGNU-21.12.eb, with module PLUMED/2.8.0-cpeGNU-21.12
-
EasyConfig PLUMED-2.8.0-cpeGNU-22.06.eb, with module PLUMED/2.8.0-cpeGNU-22.06
-
EasyConfig PLUMED-2.8.0-cpeGNU-22.08-noPython.eb, with module PLUMED/2.8.0-cpeGNU-22.08-noPython
-
EasyConfig PLUMED-2.8.0-cpeGNU-22.08.eb, with module PLUMED/2.8.0-cpeGNU-22.08
-
EasyConfig PLUMED-2.8.3-cpeGNU-22.12-noPython.eb, with module PLUMED/2.8.3-cpeGNU-22.12-noPython
-