Setting permanent default for software stack upon login

From ScientificComputing
Revision as of 10:07, 11 January 2021 by Sfux (talk | contribs) (Introduction)

Jump to: navigation, search

Introduction

Some time ago we introduced a new software stack on Euler that uses a similar but slightly different module system (LMOD modules instead of environment modules). LMOD has useful additional features on top of what environment modules provide. So far upon login to the Euler cluster, the old software stack is initialized as the default and we provided the scripts env2lmod and lmod2env to switch between the old and the new software stack.

Having the old software stack initialized by default upon login causes some issues for users of the new software stack.

Issues with the old setup

Users of the new software stack could add the command source /cluster/apps/local/env2lmod.sh to their .bashrc to automatically switch to the new software stack directly after login, but this setup would still first initialize environment modules and then switch to LMOD modules.

Interactive jobs

Interactive jobs are not correctly picking up the environment for the new software stack. Therefore users could only use the new software stack on Euler, when starting the interactive job with the old modules system being initialized and then users could switch inside the interactive job to the new software stack.

Jupyter notebooks

The script to run jupyter notebooks on Euler or Leonahrd Open is using the old software stack. It could only be adapted to use the new LMOD modules, when users change the modules that are loaded by the script and in addition added the command source /cluster/apps/local/env2lmod.sh to their .bashrc or .bash_profile.

Setting a permanent default for the software stack to be initialized upon login to Euler

We introduce now a new script set_software_stack.sh that allows the users to permanently set the default for the software stack to be initialized upon login to Euler.

[sfux@eu-login-09 ~]$ ./set_software_stack.sh --help
./set_software_stack.sh: Command to set the old (environment modules) or new (LMOD modules) software stack as default upon login on the Euler cluster

Usage: set_software_stack.sh [-h] [-s] [-i] [old | new]

Options:

        -h | --help                      Display this help message and exit
        -s | --silent                    Do not print anything to stdout except errors when changing the default for the software stack
        -i | --info                      Show which software stack is set as default and exit
        old | new                        Choices for the default software stack

Examples:

        Set the the new software stack as default:

                set_software_stack.sh new

        Show which software stack is set as default

                set_software_stack.sh -i

Documentation of module commands:

        We provide a general overview on module commands on our wiki.

                https://scicomp.ethz.ch/wiki/Setting_up_your_environment

Old software stack (environment modules):

        The old software stack (2014-2021+) on Euler uses environment modules. An overview on available
        modules can be found on our wiki:

                https://scicomp.ethz.ch/wiki/Category:Application
                https://scicomp.ethz.ch/wiki/Euler_applications

New software stack (LMOD modules):

        The new software stack (2018-2021+) on Euler uses LMOD modules. LMOD modules provide additional
        features like a hierarchy of modules that prevents users from mixing different toolchains:

                https://scicomp.ethz.ch/wiki/New_SPACK_software_stack_on_Euler

        An overview on the available modules can be found on our wiki:

                https://scicomp.ethz.ch/wiki/Euler_applications_and_libraries

        List of all software not currently available in the new software stack

                https://scicomp.ethz.ch/wiki/Difference_between_old_and_new_software_stacks_on_Euler

See also:

        env2lmod; switch from old to new software stack in the shell (change not permanent)
        lmod2env; switch from the new to the old software stack in the shell (change not permanent)

[sfux@eu-login-09 ~]$