Migration to the new standard environment: Difference between revisions

No edit summary
No edit summary
 
(32 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= What are the differences between the old and the new environments ? =
<languages />
These differences are listed on the page [[Standard software environments]].


= How can I change which version of <code>StdEnv</code> is my default? =
<translate>
Our clusters use different versions of <code>StdEnv</code> as their default version. As of August 2020, [[Cedar]] and [[Graham]] use <code>StdEnv/2016.4</code>, while [[Béluga/en|Béluga]] uses <code>StdEnv/2018.3</code>. [[Niagara]] also defaults to <code>StdEnv/2018.3</code> if you run <code>module load CCEnv StdEnv</code>. In the future, we will probably update all of them to use <code>StdEnv/2020</code>. However, users can specify their own default by running the following command (example provided for the 2020 version)
= What are the differences between <tt>StdEnv/2023</tt> and the earlier environments? = <!--T:1-->
The differences are discussed in [[Standard software environments]].
 
= Can I change my default standard environment? = <!--T:2-->
After 2024 April 1, ''' <code>StdEnv/2023</code> will be the default environment for all clusters.''' However, you can specify your own default environment at any time by modifying the <code>$HOME/.modulerc</code> file. For example, running the following command will set your default environment to <code>StdEnv/2020</code>:
{{Command|echo "module-version StdEnv/2020 default" >> $HOME/.modulerc}}
{{Command|echo "module-version StdEnv/2020 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 <code>StdEnv</code> changes? = <!--T:3-->
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? = <!--T:4-->
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/2020
to your job scripts before loading any other modules. 
= Will the earlier environments be removed? = <!--T:5-->
The earlier environments and any software dependent on them will remain available, <b>but versions 2016.4 and 2018.3 are no longer supported</b>, and we recommend not using them. Our staff will only install software in the new environment 2023.
= Can I mix modules from different environments? = <!--T:6-->
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.


= Do I need to reinstall/recompile my code if the <code>StdEnv</code> version changes? =
= Which environment should I use? = <!--T:7-->
Yes. If you compile your own code, or install R or Python packages, you should recompile or reinstall the packages you need using the newest version of the standard environment.
If you are starting a new project, or if you want to use a newer version of an application, you should use <tt>StdEnv/2023</tt> by adding
  module load StdEnv/2023
to your job scripts. This command does not need to be deleted to use <tt>StdEnv/2023</tt> after April 1.


= How can I use the old environments ? =
= Can I keep using an older environment by loading modules in my <code>.bashrc</code>? = <!--T:8-->
If you have an existing workflow and want to continue to use the same software versions you are using now, simply add <code>module load StdEnv/2018.3</code> or <code>module load StdEnv/2016.4</code> to your jobscript before loading any other modules.
Loading modules in your <code>.bashrc</code> is '''not recommended'''. Instead, explicitly load modules in your job scripts.


= Will old environments go away ? =  
= I don't use the HPC clusters but cloud resources only. Do I need to worry about this? = <!--T:9-->
No, they ''will not go away''.  They and all the software dependent on them will remain available!  However, Compute Canada staff will no longer install anything into the old environemnts.
No, this change will only affect the [[Available software]] accessed by [[Using modules| using environment modules]].


= Which environment should I use ? =
= I can no longer load a module that I previously used = <!--T:10-->
If you are starting a new project, or if you want to use a newer version of some software, you should use <tt>StdEnv/2020</tt>. Today you can do this by adding <code>module load StdEnv/2020</code> to your job script. As of April 1, it will be the default and the line will be unnecessary (though not a problem).
More recent versions of most applications are installed in the new environment. To see the available versions, run the <code>module avail</code> command. For example, 
{{Command|module avail gcc}}
shows several versions of the GCC compilers, which may be different from those in earlier environments.
</translate>

Latest revision as of 15:21, 14 February 2024

Other languages:

What are the differences between StdEnv/2023 and the earlier environments?

The differences are discussed in Standard software environments.

Can I change my default standard environment?

After 2024 April 1, StdEnv/2023 will be 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/2020:

Question.png
[name@server ~]$ echo "module-version StdEnv/2020 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?

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?

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/2020

to your job scripts before loading any other modules.

Will the earlier environments be removed?

The earlier environments and any software dependent on them will remain available, but versions 2016.4 and 2018.3 are no longer supported, and we recommend not using them. Our staff will only install software in the new environment 2023.

Can I mix modules from different environments?

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?

If you are starting a new project, or if you want to use a newer version of an application, you should use StdEnv/2023 by adding

 module load StdEnv/2023

to your job scripts. This command does not need to be deleted to use StdEnv/2023 after April 1.

Can I keep using an older environment by loading modules in my .bashrc?

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?

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

More recent versions of most applications are installed in the new environment. To see the available versions, run the module avail command. For example,

Question.png
[name@server ~]$ module avail gcc

shows several versions of the GCC compilers, which may be different from those in earlier environments.