Migration to the new standard environment
What are the differences between StdEnv/2020 and the earlier environments?[edit]
The differences are discussed in Standard software environments.
Can I change my default standard environment?[edit]
Our clusters currently use different StdEnv
versions as their default. Cedar and Graham use StdEnv/2016.4
, while Béluga uses StdEnv/2018.3
. Niagara defaults to StdEnv/2018.3
when you run module load CCEnv StdEnv
. As of April 1, 2021, StdEnv/2020
is the default environment for all clusters. However, you can specify your own default environment at any time by modifying the $HOME/.modulerc
file. For example, running the following command will set your default environment to StdEnv/2018.3
:
[name@server ~]$ echo "module-version StdEnv/2018.3 default" >> $HOME/.modulerc
You must log out and log in again for this change to take effect.
Do I need to reinstall/recompile my code when the StdEnv
changes?[edit]
Yes. If you compile your own code, or have installed R or Python packages, you should recompile your code or reinstall the packages you need with the newest version of the standard environment.
How can I use an earlier environment?[edit]
If you have an existing workflow and want to continue to use the same software versions you are using now, simply add
module load StdEnv/2018.3
or
module load StdEnv/2016.4
to your job scripts before loading any other modules.
Will the earlier environments be removed?[edit]
The earlier environments and any software dependent on them will remain available. However, our staff will no longer install anything in the old environments.
Can I mix modules from different environments?[edit]
No, you should use a single environment for a given job - different jobs can use different standard environments by explicitly loading one or the other at the job's beginning but within a single job you should only use a single environment. The results of trying to mix different environments are unpredictable but in general will lead to errors of one kind or another.
Which environment should I use?[edit]
If you are starting a new project, or if you want to use a newer version of an application, you should use StdEnv/2020 by adding
module load StdEnv/2020
to your job scripts. This command does not need to be deleted to use StdEnv/2020 after April 1.
Can I keep using an older environment by loading modules in my .bashrc
?[edit]
Loading modules in your .bashrc
is not recommended. Instead, explicitly load modules in your job scripts.
I don't use the HPC clusters but cloud resources only. Do I need to worry about this?[edit]
No, this change will only affect the Available software accessed by using environment modules.
I can no longer load a module that I previously used[edit]
More recent versions of most applications are installed in the new environment. To see the available versions, run the module avail
command. For example,
[name@server ~]$ module avail gcc
shows several versions of the GCC compilers, which may be different from those in earlier environments.