Here at TAMU we set:
EASYBUILD_MINIMAL_TOOLCHAINS=1
when loading the EasyBuild-<cluster> module (which
sets all our other EASYBUILD_* variables for the cluster).
So, by default, all builds use --minimal-toolchains
In the case where we want a module from a "higher" toolchain
(e.g. foss vs GCCcore), we use: --use-existing-modules to override
(after building the foss version first).
Jack Perdue
Lead Systems Administrator
High Performance Research Computing
TAMU Division of Research
j-per...@tamu.edu http://hprc.tamu.edu
HPRC Helpdesk: h...@hprc.tamu.edu
On 06/07/2018 05:07 AM, Caspar van Leeuwen wrote:
Ah, to answer my own question, I think I know where the difference
comes from. With eb -S I find:
* $CFGS2/l/LibTIFF/LibTIFF-4.0.9-GCCcore-6.4.0.eb
* $CFGS2/l/LibTIFF/LibTIFF-4.0.9-foss-2017b.eb
but the only version for libpng is
* $CFGS1/l/libpng/libpng-1.6.32-GCCcore-6.4.0.eb
I guess that means that EasyBuild looks at which EasyConfigs are
available (and not which modules are actually installed), and thén
goes for the 'maximal-toolchain' unless you specify --minimal-toolchain.
I'm doubting whether I should simply set --minimal-toolchain (=True)
as default on the system. Any people who do that? Any reasons why I
shouldn't?
Cheers,
Caspar
------------------------------------------------------------------------
*From: *"Caspar van Leeuwen" <caspar.vanleeu...@surfsara.nl>
*To: *"easybuild" <easybuild@lists.ugent.be>
*Sent: *Thursday, 7 June, 2018 11:42:37
*Subject: *[easybuild] Dependency resolution for dependencies build
with subtoolchains
Hi all,
I keep being puzzled by the dependency resolution step in EasyBuild.
I'm trying to install GDAL-2.2.3-foss-2017b-Python-2.7.14.eb. Among
many others, it has dependencies on libpng and LibTIFF:
dependencies = [
....
('libpng', '1.6.32'),
('LibTIFF', '4.0.9'),
....
]
On the system, I have
libpng/1.6.32-GCCcore-6.4.0
LibTIFF/4.0.9-GCCcore-6.4.0
installed. EasyBuild happily finds that the libpng dependency is
resolved, since GCCcore-6.4.0 is a subtoolchain of foss-2017b.
However, for LibTIFF, it doesn't: it explicitely looks for a
foss-2017b build, and fails to find one.
* [x] .../easyconfigs/l/libpng/libpng-1.6.32-GCCcore-6.4.0.eb
(module: libpng/1.6.32-GCCcore-6.4.0)
* [ ] .../easyconfigs/l/LibTIFF/LibTIFF-4.0.9-foss-2017b.eb (module:
LibTIFF/4.0.9-foss-2017b)
When passing the --minimal-toolchain option, it does find the
LibTIFF/4.0.9-GCCcore-6.4.0. However, for reproducibility, I prefer to
avoid command line options. Furthermore, I think (?) the
minimal-toolchain option is intended for when a dependency could be
resolved by both the full, and a subtoolchain (e.g. when
LibTIFF/4.0.9-GCCcore-6.4.0 and LibTIFF/4.0.9-foss-2017b would both
be available) and in those cases I generally don't want to use the
minimal-toolchain.
Moreover, I would really like to understand why libpng and LibTIFF are
being resolved differently here. Could it be that one of the other
dependencies of GDAL in turn also has a dependency on libpng or
LibTIFF, and that this somehow changes the behavior? And is that
difference in behavior intentional, or is this a 'bug'?
Regards,
Caspar van Leeuwen
SURFsara