Herramientas de usuario

Herramientas del sitio


hpc:software_instalado

Entorno predeterminado (Default environment)

El sistema operativo en todos los nodos del clúster MAMBÍ actualmente es CentOS 7.

El entorno de usuario se configura mediante módulos de entorno, utilizando Lmod, basado en Lua el cuál proporciona una manera conveniente de cambiar dinámicamente el entorno de los usuarios a través de módulos. Esto incluye agregar o quitar directorios fácilmente a la variable de entorno PATH. Los archivos de modulos para los paquetes de biblioteca proporcionan variables de entorno que especifican dónde se pueden encontrar los archivos de biblioteca y de cabecera.

Lmod se utiliza de conjunto con el proyecto EasyBuild como gestor de paquetes. Este permite instalar los programas y crear el módulo con las variables de entorno necesarias para su ejecución.

Un archivo de módulo contiene la información necesaria para permitir que un usuario ejecute una aplicación particular o proporcione acceso a una biblioteca en particular. Todo esto se puede hacer dinámicamente sin salir y volver a entrar a la sesión de trabajo. Los archivos de módulo (Modulefiles) modifican el camino de las aplicaciones para facilitar el acceso a las mismas modificando variables del sistema tales como:

  • PATH
  • MANPATH
  • LD_LIBRARY_PATH
  • LD_PRELOAD
  • LD_LIBRARY_LOAD
  • LD_RUN_PATH

A través de la utilización de módulos usted también puede cambiar muy fácilmente entre diferentes versiones de un paquete.

Es posible cambiar el entorno de trabajo, editando el archivo de inicialización del shell ~/.bashrc. Tenga en cuenta que esto afectará todas las sesiones de inicio de sesión futuras y todos los trabajos por lotes que aún no se han iniciado.

Listar módulos cargados

En cualquier momento se puede comprobar los módulos cargados actualmente ejecutando lo siguiente:

module list 

o

ml list 

Esto le mostrará todos los módulos que han sido cargados en el sistema. En el caso del módulo de Python, este necesita de otros módulos para funcionar:

Currently Loaded Modules:
  1) GCCcore/5.4.0                   10) ScaLAPACK/2.0.2-gompi-2016  19) freetype/2.6.5-foss-2016b
  2) binutils/2.26-GCCcore-5.4.0     11) foss/2016b                  20) expat/2.2.0-foss-2016b
  3) GCC/5.4.0-2.26                  12) bzip2/1.0.6-foss-2016b      21) fontconfig/2.12.1-foss-2016b
  4) numactl/2.0.11-GCC-5.4.0-2.26   13) zlib/1.2.8-foss-2016b       22) X11/20160819-foss-2016b
  5) hwloc/1.11.3-GCC-5.4.0-2.26     14) ncurses/6.0-foss-2016b      23) Tk/8.6.5-foss-2016b
  6) OpenMPI/1.10.3-GCC-5.4.0-2.26   15) libreadline/6.3-foss-2016b  24) GMP/6.1.1-foss-2016b
  7) OpenBLAS/0.2.18-GCC-5.4.0-2.26  16) Tcl/8.6.5-foss-2016b        25) XZ/5.2.2-foss-2016b
  8) gompi/2016b                     17) SQLite/3.13.0-foss-2016b    26) libffi/3.2.1-foss-2016b
  9) FFTW/3.3.4-gompi-2016b          18) libpng/1.6.24-foss-2016b    27) Python/3.5.2-foss-2016b

Listar módulos disponibles

Para ejecutar cualquier trabajo en el clúster usted tiene dos posibilidades: utilizar un programa compilado por usted o utilizar uno de los programas instalados en el sistema.

Para conocer los programas que se encuentran disponibles usted pude utilizar el siguiente comando:

