---
og:title: Software preinstalado
---

# 🧰 Software preinstalado

El acceso a los programas instalados en los clusters se realiza a través
de [Environment Modules](http://modules.sourceforge.net/).

El comando `module` se utiliza para cargar y gestionar módulos de entorno.
Los módulos son conjuntos de variables de entorno y configuraciones
que permiten a los usuarios cambiar fácilmente entre diferentes
entornos de software sin tener que configurar manualmente cada variable.

## Resumen de comandos

:module av: Ver los módulos disponibles
:module load: Cargar un módulo
:module list: Ver una lista de módulos cargados
:module purge: Quitar todos los módulos cargados

## Ejemplo: Cargar compiladores Fortran

%TODO: cargar tambien el modulo openmpi

:::{asciinema} yNc2DuCGJgN6gB3AqKtFS7kro
:::

## Preguntas frecuentes

:::{dropdown} No veo ninguna biblioteca disponible
Para visualizar las bibliotecas instaladas, es necesario cargar primero el módulo del compilador correspondiente.
El sistema organiza el software de forma jerárquica para garantizar la compatibilidad.
:::

:::{dropdown} La biblioteca o aplicación que necesito no está instalada
Comuníquese con el equipo de [soporte](soporte) detallando su requerimiento para evaluar la instalación en el cluster.
:::

:::{dropdown} ¿Qué flags de compilación ofrecen el mejor rendimiento?
Cada módulo de compilador define variables de entorno con optimizaciones recomendadas (aunque conservadoras).
Puede consultarlas ejecutando `env | grep FLAGS` una vez cargado el módulo correspondiente.
:::

:::{dropdown} ¿Por qué no se instalan versiones más recientes de ciertas herramientas?
Las versiones elegidas son las más nuevas posibles al momento de la
instalación del software del cluster. Agregar versiones de compiladores
multiplica la cantidad de bibliotecas a compilar y para las que dar
soporte, por lo que sólo se hace de ser extremadamente necesario.
:::

:::{dropdown} ¿Por qué no cuentan con Clang/LLVM?
Porque la suite de compiladores de LLVM no tiene un compilador Fortran
estable todavía. Estamos siguiendo el progreso de Flang.
:::

:::{dropdown} ¿Cómo utilizo NVIDIA CUDA para compilar o ejecutar mis aplicaciones?
Disponemos de dos opciones según el compilador que prefiera:
* **NVIDIA (NVHPC)**
    ```console
    $ module load nvhpc
    ```
* **GNU (GCC)**
    ```console
    $ module load gcc cuda
    ```
:::

:::{dropdown} ¿Por qué utilizan OpenMPI en lugar de MVAPICH2 o Intel MPI?
Priorizamos la homogeneidad entre los distintos clusters.
OpenMPI ofrece la mejor compatibilidad general con aplicaciones y bibliotecas.
:::

:::{dropdown} Necesito una versión de compilador distinta a las disponibles
Los usuarios pueden compilar e instalar sus propios _toolchains_ en sus _homes_.
Para facilitar este proceso, recomendamos el uso de [Spack](/tutoriales/spack).
:::

:::{dropdown} El Python del sistema es antiguo o no tiene los módulos que necesito

Debido a la diversidad de requerimientos, recomendamos que cada usuario gestione su propio entorno de Python en su _home_.
La herramienta recomendada para esto es [Miniconda](https://conda.io/miniconda.html),
que permite instalar versiones específicas y paquetes sin conflictos.
:::
