---
og:title: Software instalado
---

# Software instalado

El software instalado en los clústers de cómputo depende del uso de variables de entorno para funcionar correctamente, que se fijan a partir de un sistema de módulos. 

Clementina XXI utiliza [LMOD](https://lmod.readthedocs.io/en/latest/) como sistema de módulos.

## Uso básico

- `module avail`: Lista los módulos disponibles.
- `module list`: Lista los módulos cargados.
- `module purge`: Limpia los módulos.
- `module unload <nombre>/<version>`: Carga un módulo.
- `module spider <nombre>/<version>`: Busca módulos **y provee instrucciones de cómo cargarlo**.

## Compiladores

Sólo es posible tener un módulo de compiladores cargado a la vez. Por ejemplo, en caso de tener cargado el módulo `gnu12` que contiene los compiladores de GNU, no es posible cargar los compiladores de Intel/Intel OneAPI mediante el comando `module load intel`.

En ese caso es posible usar el comando `swap` para intercambiar entre ellos. `module swap gnu12 intel`.

## Dependencias

Algunos módulos dependen de que un módulo padre haya sido cargado previamente. Si ejecutamos el comando `module avail` solo son visibles los módulos disponibles a partir de los ya cargados.

Por ejemplo, luego de ejecutar `module purge` solamente se encuentran disponibles con los módulos sin ninguna dependencia.

```
$ module avail

--------------------------------------------------------------------------------- /opt/ohpc/pub/modulefiles ---------------------------------------------------------------------------------
   autotools            gnu12/12.3.0      intel/2021.2.0.rpmnew        intel/2024.1.0.rpmsave    intel/2024.2.1      papi/5.7.0        singularity/3.7.1
   charliecloud/0.15    gnu9/9.4.0        intel/2021.2.0               intel/2024.1.0            libfabric/1.19.0    papi/6.0.0 (D)    ucx/1.15.0
   cmake/3.24.2         hwloc/2.7.2       intel/2023.2.1.rpmnew        intel/2024.1.2            ohpc                pmix/4.2.9        wrf/3.8.1
   gnu/12.3.0           intel/2021.1.1    intel/2023.2.1        (D)    intel/2024.2              os                  prun/2.2

  Where:
   D:  Default Module

If the avail list is too long consider trying:

"module --default avail" or "ml -d av" to just list the default modules.
"module overview" or "ml ov" to display the number of modules for each name.

Use "module spider" to find all possible modules and extensions.
Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".

```

Si ahora se carga, por ejemplo, `module load intel`, aparecen más módulos disponibles cuando se ejecuta `module avail`.

```
$ module load intel
$ module avail
------------------------------ /opt/ohpc/pub/moduledeps/oneapi ------------------------------
   advisor/2024.3                          dpl/2022.5
   ccl/2021.12.0                           dpl/2022.6                  (D)
   ccl/2021.13.1                  (D)      icc/2023.2.1
   clck/2021.7.3                           icc32/2023.2.1
   compiler-intel-llvm/2024.1.2            ifort/2024.1.2
   compiler-intel-llvm/2024.2.1   (D)      ifort/2024.2.1              (D)
   compiler-intel-llvm32/2024.1.2          ifort32/2024.1.2
   compiler-intel-llvm32/2024.2.1 (D)      ifort32/2024.2.1            (D)
   compiler-rt/2021.2.0                    inspector/2024.2
   compiler-rt/2023.2.1           (L,D)    intel_ipp_intel64/2021.11
   compiler-rt/2024.1.2                    intel_ipp_intel64/2021.12   (D)
   compiler-rt/2024.2.1                    intel_ippcp_intel64/2021.11
   compiler-rt32/2021.2.0                  intel_ippcp_intel64/2021.12 (D)
   compiler-rt32/2023.2.1                  itac/2022.1
   compiler-rt32/2024.1.2                  itac/2022.2                 (D)
   compiler-rt32/2024.2.1         (D)      mkl/2023.2.0                (L,D)
   compiler/2021.2.0                       mkl/2024.1
   compiler/2023.2.1              (L,D)    mkl/2024.2
   compiler/2024.1.2                       mkl32/2023.2.0
   compiler/2024.2.1                       mkl32/2024.1
   compiler32/2021.2.0                     mkl32/2024.2                (D)
   compiler32/2023.2.1                     mpi/2021.10.0
   compiler32/2024.1.2                     mpi/2021.12
   compiler32/2024.2.1            (D)      mpi/2021.13                 (D)
   debugger/2023.2.0              (D)      oclfpga/2023.2.1            (L)
   debugger/2024.2.1                       tbb/2021.10.0               (L,D)
   dev-utilities/2021.10.0                 tbb/2021.12
   dev-utilities/2024.0.0                  tbb/2021.13
   dev-utilities/2024.2.0         (D)      tbb32/2021.10.0
   dnnl/3.5.0                              vpl/2023.1.0
   dpct/2024.2.0                           vtune/2024.3
   dpl/2022.2.0

------------------------------ /opt/ohpc/pub/moduledeps/intel -------------------------------
   hdf5/1.10.8        mvapich2/2.3.7          openmpi4/4.1.6      scotch/6.0.6
   likwid/5.2.2       netcdf-cxx/4.3.1        pdtoolkit/3.25.1    superlu/5.2.1
   metis/5.1.0        netcdf-fortran/4.6.0    plasma/21.8.29
   mpich/3.4.3-ofi    netcdf/4.9.0            py3-numpy/1.19.5

--------------------------------- /opt/ohpc/pub/modulefiles ---------------------------------
   autotools                intel/2021.2.0                  ohpc
   charliecloud/0.15        intel/2023.2.1.rpmnew           os
   cmake/3.24.2             intel/2023.2.1         (L,D)    papi/5.7.0
   gnu/12.3.0               intel/2024.1.0.rpmsave          papi/6.0.0        (D)
   gnu12/12.3.0             intel/2024.1.0                  pmix/4.2.9
   gnu9/9.4.0               intel/2024.1.2                  prun/2.2
   hwloc/2.7.2              intel/2024.2                    singularity/3.7.1
   intel/2021.1.1           intel/2024.2.1                  ucx/1.15.0
   intel/2021.2.0.rpmnew    libfabric/1.19.0                wrf/3.8.1
```

Una sección de módulos tiene como header `/opt/ohpc/pub/moduledeps/intel`, los módulos compilados con `intel`, mientras que la otra da acceso a las utilidades de `Intel OneAPI`. De manera similar, al cargar una implementación de MPI (p.ej. `openmpi4`) se habilitan los módulos compilados con `intel`+`openmpi4`. 

