GLiCID

logo glicid

1. Software modules

HPC cluster systems typically have a large number of software packages installed. On GLiCID, we use the modules package to manage the user environment for the installed packages. Software modules simplify the utilization of pre-installed software packages and libraries by configuring the necessary environment variables. This makes it simple to use different packages or switch between versions of the same package without conflicts.

1.1. To see all available modules, run:

$ module avail
---------------------------------------- /usr/share/Modules/modulefiles/applications ----------------------------------------
aspect/2.6.0         fidelity/23.20      lammps/15Jun2023        openmolcas/2024      pari/gp2c-0.0.13  turbomole/7.3
aspect/2.6.0_znver3  finemarine/10.1     lammps/29Aug2024        openmolcas/current   sharc/3.0         turbomole/7.5
castem/2021          finemarine/12.1     lammps/29Aug2024_gpu    orca/5.3             sharc/current     turbomole/7.41
castem/2023          gaussian/g16        mrcc/2023               orca/5.4             specfem2d/8.1.0   vasp/6.4.3
cfour/2.1            gaussian/g16reva03  neper/4.10.1            orca/6.0             specfem3d/4.1.1   visit/3.3.3
code-aster/14.6.0    gaussian/g16revc02  openfast/3.5.3          orca/6.1             telemac/v8p2r1
dftb/22.1            gcm/r3393           openfoam/11-openmpi     paraview/5.11.2-mpi  telemac/v8p4r0
dftb/23.1            hyperworks/2022.2   openfoam/v2312-openmpi  pari/2.15.5          telemac/v8p5r0

----------------------------------------- /usr/share/Modules/modulefiles/libraries ------------------------------------------
aocl-blis/4.0                            hdf5/1.14.1-2_intel                 intel/mkl/2023.1.0    pnetcdf/1.12.3_itl
blas/3.12.0_gnu                          hdf5/1.14.1-2_intel_intelmpi        intel/mkl/latest      rdma/46.0_gnu
boost/1.82.0_gnu                         intel/ccl/2021.9.0                  intel/mkl32/2023.1.0  scalapack/2.2.0_gnu
boost/1.86.0_gnu                         intel/ccl/latest                    intel/mkl32/latest    scotch/7.0.6
cuda/12.2.0_535.54.03                    intel/dnnl-cpu-gomp/2023.1.0        intel/tbb/2021.9.0    suitesparse/7.8.2
eigen/3.4.0                              intel/dnnl-cpu-gomp/latest          intel/tbb/latest      szip/2.1_gnu
fftw/3.3.10_gnu_serial                   intel/dnnl-cpu-iomp/2023.1.0        intel/tbb32/2021.9.0  ucx/1.14.1_gnu
fftw/3.3.10_intel_serial                 intel/dnnl-cpu-iomp/latest          intel/tbb32/latest    ucx/1.17.0_gnu
fftw/3.3.10_intel_serial_sp              intel/dnnl-cpu-tbb/2023.1.0         lapack/3.12.0_gnu     zlib/1.2.8_gnu
fftw/mpi/3.3.10_gnu_13.1.0_openmpi       intel/dnnl-cpu-tbb/latest           libnsl/2.0.1
fftw/mpi/3.3.10_intel_2023.1.0_intelmpi  intel/dnnl/2023.1.0                 libtool/2.4.6_gnu
fftw/omp/3.3.10_gnu_omp                  intel/dnnl/latest                   metis/4.0.3
fftw/omp/3.3.10_intel_omp                intel/dpl/2022.1.0                  metis/5.1.0
gmp/6.2.1                                intel/dpl/latest                    mpfr/4.2.1_gnu
:...skipping...
---------------------------------------- /usr/share/Modules/modulefiles/applications ----------------------------------------
aspect/2.6.0         fidelity/23.20      lammps/15Jun2023        openmolcas/2024      pari/gp2c-0.0.13  turbomole/7.3
aspect/2.6.0_znver3  finemarine/10.1     lammps/29Aug2024        openmolcas/current   sharc/3.0         turbomole/7.5
castem/2021          finemarine/12.1     lammps/29Aug2024_gpu    orca/5.3             sharc/current     turbomole/7.41
castem/2023          gaussian/g16        mrcc/2023               orca/5.4             specfem2d/8.1.0   vasp/6.4.3
cfour/2.1            gaussian/g16reva03  neper/4.10.1            orca/6.0             specfem3d/4.1.1   visit/3.3.3
code-aster/14.6.0    gaussian/g16revc02  openfast/3.5.3          orca/6.1             telemac/v8p2r1
dftb/22.1            gcm/r3393           openfoam/11-openmpi     paraview/5.11.2-mpi  telemac/v8p4r0
dftb/23.1            hyperworks/2022.2   openfoam/v2312-openmpi  pari/2.15.5          telemac/v8p5r0

