Setting permanent default for software stack upon login
Contents
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 ~]$