We already ran into this problem and wrote a new HMNS that takes the toolchains 
as the base, see https://github.com/hpcugent/easybuild-framework/pull/1168

It's not been accepted because it currently requires that you list a 
subtoolchain as a dependencyof your toolchain to get the correct hierarchy 
structure. For example you must explicitly list GCC as a dependency of gompi, 
and gompi as a dependency of gpsolf in the relevant easyconfigs to get the 
right hierarchy structure.

This will be fixed when I get my other pull request for subtoolchain searching 
merged...but we have been using it in production for months regardless.

On 15 September 2015 at 17:19, Bart Oldeman 
<[email protected]<mailto:[email protected]>> wrote:
Hi,

I am trying to set up a hierarchical module structure with Easybuild
2.3.0 and Lmod 6.0.9.

I do however observe that
module load foss/2015b
followed by
module unload foss/2015b
only unloads the foss module but the dependencies are still there. I
locally built an iomkl/2015b toolchain and doing

module load foss/2015b
module load OpenFOAM/2.3.1
module switch foss/2015b iomkl/2015b
does not do the intended thing either (reloading OpenFOAM using the
iomkl toolchain)

Having a look at the foss/2015b.lua file I see:

if not isloaded("GCC/4.9.3-binutils-2.25") then
    load("GCC/4.9.3-binutils-2.25")
end

if not isloaded("binutils/2.25") then
    load("binutils/2.25")
end

if not isloaded("OpenMPI/1.8.8") then
    load("OpenMPI/1.8.8")
end

(etc.)

Now if I simply remove all "not isloaded"s and change that to:

load("GCC/4.9.3-binutils-2.25")
load("binutils/2.25")
load("OpenMPI/1.8.8")

then I a) do not get double loads and b) "module unload foss" will
unload all the depending modules.

To also get "module spider OpenFOAM/2.3.1" listing foss/2015b as a
possibility I need to embed the MODULEPATH changes directly into
foss/2015b.lua (without removing them from the dependent modules of
course):

prepend_path("MODULEPATH",
"/software/CentOS-6/eb/modules/all/Compiler/GCC/4.9.3")
load("GCC/4.9.3-binutils-2.25")
load("binutils/2.25")
prepend_path("MODULEPATH",
"/software/CentOS-6/eb/modules/all/MPI/GCC/4.9.3/OpenMPI/1.8.8")
load("OpenMPI/1.8.8")
load("OpenBLAS/0.2.14-LAPACK-3.5.0")
load("FFTW/3.3.4")
load("ScaLAPACK/2.0.2-OpenBLAS-0.2.14-LAPACK-3.5.0")

Then I can do:

$ module spider OpenFOAM/2.3.1

    This module can only be loaded through the following modules:

      GCC/4.9.3-binutils-2.25  OpenMPI/1.8.8
      foss/2015b
      foss/2015b  OpenMPI/1.8.8
      icc/2015.3.187-GNU-4.9.3-2.25  OpenMPI/1.8.8
      ifort/2015.3.187-GNU-4.9.3-2.25  OpenMPI/1.8.8
      iomkl/2015b
      iomkl/2015b  OpenMPI/1.8.8


Before shooting myself in the foot, is there any side effect to doing
this, in particular replacing

if not isloaded("GCC/4.9.3-binutils-2.25") then
    load("GCC/4.9.3-binutils-2.25")
end

with a plain

load("GCC/4.9.3-binutils-2.25")

?

Regards,
Bart
--
Dr. Bart E. Oldeman | [email protected]<mailto:[email protected]> | 
[email protected]<mailto:[email protected]>
Scientific Computing Analyst / Analyste en calcul scientifique
McGill HPC Centre / Centre de Calcul Haute Performance de McGill |
http://www.hpc.mcgill.ca
Calcul Québec | http://www.calculquebec.ca
Compute/Calcul Canada | http://www.computecanada.ca
Tel/Tél: 514-396-8926 | Fax/Télécopieur: 514-396-8934



--
Dr. Alan O'Cais
Application Support
Juelich Supercomputing Centre
Forschungszentrum Juelich GmbH
52425 Juelich, Germany

Phone: +49 2461 61 5213
Fax: +49 2461 61 6656
E-mail: [email protected]<mailto:[email protected]>
WWW:    http://www.fz-juelich.de/ias/jsc/EN


------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
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