Update Software Environment authored by Alain O' Miniussi's avatar Alain O' Miniussi
[[_TOC_]] [[_TOC_]]
## Software development environment
The main software environment is based on the Intel solution for clusters (could be called "Cluster Edition"). It provides:
* The Intel compilers: icc (C), icpc (C++), ifort (Fortran) compilers.
* The Intel MPI environment.
* The Intel python environment.
* And other stuff.
That environment relies on a Gnu runtime distribution for most the its runtime. Since the default Gnu runtime on our CentOS distribution is quite antique, we decided to rely on gcc 8.3 instead.
This technicality is probably mostly relevant to C++ developers.
## The module system ## The module system
The software environment is managed through [lmod](https://lmod.readthedocs.io/en/latest/). Please have a look at the [User Guide](https://lmod.readthedocs.io/en/latest/010_user.html) if you are not already familiar with it. The software environment is managed through [lmod](https://lmod.readthedocs.io/en/latest/). Please have a look at the [User Guide](https://lmod.readthedocs.io/en/latest/010_user.html) if you are not already familiar with it.
## Modules dependencies ## Modules and modules dependencies
Note that `module avail` does not display all the potentially available modules, only those available with the currently loaded modules. Note that `module avail` does not display all the potentially available modules, only those available with the currently loaded modules.
...@@ -43,6 +31,19 @@ $ ...@@ -43,6 +31,19 @@ $
You can use `module spider` to get the list of available modules regardless of what is already loaded and `module spider <modulename>` to get specific information on how to load a specific module. You can use `module spider` to get the list of available modules regardless of what is already loaded and `module spider <modulename>` to get specific information on how to load a specific module.
## Software development environment
The main software environment is based on the Intel solution for clusters (called "Cluster Edition" these days). It provides:
* The Intel compilers: icc (C), icpc (C++), ifort (Fortran) compilers, provided through the **intel-gnu8-runtime** module.
* The Intel MPI environment, provided through the **impi** module (depends on **intel-gnu8-runtime**)
* The Intel python environment, provided through the **intelpython3** module (depends on **intel-gnu8-runtime**)
* And other stuff.
That environment relies on a Gnu runtime distribution for most the its runtime. Since the default Gnu runtime on our CentOS distribution is quite antique, we decided to rely on gcc 8.3 instead.
This technicality is probably mostly relevant to C++ developers.
## Using python ## Using python
The supported python is the one provided with the Intel environment (**intel-gnu8-runtime**, which must be loaded first) and is provided through module **intelpython3**. The supported python is the one provided with the Intel environment (**intel-gnu8-runtime**, which must be loaded first) and is provided through module **intelpython3**.
... ...
......