Los módulos a través del comando module nos ayudan a cargar varios software o dependencias de forma rápida y evitando incosistencias.
En nuestro caso lo usarmos para usar/consultar software disponible de forma centralizada para todos los usuarios de HPC en este caso de Drago.
Consultamos la ayuda básica con cualquiera de los siguientes comandos
module --help
man module
Los modulos estan instalados por ramas, daremos soporte a las 2 ultimas ramas, a dia de este manual las ramas vigentes son la 0.3 y la 0.4, siendo la 0.3 la que carga por defecto.
Tambien disponemos de una rama especial para la gestión de ramas de software, desde la que se puede cambiar de una rama a otra, descargando por completo la rama actual y cargando la nueva.
module av
------------------------------------------------------------------------------------------------------ 🖥 Cambio de rama 🖥 ------------------------------------------------------------------------------------------------------
rama0.3 rama0.4
---------------------------------------------------------------------------------------------- ⚛⚛⚛ FOSS 0.3 ⚛⚛⚛ ----------------------------------------------------------------------------------------------
APBS/3.0.0_Linux FEniCS/2019.1.0 GCCcore/12.3.0 NetLogo/6.3.0-64 binutils/2.31.1 foss/2020b mothur/1.48.0
Si queremos cambiar a la rama 0.4 seria con
module load rama0.4
Si queremos mas limpieza, podemos quitar para la sesion una de las categorias de la rama.
Para quitar el software restricted y el campus lo haremos con los siguientes comandos.
module unuse /lustre/opt/restricted/0.3/modules/all/Core
module unuse /lustre/opt/campus/0.3/modules/all/Core
Asi nos aseguraremos que solo usamos software libre (FOSS)
Podemos ver el software disponible que no depende de otro, o que ya tiene cargadas las dependencias necesarias con module av
module av
---------------------------------------------------------------------------------------------- ⚛⚛⚛ FOSS 0.4 ⚛⚛⚛ ----------------------------------------------------------------------------------------------
APBS/3.0.0_Linux CheckM-Database/2015_01_16 GCCcore/13.2.0 NVHPC/25.3-CUDA-12.8.0 (D) cuDNN/8.0.4.30-CUDA-11.1.1 gcccuda/2020b libtool/2.4.7
Autoconf/2.71 Cloudy/23.01 GCCcore/13.3.0 NetLogo/7.0.2-64 cuDNN/8.2.1.32-CUDA-11.3.1 gettext/0.21 mhm/5.13.2
Automake/1.16.5 Cytoscape/3.9.1-Java-11 GCCcore/14.2.0 (D) Nextflow/24.10.2 cuDNN/8.4.1.50-CUDA-11.7.0 gettext/0.21.1 mothur/1.48.3
Autotools/20220317 EntrezDirect/24.4.20250710 GROMACS/2025.2-CUDA-12.6.0 OpenSSL/1.1 cuDNN/8.5.0.96-CUDA-11.7.0 gettext/0.22 ncurses/6.2
BLAST/2.11.0-Linux_x86_64 FEniCSx/0.1 Go/1.22.1 OpenSSL/3 (D) cuDNN/8.9.2.26-CUDA-12.1.1 (D) gettext/0.22.5 (D) ncurses/6.3
BayeScan/2.0.1 FastQC/0.11.9-Java-11 Go/1.23.6 (D) Perl/5.38.0 (D) drep/3.6.2 gfbf/2022b ncurses/6.4
Bison/3.8.2 (D) Fiji/2.14.0-Java-11 IGV/2.19.1-Java-21 RDP-Classifier/2.13-Java-11 ecBuild/3.7.0 gfbf/2023a ncurses/6.5 (D)
CMake/3.18.4 GCC/10.2.0 Java/11.0.27 (11) SAGE/6.4.2 ffnvcodec/11.1.5.2 gfbf/2023b nvompi/2022.07
CUDA/11.3.1 GCC/10.3.0 Java/17.0.15 (17) SeqKit/2.8.2 ffnvcodec/12.0.16.0 gfbf/2024a picard/2.25.1-Java-11
CUDA/11.4.2 GCC/11.2.0 Java/19.0.2 (19) Trimmomatic/0.39-Java-17 ffnvcodec/12.1.14.0 gfbf/2025a (D) pkgconf/1.8.0 (D)
CUDA/11.7.0 GCC/11.3.0 Java/21.0.7 (D:21) USEARCH/11.0.667-i86linux32 ffnvcodec/12.2.72.0 (D) gompi/2020b pplacer/1.1.alpha19
CUDA/11.8.0 GCC/12.2.0 Jmol/16.3.33-Java-17 VarScan/2.4.4-Java-11 flex/2.6.4 (D) gompi/2021a rclone/1.68.1
CUDA/12.0.0 GCC/12.3.0 Julia/1.11.3-linux-x86_64 ant/1.10.14-Java-11 foss/2020b gompi/2021b yambo/5.3.0
CUDA/12.1.1 GCC/13.2.0 M4/1.4.18 ant/1.10.14-Java-21 (D) foss/2021a gompi/2022a zlib/1.2.11
CUDA/12.2.0 GCC/13.3.0 M4/1.4.19 binutils/2.35 foss/2021b gompi/2022b zlib/1.2.12
CUDA/12.4.0 GCC/14.2.0 (D) M4/1.4.20 (D) binutils/2.36.1 foss/2022a gompi/2023a zlib/1.2.13
CUDA/12.6.0 GCCcore/10.2.0 Mamba/23.11.0-0 binutils/2.37 foss/2022b gompi/2023b zlib/1.3.1 (D)
CUDA/12.8.0 GCCcore/10.3.0 Miniconda3/24.7.1-0 binutils/2.38 foss/2023a gompi/2024a
CUDA/12.9.0 (D) GCCcore/11.2.0 NVHPC/22.7-CUDA-11.7.0 binutils/2.39 foss/2023b gompi/2025a (D)
CUDAcore/11.1.1 GCCcore/11.3.0 NVHPC/23.1-CUDA-12.0.0 binutils/2.40 foss/2024a gompic/2020b
CellRanger/9.0.1 GCCcore/12.2.0 NVHPC/23.7-CUDA-12.2.0 binutils/2.42 foss/2025a (D) iimpi/2023b
Cereal/1.3.2 GCCcore/12.3.0 NVHPC/24.9-CUDA-12.6.0 binutils/2.44 (D) fosscuda/2020b intel-compilers/2023.2.1
--------------------------------------------------------------------------------------------- ⚛⚛⚛ Campus 0.4 ⚛⚛⚛ ---------------------------------------------------------------------------------------------
AlphaFold3/3.0.1 GCC/11.2.0 GCCcore/12.3.0 MAGMA-gene-analysis/1.09b Perl/5.38.0 binutils/2.42 foss/2024a gaussian/16.gaussian (D) gompi/2023a pkgconf/1.8.0
Bison/3.8.2 GCC/12.3.0 GCCcore/13.3.0 MAJIQ/2.5.0 SRA-Toolkit/3.2.0 ffnvcodec/12.0.16.0 gaussian/09.gaussian gettext/0.21.1 gompi/2024a zlib/1.2.11
Chimera/1.16-linux_x86_64 GCC/13.3.0 Java/17.0.15 (17) OpenSSL/1.1 binutils/2.37 flex/2.6.4 gaussian/16.gaussian.C01 gettext/0.22.5 ncurses/6.3 zlib/1.2.13
Chimera/1.19-linux_x86_64 (D) GCCcore/11.2.0 M4/1.4.19 OpenSSL/3 binutils/2.40 foss/2023a gaussian/16.gaussian.C02 gfbf/2023a ncurses/6.5 zlib/1.3.1
------------------------------------------------------------------------------------------- ⚛⚛⚛ Restricted 0.4 ⚛⚛⚛ -------------------------------------------------------------------------------------------
Bison/3.8.2 GCCcore/12.2.0 M4/1.4.19 Schrodinger/2024-4 binutils/2.39 flex/2.6.4 iimpi/2025a (D) imkl/2025.1.0 (D) intel-compilers/2025.1.1 (D) intel/2025a (D) zlib/1.2.12
COMSOL/6.4 GCCcore/14.2.0 OpenSSL/1.1 Schrodinger/2026-1 (D) binutils/2.42 iimpi/2022b imkl/2022.2.1 intel-compilers/2022.2.1 intel/2022b pkgconf/1.8.0 zlib/1.3.1
------------------------------------------------------------------------------------------------------ 🖥 Cambio de rama 🖥 ------------------------------------------------------------------------------------------------------
rama0.3 rama0.4 (L)
Where:
L: Module is loaded
Aliases: Aliases exist: foo/1.2.3 (1.2) means that "module load foo/1.2" will load foo/1.2.3
D: Default Module
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".
Tambien podemos mostrar todo el software existente con el comando
module spider
Para buscar un software concreto lo hariamos siguiendo el comando con el software, en este ejemplo el software WPS
module spider WPS
Que ademas nos indica sus dependencias
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
WPS:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Description:
WRF Preprocessing System (WPS) for WRF. The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale numerical weather prediction system designed to serve both operational forecasting and atmospheric
research needs.
Versions:
WPS/4.3.1-dmpar
WPS/4.4-dmpar
WPS/4.6.0-dmpar
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
For detailed information about a specific "WPS" package (including how to load the modules) use the module's full name.
Note that names that have a trailing (E) are extensions provided by other modules.
For example:
$ module spider WPS/4.6.0-dmpar
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
module spider > modules.txt 2>&1
Este comando genera un archivo modules.txt con todos los módulos disponibles.
Posteriormente, con module spider nombre_modulo es posible explorar qué otros módulos son necesarios cargar para utilizar el deseado.
Aportación de Unai Merino Herrán
Para cargar un modulo simplemente
module load "nombre del modulo"
En el caso de que dependa de otro deberemos cargar tambien las dependencias.
Siguiendo el ejemplo de WPS se cargaria asi:
module load GCC/11.2.0
module load OpenMPI/4.1.1
module load WPS
Para comprobar los módulos cargados hacemos:
module list
Para ver la informacion de un modulo ejecutamos (siguiendo con el WPS)
module show WPS
Para descargar los modulos y dejarlo por defecto ejecutamos
module purge
En ocasiones nos interesa cargar una version diferente de algun software que se ha cargado como dependencia de otro, por ejemplo el GCC. Podemos cambiar la versión de un modulo por otra con module swap.
module swap GCC/10.3.0
Esto descargaria la version de GCC que tengamos cargada y cargara la version 10.3.0