Hi Alan,

On 15/09/15 17:37, Alan O'Cais wrote:
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.

Well, the actual reason that the PR wasn't merged yet is because no unit test has been added yet for it, to make sure we don't break it somehow in the future... I believe you were planning to try and tackle this yourself, but maybe I'm mistaken.
If you're not sure on how to tackle this, let me know, and I can help out.

You're right about the subtoolchain aspect kind of being needed to get the right structure, but that's not the reason the PR is still open (iirc).


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.
This is https://github.com/hpcugent/easybuild-framework/pull/1306 .

My hope is to get that ready to be merge in time for EB v2.4.0 (end of Oct'15), but it needs a fair amount of work before it's ready (testing + unit tests and probably some reorganizing of the code changes too). I hope to dive into this one soon, once I get a couple of other things I have in flight already out of the door.


regards,

Kenneth


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
    <http://www.calculquebec.ca>
    Compute/Calcul Canada | http://www.computecanada.ca
    <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