Environment modules (Lmod)

The module command is the central command that allows the configuration and use of the applications provided by CESGA. It can be use as module or in its short form ml. It sets the appropriate environment variables for a given application independent of the user shell. The available applications are hierarchical and are tied to the preload of a particular combination of dependencies:

  • Compiler: with which the application was compiled.

  • MPI: for MPI applications, the version of MPI used in its compilation.

This tries to minimize incompatibility problems between the different combination of compiler/MPI libraries. Initially, the only modules available are those belonging to the “Core” section where compilers and applications whose use is independent of the compiler/MPI combination are located (applications compiled with the default gcc/glibc version used as the basis for the rest of the compilers and therefore compatible with each other).

In the “ORGS” section, the organizations appear (trees of independent modules to which the user has access). By default the available organizations are:

ORGS

Compiler/default glibc

cesga/2020

Gentoo Prefix: GCC 10.1.0 glibc 2.31

cesga/system

Gentoo Prefix: GCC 10.1.0 glibc 2.31

Cesga/2020 contains the following packages:
  • gcc/system

  • openmpi/4.0.5

  • gcccore/system

  • impi/2021.2.0

  • impi/2021.3.0

  • openmpi/4.1.1_ft3

  • intel/2021.3.0

  • intel/2021.2.0

Cesga/system contains the same packages as cesga/2020 but this new environment has been created to load miniconda3 and prevent compatibility issues with the Gentoo prefix in Cesga/2020. It is strongly recommended to load the cesga/system environment instead of cesga/2020 to ensure optimal performance if you will be using miniconda.

Please refer to the full list of available modules. Kindly note that this list is regularly updated, hence the module you are searching for may have been recently installed. To confirm whether a specific module is on our servers, please use the command module spider <module_name> to verify it.

Conda environments

If you need to install any conda environment or package, please check before any installation if the module is already installed in our system reviewing if it is available in miniconda3 and, therefore, load the cesga/system as explained above. We also recommend using miniconda for this type of installation (if available).

If it is not installed, you should bear in mind that this type of installation generates a large number of files that are saved in the $HOME directory by default. They often end up filling up the quota of this directory, so they should NOT be installed there. The appropriate directory to save them is the $STORE directory, so if you are going to need the installation of any conda environment/package, you should use this directory. If the environments and packages are already installed, the most effective way is to move them from $HOME to $STORE as follows:

  • Create a directory in $STORE: mkdir $STORE/.conda

  • Move the envs and pkgs directories from $HOME to $STORE: mv .conda/envs .conda/pkgs $STORE/.conda

  • Edit the .conda/environments.txt file to put the appropriate path to the $STORE (as it currently has the path to $HOME).

  • If you need to clean up conda environments, the command to use is conda clean -a

If you still have any doubts regarding this matter, you cant contact the Applications Department to help you.

Module command use

-To see all available applications/libraries regardless of the compilers/MPI they depend on, use the command module spider.

-It is possible to search using this command if an application is available with module spider <module_name>. It also contains a brief description and use guide of the corresponding module.

-To load a module to configure the environment for an application use module load intel. When loading the module corresponding to the intel compilers, the applications section corresponding to these compilers is available for loading. The available MPI modules appear. If an MPI module is loaded, for example impi, the available applications section for the compilers (intel) / MPI (impi) combination becomes available.

-Unload module/s: module unload package1 package2

-Unload all loaded modules and reset everything to original state: module purge

-Currently loaded modules: module list

-Change the compilers in use: module swap intel gcc. With this command all compiler dependent libraries/applications will be changed. If the applications for the compiler do not exist, the corresponding modules are marked as inactive, disabling their use until the switch back to the original compiler is made.

-For help on using the module command itself: module help

Available modules

../_images/mod1.png
../_images/mod2.png
../_images/mod3.png
../_images/mod4.png