On 20/03/15 20:43, Michael Thomadakis wrote:
Hi Kenneth,

I see. We can leave with that. To me hierarchical name space is a most important capability. No long unwieldy lists :)

How easy would be to transition a flat EB name space into a hierchical one? Which part of a package's EB spec would need to change ?

Depends on what you mean by transitioning... Right now, it would mean reinstalling the software itself, since EasyBuild doesn't support only regenerating module files (yet).

In terms of the build specifications (easyconfig files, see http://easybuild.readthedocs.org/en/latest/Concepts_and_Terminology.html#easyconfig-files), nothing needs to change at all.

You just need to tell EasyBuild to use a different module naming scheme.

For example, to use the hierarchical module naming scheme that comes with EasyBuild, you can run something like:

eb --module-naming-scheme=HierarchicalMNS ...

By default, the EasyBuildMNS is used, which is basically <name>/<version>-<toolchain>-<versionsuffix> .


You can just as easily use a custom module naming scheme too, so you really have full freedom there w.r.t. how your module tree ends up looking like.


regards,

Kenneth


thanks
Michael

On Fri, Mar 20, 2015 at 12:33 PM, Kenneth Hoste <[email protected] <mailto:[email protected]>> wrote:

    Hi Michael,

    On 20/03/15 16:02, Michael Thomadakis wrote:
    Hi Kenneth,

    thanks for your prompt reply.

    I assume that the installation paths for the packages we produce
    with EB may also have a hierarchical structure, as in :

    *$INSTDIR/hdf5/1.8.14/**rhel6/**ompi_1.8.4/intel_15.0 *
    If this is not currently supported, do you have any plans to add
    this capability in the future?

    Currently, the install subdirectory is identical to the full
    module name, so yes, this is supported.

    EB doesn't provide a way (yet) to control the software subdir to
    be different than the module name.


    regards,

    Kenneth


    Thanks!

    Michael

    On Thu, Mar 19, 2015 at 3:44 PM, Kenneth Hoste
    <[email protected] <mailto:[email protected]>> wrote:

        Hi Michael,

        (you're not subscribed to the EasyBuild mailing list yet,
        please do so for further follow-up since this list is
        subscribers-only, I'm adding you in CC for the time being)

        On 19/03/15 21:05, Michael Thomadakis wrote:
        Hello Jens,

        I am interested in using EB to build and install s/w
        packages with complex dependencies (eg., MPI stacks, Libs,
        language compilers, etc.)

        I noticed though that the name space that EB maintains for
        modulefiles and actual s/w installation paths is "flat"
        below the package name.
        I would like to have something like:

        *$MODPATH/rhel6/hdf5/1.8.14/ompi_1.8.4-intel_15.0
        *

        You probably want something like
        $MODPATH/rhel6/hdf5/ompi_1.8.4-intel_15.0/1.8.14 instead
        (software version as last component), although I guess it
        depends where you make the split between 'prefix' and actual
        module name.



        but it seems that with EB I can only have

        *$MODPATH/rhel6/hdf5-1.8.14-ompi_1.8.4-intel_15.0 *
        *
        *
        *
        *
        Is there any plan to support fully hierarchical name-space
        for both modulefiles and installation paths?

        You have full flexibility w.r.t. the module naming scheme
        which is used by EasyBuild, and a hierarchical module naming
        scheme is already supported (pro tip: use Lmod as a modules
        tool for this).

        To implement your own custom module naming scheme, you just
        need to provide a (small) Python module that implements your
        module naming scheme.

        See
        
https://github.com/hpcugent/easybuild/wiki/Using-a-custom-module-naming-scheme
        .

        An example of a hierarchical module naming scheme is included
        with recent EasyBuild releases, see
        
https://github.com/hpcugent/easybuild-framework/blob/master/easybuild/tools/module_naming_scheme/hierarchical_mns.py.

        You can tweak that as you see fit.

        I have to admit that the current documentation on
        implementing your own *hierarchical* module naming scheme is
        a bit shaky, but the HierarchicalMNS implementation itself is
        well documented via docstrings and comments.

        Let us know if you have any questions.


        regards,

        Kenneth





Reply via email to