Hi all,

At JSC we use more or less the same setup as Jack to manage things.

Mikael, there are many people using flat naming schemes, for them it's less 
complicated (from a user perspective) to upgrade everything to the top level 
toolchain so that everything is visually coherent. There have been a few 
suggestions at various points to tackle this, "fat" easyconfigs is still my 
favourite option (yaml format easyconfigs for tackling all toolchains for a 
software/version in a single file). There are a couple of open PRs somewhere 
related to it.

It would probably be easier in the short term to have an option to allow them 
to bump the toolchain to the top of the hierarchy, that would also be of 
benefit in the yaml format. It's a bit delicate though and you need to be 
careful.

Alan

On Fri, 8 Jun 2018, 09:47 Mikael Öhman, 
<micket...@gmail.com<mailto:micket...@gmail.com>> wrote:
This brings up a different question though; Why does 
LibTIFF-4.0.9-foss-2017b.eb  exists?
>From what i can see, it should be identical to the GCCcore version.

Best regards, Mikael

On Thu, Jun 7, 2018 at 12:36 PM, Jack Perdue 
<j-per...@tamu.edu<mailto:j-per...@tamu.edu>> wrote:
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<mailto:j-per...@tamu.edu>    http://hprc.tamu.edu
HPRC Helpdesk: h...@hprc.tamu.edu<mailto: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<mailto:caspar.vanleeu...@surfsara.nl>>
*To: *"easybuild" <easybuild@lists.ugent.be<mailto: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





------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------

Reply via email to