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