----------------------------------------- /usr/share/Modules/modulefiles/libraries ------------------------------------------
aocl-blis/4.0                            hdf5/1.14.1-2_intel                 intel/mkl/2023.1.0    pnetcdf/1.12.3_itl
blas/3.12.0_gnu                          hdf5/1.14.1-2_intel_intelmpi        intel/mkl/latest      rdma/46.0_gnu
boost/1.82.0_gnu                         intel/ccl/2021.9.0                  intel/mkl32/2023.1.0  scalapack/2.2.0_gnu
boost/1.86.0_gnu                         intel/ccl/latest                    intel/mkl32/latest    scotch/7.0.6
cuda/12.2.0_535.54.03                    intel/dnnl-cpu-gomp/2023.1.0        intel/tbb/2021.9.0    suitesparse/7.8.2
eigen/3.4.0                              intel/dnnl-cpu-gomp/latest          intel/tbb/latest      szip/2.1_gnu
fftw/3.3.10_gnu_serial                   intel/dnnl-cpu-iomp/2023.1.0        intel/tbb32/2021.9.0  ucx/1.14.1_gnu
fftw/3.3.10_intel_serial                 intel/dnnl-cpu-iomp/latest          intel/tbb32/latest    ucx/1.17.0_gnu
fftw/3.3.10_intel_serial_sp              intel/dnnl-cpu-tbb/2023.1.0         lapack/3.12.0_gnu     zlib/1.2.8_gnu
fftw/mpi/3.3.10_gnu_13.1.0_openmpi       intel/dnnl-cpu-tbb/latest           libnsl/2.0.1
fftw/mpi/3.3.10_intel_2023.1.0_intelmpi  intel/dnnl/2023.1.0                 libtool/2.4.6_gnu
fftw/omp/3.3.10_gnu_omp                  intel/dnnl/latest                   metis/4.0.3
fftw/omp/3.3.10_intel_omp                intel/dpl/2022.1.0                  metis/5.1.0
gmp/6.2.1                                intel/dpl/latest                    mpfr/4.2.1_gnu
gmsh/4.11.1_gnu                          intel/intel_ipp_ia32/2021.8.0       mumps/5.4.1
gmt/4.5.15_gnu                           intel/intel_ipp_ia32/latest         nco/5.2.8_gnu
gmt/5.3.1_gnu                            intel/intel_ipp_intel64/2021.8.0    ncview/2.1.10_gnu
graphviz/12.2.1                          intel/intel_ipp_intel64/latest      netcdf/c-4.9.2_gnu
gsl/2.8_gnu                              intel/intel_ippcp_ia32/2021.7.0     netcdf/f-4.6.1_gnu
hdf5/1.10.2_gnu                          intel/intel_ippcp_ia32/latest       openssl/3.0.9_gnu
hdf5/1.14.1-2_gnu                        intel/intel_ippcp_intel64/2021.7.0  petsc/3.21.5_gnu
hdf5/1.14.1-2_gnu_openmpi                intel/intel_ippcp_intel64/latest    pnetcdf/1.12.3_gnu

----------------------------------------- /usr/share/Modules/modulefiles/compilers ------------------------------------------
amd/4.0.0     intel/compiler-rt/2023.1.0    intel/compiler32/2023.1.0  julia/1.9.4    R-project/4.3.1_gnu_mkl
cmake/3.26.4  intel/compiler-rt/latest      intel/compiler32/latest    llvm/18.1.1    rust/1.77.2
gcc/12.4.0    intel/compiler-rt32/2023.1.0  intel/icc/2023.1.0         nvhpc/22.7
gcc/13.1.0    intel/compiler-rt32/latest    intel/icc/latest           nvhpc/23.9
gcc/14.1.0    intel/compiler/2023.1.0       intel/icc32/2023.1.0       nvhpc/24.5
gcc/14.2.0    intel/compiler/latest         intel/icc32/latest         python/3.11.4