[user@login ~]$ module avail
                                                           cairo/1.14.6-foss-2016b                     (D)
   ATK/2.20.0-foss-2016a                                   expat/2.1.1-foss-2016a
   Autoconf/2.69-foss-2016a                                expat/2.1.1-foss-2016b
   Autoconf/2.69-foss-2016b                                expat/2.2.0-foss-2016b                      (D)
   Autoconf/2.69-GNU-4.9.3-2.25                            flex/2.5.37-foss-2016a
   Autoconf/2.69                                    (D)    flex/2.5.39-GCC-4.9.3-binutils-2.25
   Automake/1.15-foss-2016a                                flex/2.5.39-GCCcore-4.9.3
   Automake/1.15-foss-2016b                                flex/2.5.39
   Automake/1.15-GNU-4.9.3-2.25                            flex/2.6.0-foss-2016a
   Automake/1.15                                    (D)    flex/2.6.0-foss-2016b
   Autotools/20150215-foss-2016a                           flex/2.6.0-GCCcore-5.4.0
   Autotools/20150215-foss-2016b                           flex/2.6.0
   Autotools/20150215-GNU-4.9.3-2.25                       flex/2.6.3-GCCcore-6.3.0                    (D)
   Autotools/20150215                               (D)    fontconfig/2.11.95-foss-2016a

NOTA: Cuando existen varias versiones de un programa instalado, puede ver en la parte derecha de la columna el identificador (D). Eso quiere decir que es el módulo por defecto y el que se cargaría si no se específica la versión.

Lmod utiliza un archivo de cache que en ocasiones hace que el usuario no vea los modulos instalados recientemente. Para esto elimine el archivo:

$ rm -rf ~/.lmod.d/.cache

y automaticamente Lmod lo creará actualizado.

Si el programa que usted necesita no se encuentra en el listado que se muestra al ejecutar el comando anterior, usted puede contactar a nuestro equipo técnico.

Ver información de un módulo

Usted puede ver los detalles de un módulo ejecutando el siguiente comando:

module show CUDA/8.0.61

Esto mostrará todas las variables que el módulo va a modificar al ser cargado en el sistema, su salda sería la siguiente:

------------------------------------------------------------------
   /opt/easybuild/modules/all/CUDA/8.0.61.lua:
------------------------------------------------------------------
help([[
Description
===========
CUDA (formerly Compute Unified Device Architecture) is a parallel
 computing platform and programming model created by NVIDIA and implemented by the
 graphics processing units (GPUs) that they produce. CUDA gives developers access
 to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.


More information
================
 - Homepage: https://developer.nvidia.com/cuda-toolkit
]])
whatis("Description: CUDA (formerly Compute Unified Device Architecture) is a parallel
 computing platform and programming model created by NVIDIA and implemented by the
 graphics processing units (GPUs) that they produce. CUDA gives developers access
 to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs.")
whatis("Homepage: https://developer.nvidia.com/cuda-toolkit")
conflict("CUDA")
prepend_path("CPATH","/opt/easybuild/software/CUDA/8.0.61/include")
prepend_path("CUDA_HOME","/opt/easybuild/software/CUDA/8.0.61")
prepend_path("CUDA_PATH","/opt/easybuild/software/CUDA/8.0.61")
prepend_path("LD_LIBRARY_PATH","/opt/easybuild/software/CUDA/8.0.61/lib64")
prepend_path("LIBRARY_PATH","/opt/easybuild/software/CUDA/8.0.61/lib64")
prepend_path("PATH","/opt/easybuild/software/CUDA/8.0.61/bin")
setenv("EBROOTCUDA","/opt/easybuild/software/CUDA/8.0.61")
setenv("EBVERSIONCUDA","8.0.61")
setenv("EBDEVELCUDA","/opt/easybuild/software/CUDA/8.0.61/easybuild/CUDA-8.0.61-easybuild-devel")
setenv("CUDA_HOME","/opt/easybuild/software/CUDA/8.0.61")
prepend_path("PATH","/opt/easybuild/software/CUDA/8.0.61")

Cargar un módulo

Para cargar un módulo de los existentes solo debe invocar el comando module load programa/versión o ml load programa/versión que es una forma más simplificada.

En este ejemplo, cargaremos el módulo Python 3.5.2. Previo a cargar el módulo podemos comprobar que el único intérprete Python disponible en el sistema es la versión 2.7.5

[user@login ~]$ python --version
Python 2.7.5

Cargar el módulo

[user@login ~]$ module load  Python/3.5.2-foss-2016b

Compruebe nuevamente la versión de Python

[user@login ~]$ python --version
Python 3.5.2
hpc/software_instalado.txt · Última modificación: 2018/03/29 11:41 por jrbosch