Hi Maxime,

On 14/02/2017 20:27, Maxime Boissonneault wrote:
On 17-02-14 14:13, Kenneth Hoste wrote:
On 06/02/2017 17:58, Maxime Boissonneault wrote:
Hi all,

Is there a way for easybuild to tell me what are the toolchains which it currently sees as installed on the system ?

Note that we have a custom naming scheme, and that we hide toolchains to users.

Well, there are several options, although none of them are probably the answer you are looking for.

EasyBuild will symlink modules back to modules/all based on the moduleclass, so (at least with the default module naming scheme) you could use something like:

    find $EASYBUILD_PREFIX/modules/toolchain | sed 's@.*/\(.*/.*\)@\1@g'

We don't have a modules/toolchain folder.
Another way is to compose a list of all toolchain easyconfigs, and then use "eb -D <list of easyconfigs> | grep '\[x\]' ". Although that would also include all toolchain components (and their dependencies).


Maybe it helps if you provide some more context?
Why do you need this exactly?

I want to be able to tell our staff what are the toolchains (and sub-toolchains) they can install a software with without having to install a new toolchain. With the toolchain components, it becomes a pretty long list pretty quickly.

For example, we currently have:
*

The following toolchains are currently available to use:

 *

    Core toolchain:

     o

        dummy,dummy : “Core” uses only components provided by Nix (GCC
        5.4.0)

 *

    Compiler only toolchains:

     o

        iccifort,2016.4.258

     o

        iccifort,2017.1.132

     o

        GCC,4.8.5

     o

        GCC,5.4.0

 *

    Compiler + MKL toolchains:

     o

        iimkl,2016.4 : (Intel 2016.4 + MKL)

     o

        iimkl,2017a : (Intel 2017 + MKL)

 *

    Compiler + MPI toolchains:

     o

        iompi,2016.4 (Intel compiler 2016.4, OpenMPI 2.0.2)

     o

        iompi,2017a (Intel compiler 2017, OpenMPI 2.0.2)

     o

        gompi,2017a (GCC Compiler 5.4.0, OpenMPI 2.0.2)

 *

    Compiler + MPI + MKL toolchains:

     o

        iomkl,2016.4 : (Intel 2016.4, OpenMPI 2.0.2, MKL)

      o iomkl,2017a : (Intel 2017, OpenMPI 2.0.2, MKL)

*
and the list will keep growing.

The proper way would be making --list-toolchains a bit more intelligent, and maybe support the notion of --list-available-toolchains or something like that.

For now, this seems to be doing what you're after:

module avail $(eb --list-toolchains | grep -v "List of known" | cut -f1 -d: | sed 's@$@/@g' | tr '\n' ' ')

i.e.:

i) obtain a list of known toolchain names via --list-toolchains
ii) make sure to append a / after each name
iii) check which modules are available for those toolchains


I'm not sure whether this will work for you since you're hiding toolchains from users. Maybe "module avail --show-hidden" suffices?


In any case: Maxime, please open a feature request to support this more easily via --list-toolchains or some derivative.


regards,

Kenneth

Reply via email to