------------------------------------------- /usr/share/Modules/modulefiles/tools --------------------------------------------
apptainer/1.1.6         intel/clck/2021.7.3           intel/dpct/2023.1.0         intel/oclfpga/2023.1.0  ompp/0.8.5_gnu
curl/8.9.1              intel/clck/latest             intel/dpct/latest           intel/oclfpga/latest    ompp/0.8.5_itl
expat/2.6.3             intel/dal/2023.1.0            intel/init_opencl/2023.1.0  intel/vtune/2023.1.0    texinfo/7.1
git/2.44.0              intel/dal/latest              intel/init_opencl/latest    intel/vtune/latest      valgrind/3.21.0
guix/latest             intel/debugger/2023.1.0       intel/inspector/2023.1.0    libffi/3.4.6
guix/v1.1               intel/debugger/latest         intel/inspector/latest      nano/8.3
intel/advisor/2023.1.0  intel/dev-utilities/2021.9.0  intel/itac/2021.9.0         numdiff/5.9.0
intel/advisor/latest    intel/dev-utilities/latest    intel/itac/latest           nvtop/3.1.0
------------------------------------------ /usr/share/Modules/modulefiles/parallel ------------------------------------------
intel/mpi/2021.9.0                                       openmpi/ucx/4.1.8_gcc_13.1.0_ucx_1.17.0_rdma_46.0_internal
intel/mpi/2021.11                                        openmpi/ucx/4.1.8_gcc_13.1.0_ucx_1.17.0_rdma_46.0_pmix4
intel/mpi/latest                                         openmpi/ucx/5.0.6_gcc_13.1.0_ucx_1.17.0_rdma_46.0
openmpi/ucx/4.1.5_gcc_8.5.0_ucx_1.14.1_rdma_46.0         openmpi/ucx/5.0.6_gcc_13.1.0_ucx_1.17.0_rdma_46.0-pmix4
openmpi/ucx/4.1.6_gcc_8.5.0_ucx_1.14.1_rdma_46.0-pmi2    pmix/3.2.2
openmpi/ucx/4.1.6_gcc_13.1.0_ucx_1.17.0_rdma_46.0-pmix3  pmix/4.2.9
openmpi/ucx/4.1.6_gcc_13.1.0_ucx_1.17.0_rdma_46.0-pmix4  pmix/4.2.9_gm

------------------------ /LAB-DATA/GLiCID/projects/modes/blondel-a@univ-nantes.fr/modulefiles/modes -------------------------
cfour/2.1/omp_nautilus      orca/5.3/omp_nautilus      psi4/1.8/omp_nautilus       turbomole/7.4/omp_nautilus
cfour/2.1SSD/omp_nautilus   orca/5.4/omp_nautilus      psi4/current/omp_nautilus   turbomole/7.5/mpi_nautilus
cfour/current/omp_nautilus  orca/6.0/mpi_nautilus      qchem/6.2/omp_nautilus      turbomole/7.5/omp_nautilus
modes_tools/2.0             orca/6.0/omp_nautilus      qchem/current/omp_nautilus  turbomole/7.8/mpi_nautilus
mrcc/2023/omp_nautilus      orca/6.1/mpi_nautilus      turbomole/7.3/mpi_nautilus  turbomole/7.8/omp_nautilus
mrcc/2023SSD/omp_nautilus   orca/6.1/omp_nautilus      turbomole/7.3/omp_nautilus  turbomole/current/mpi_nautilus
mrcc/current/omp_nautilus   orca/current/omp_nautilus  turbomole/7.4/mpi_nautilus  turbomole/current/omp_nautilus

This list is not automatically updated so …​

1.2. To get the list of all installed modules, run :

$ module avail <module_name>

1.3. To load a module, use:

module load <module_name>

For example, to load Apptainer, run:

module load Apptainer

1.4. To check the list of loaded modules, run:

module list

For example

$ module list
No Modulefiles Currently Loaded.
$ module load gcc/13.1.0 openmpi/ucx/4.1.5_gcc_8.5.0_ucx_1.14.1_rdma_46.0
$ module list
Currently Loaded Modulefiles:
 1) gcc/13.1.0   2) rdma/46.0_gnu   3) ucx/1.14.1_gnu   4) openmpi/ucx/4.1.5_gcc_8.5.0_ucx_1.14.1_rdma_46.0

Some modules may be loaded by others because of dependences

1.5. To unload a specific module, run:

module unload <module_name>

1.6. To switch between two versions of the same module, run:

module switch <old_module> <new_module>

For example

$ module list
No Modulefiles Currently Loaded.
$ module load nvhpc/22.7
$ module list
Currently Loaded Modulefiles:
 1) nvhpc/22.7
$ module switch nvhpc/22.7 nvhpc/23.9
$ module list
Currently Loaded Modulefiles:
 1) nvhpc/23.9

1.7. To unload all the loaded modules, run:

module purge

1.8. Introduction

On a computing system, you have software, tools, librairies that come with it at specific version numbers. Sometimes, for your own applications, you have dependencies that need different version number, and you can’t simply replace the previous ones by the newest ones. You have to deal with different versions numbers of the same files on the same machine.

1.9. Module command

The module command lets you manipulate your environnement, especially your environment variables (PATH, LD_LIBRARY_PATH, etc.) by adding new paths to search for files. So you first need to install your needed dependencies somewhere (/usr/local, /opt/software, etc.) and next with the help of a small configuration file, you can’t get access to the other version. The initialization of the module environment and making available the modules are managed by the administrators.

