Dear Kenneth,
many thanks! For some reason I did not look into the EasyBlock of
GROMACS until now. It just makes a lot more sense now :)
Best
Sebastian
On 29.08.2018 10:35, Kenneth Hoste wrote:
Dear Sebastian,
On 29/08/2018 10:25, Sebastian Potthoff wrote:
Dear all,
I am relatively new to EasyBuild
First things first: welcome to the wonderful world of EasyBuild! :)
and I am trying to get my head around how the EasyConfig files work
in the following example:
The GROMACS molecular dynamics code can be patched with the so called
PLUMED plugin. The standard GROMACS EasyConfig file for the
foss-2018b tool-chain look like this:
https://github.com/easybuilders/easybuild-easyconfigs/blob/develop/easybuild/easyconfigs/g/GROMACS/GROMACS-2018.2-foss-2018b.eb
Now recently, in the development branch, a new EasyConfig for GROMACS
has been added which includes the mentioned PLUMED patch:
https://github.com/easybuilders/easybuild-easyconfigs/blob/develop/easybuild/easyconfigs/g/GROMACS/GROMACS-2018.1-foss-2018b-PLUMED.eb
The only difference being here (besides being gromacs version 2018.1
instead of 2018.2) the addition of:
* dependencies = [**
** ('PLUMED', '2.4.2'),**
** ]*
So my question is, how does EasyBuild know that it has to patch
GROMACS using PLUMED? Is this written in the EasyConfig of PLUMED
itself? Is it inside the EasyBlocks? When I do this by hand, I have
to build PLUMED first, go to the source directory of GROMACS, run
PLUMED in there to patch the source files and then compile GROMACS.
It's indeed handled by the GROMACS easyblock, see
https://github.com/easybuilders/easybuild-easyblocks/blob/master/easybuild/easyblocks/g/gromacs.py#L130
+ following lines.
The easyconfigs are meant to be free of logic, just specifying which
dependencies to use and which versions (+ toolchain and maybe
configure options, etc.)
As a followup, if I wanted to create an EasyConfig for GROMACS+PLUMED
with GPU support enabled, would I then just have to modify the
existing GROMACS EasyConfig for the fosscuda tool-chain in the same way?
Basically, yes, since the GROMACS easyblock checks whether CUDA is
listed as (indirect, in the case of the fosscuda toolchain, but that
doesn't matter) dependency, see
https://github.com/easybuilders/easybuild-easyblocks/blob/master/easybuild/easyblocks/g/gromacs.py#L242
.
regards,
Kenneth