User Tools

Site Tools


wiki:tutorial_module

Environment Modules


Environment Modules es una herramienta para la administración de diferentes entorno en sistemas Unix o Linux. Un entorno es la configuración necesaria del shell para que una aplicación pueda ejecutarse correctamente en un sistema Unix o Linux si asi lo requiere la aplicación.

Environment Modules permite cargar y descargar módulos dinámicamente con la información necesaria para la configuración, muchas veces esta información son valores variables, path de librerias, comandos del shell, cargar otros modulos, etc.

Lo expuesto anteriormente son las dos ventajas principales de Environment Modules: poder tener varias configuraciones de las aplicaciones para diferentes versiones o casos (con la carga y descarga de módulos) , y la independencia del shell (posee su propios comandos).

Dependencias entre los módulos

Las configuraciones de entornos pueden estar organizadas en diferentes niveles de módulos y entre ellos tener dependencias. O sea se necesita cargar un modulo en particular para cargar otro dependiente del primero.

Por ejemplo para una aplicación que necesita ser compilada en GNU gcc y utiliza bibliotecas externas, primero se cargarían el módulo de compilador GNU y a continuación los módulos de las bibliotecas.

En el cluster Clemente, los modulos se encuentran organizados por niveles:

1) Según la arquitectura del procesador.
2) Según la aplicación o compiladores.


Tips: Al iniciar en Clemente el primer módulo que se debe cargar es aquel que indica arquitectura.


Comandos Environment Modules


Para mostrar los módulos disponibles utilice el comando "module avail".

  • [usuario@clemente ~]$ module avail
  •  
  • ----------------------------- /opt/modules/archs -----------------------------
  • clemente   gpu   mirta3

Para cargar una arquitectura se debe utilizar el comando "module load <module>".

  • [usuario@clemente ~]$ module load clemente

Una vez cargada una arquitectura podremos ver los nuevos módulos disponibles a nivel de aplicaciones y compiladores

  • [usuario@clemente ~]$ module avail
  •  
  • ----------------------------- /opt/modules/archs -----------------------------
  • clemente   gpu   mirta3
  • --------------------- /opt/modules/clemente/compiladores ---------------------
  • gcc/7   intel/2018
  • ----------------------------- /opt/modules/clemente/gcc/7/aplicaciones -----------------------------
  • anaconda2/5.0.0  casa/5.1.2  gadget/2  im2shape/2  psfex/3.17.1  sextractor/2.19.5
  • anaconda3/5.0.0  flash/4.4  galsim/1.6  im3shape/3  python/2.7.14


Para ver que módulos tenemos cargados actualmente en nuestro entorno "module list"

  • [usuario@clemente ~]$ module load gcc/7
  • [usuario@clemente ~]$ module list
  •  
  • Currently Loaded Modulefiles:
  •  1) clemente  2) /opt/modules/clemente/gcc/7/sistema/libgcc/7  3) gcc/7

Tips: hay módulos que cargan otros módulos

Si se cargan módulos incompatibles, modules avisará

  • [usuario@clemente ~]$ module load clemente
  • [usuario@clemente ~]$ module load mirta3
  •  
  • WARNING: mirta3 cannot be loaded due to a conflict.
  • HINT: Might try "module unload clemente" first.

Para descargar un módulo activo utilizamos el comando "module unload <module>" .

Para descargar todos los módulos activos utilizamos el comando "module purge" .

Para ver el contenido de un módulo utilizamos el comando "module display <module>" o "module show <modulo>".

  • [usuario@clemente ~]$ module display gcc/7
  •  
  • -----------------------------------------------------------
  • /opt/modules/clemente/compiladores/gcc/7:
  • module-whatis The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go, as well as libraries for these languages.
  • prepend-path PATH /opt/spack/opt/spack/linux-centos7-x86_64/gcc-4.8.5/gcc-7.2.0-l4hli7sr4wtb5bdzdvgpdwujh4amdkj2/bin
  • setenv CC /opt/spack/opt/spack/linux-centos7-x86_64/gcc-4.8.5/gcc-7.2.0-l4hli7sr4wtb5bdzdvgpdwujh4amdkj2/bin/gcc
  • setenv FC /opt/spack/opt/spack/linux-centos7-x86_64/gcc-4.8.5/gcc-7.2.0-l4hli7sr4wtb5bdzdvgpdwujh4amdkj2/bin/gfortran
  • setenv AR gcc-ar
  • setenv CXX g++
  • setenv F90 gfortran
  • setenv CXXFLAGS -O3 -march=broadwell
  • -----------------------------------------------------------

Para ver información que proporciona el programador del módulo "module whait <module>" .

  • [usuario@clemente ~]$ module whatis intel/2018
  •  
  • ---------------------- /opt/modules/clemente/compiladores ----------------------
  •          intel/2018: icc/icpc/ifort 16.0.4


Si queremos ver una pequeña ayuda de los comando de Environment Modules utilice el comando "module help" .

wiki/tutorial_module.txt · Last modified: 2018/12/11 15:05 (external edit)