Some examples are given below, and versions displayed may be outdated, so look at the output of the module command directly on the clusters !

The module command works with switches and some switches have sub-commands. These switches are frequently used ;

module avail

List the available modules. Note that if there are multiple versions of a single package that one will be denoted as (default). If you load the module without a version number you will get this default version.

module list

List all the currently loaded modules.

module load MODULE

Load the named module.

module unload MODULE

Unload the named module, going back to the previous state.

module switch OLD-MODULE NEW_MODULE

replacing a module by an other one.

module purge

get to the OS defaults

module help

Get general help information about modules.

module help MODULE

Get help information about the named module.

module show MODULE

Show details about the module, including the changes that loading the module will make to your environment.

module whatis

List all the available modules along with a short description.

1.10. Some comments

The module av command displays all available modules that can be loaded. Applications and corresponding modules are added regularly by the administrators, at the request of users, so take a look when you’re looking for something.

for special cases, for example python, one version is installed and enhanced with packages. If you need special versions numbers of packages, or incompatible versions with the existing ones, the best solution for you is to work with guix.

The module load <MODULE> loads the corresponding MODULE and some variables (like PATH, etc.) of your environment are completed. So you gain access to other versions or new applications.

The module unload MODULE lets you come back to the previous state regarding what was added, even if other modules are still currently loaded or, in between.

1.11. Shortcuts

Some frequently used switches have short versions :

switch li stands for list

switch av stands for avail or available

etc.

1.12. Some examples

1.12.1. Example 1 : one loads and unloads a single module

$ module list
No Modulefiles Currently Loaded.
$ module load gcc/13.1.0
$ module list
Currently Loaded Modulefiles:
 1) gcc/13.1.0
$ module unload gcc/13.1.0
$ module list
No Modulefiles Currently Loaded.

1.12.2. Example 2 : one loads several modules together

$ module load gcc/13.1.0 openmpi/ucx/4.1.5_gcc_8.5.0_ucx_1.14.1_rdma_46.0 gmsh/4.11.1_gnu
Loading openmpi/ucx/4.1.5_gcc_8.5.0_ucx_1.14.1_rdma_46.0
  Loading requirement: rdma/46.0_gnu ucx/1.14.1_gnu
$ module li
Currently Loaded Modulefiles:
 1) gcc/13.1.0      3) ucx/1.14.1_gnu                                     5) gmsh/4.11.1_gnu
 2) rdma/46.0_gnu   4) openmpi/ucx/4.1.5_gcc_8.5.0_ucx_1.14.1_rdma_46.0

As you can see, some other modules have been added to the ones you have selected : they are dependencies and automatically added, as mentioned by the module command.

1.12.3. Example 3 : unload all currently loaded modules

One can use the purge switch

$ module load intel/compiler/2023.1.0 intel/mpi/2021.9.0
Loading compiler version 2023.1.0
Loading tbb version 2021.9.0
Loading compiler-rt version 2023.1.0
  Load "debugger" to debug DPC++ applications with the gdb-oneapi debugger.
  Load "dpl" for additional DPC++ APIs: https://github.com/oneapi-src/oneDPL

Loading intel/compiler/2023.1.0
  Loading requirement: intel/tbb/latest intel/compiler-rt/latest

Loading mpi version 2021.9.0


$ module li
Currently Loaded Modulefiles:
 1) intel/tbb/latest   2) intel/compiler-rt/latest   3) intel/compiler/2023.1.0   4) intel/mpi/2021.9.0


$ module purge
Removing mpi version 2021.9.0
Use `module list` to view any remaining dependent modules.
Removing compiler version 2023.1.0
Use `module list` to view any remaining dependent modules.
  Load "debugger" to debug DPC++ applications with the gdb-oneapi debugger.
  Load "dpl" for additional DPC++ APIs: https://github.com/oneapi-src/oneDPL
Removing compiler-rt version 2023.1.0
Use `module list` to view any remaining dependent modules.
Removing tbb version 2021.9.0
Use `module list` to view any remaining dependent modules.


$ module list
No Modulefiles Currently Loaded.

If you use the unload switch, you get the same result, but you have to write all the module names

1.12.4. Example 4 : one changes the version of the chosen module

If you want to change the version of a module, using a different one, that is available too through the module command, you use the switch switch.

$ module load nvhpc/22.7
$ module li
Currently Loaded Modulefiles:
 1) nvhpc/22.7
$ module switch nvhpc/22.7 nvhpc/23.9
$ module li
Currently Loaded Modulefiles:
 1) nvhpc/23.9