Software


La mayoría de las aplicaciones disponibles están instaladas en el directorio /opt de los subclústeres correspondientes. Las variables de entorno para distintas aplicaciones se configuran con el paquete modules, de modo que los usuarios que deseen modificar dichas variables deben consultar su descripción más abajo. Para cualquier duda o sugerencia, por favor, contacte con el técnico del sistema.

Software instalado

Compiladores e intérpretes de lenguajes

La distribución de Red Hat Enterprise Linux 4.7 contiene por defecto los compiladores GNU gcc 3.4.6 y gfortran (basado éste en gcc 4.1.2).

El subclúster CMI tiene una versión adicional generada por AMD para sus procesadores Barcelona que resulta más eficiente que el gcc suministrado por el sistema operativo. Esta versión se encuentra disponible con el paquete modules.

Adicionalmente, el Clúster de Modelización tiene instalados los siguientes compiladores:

Intel - AMD - Portland group

Así como versiones adicionales de los intérpretes:

Perl

La versión de los compiladores adicionales que se carga por defecto con el paquete modules es intel/10.1.

Librerías matemáticas

El clúster de modelización contiene distintas versiones de las siguientes librerías matemáticas:

ACML - ATLAS - BLAS - FFTW - LAPACK - MKL - ScaLAPACK

El paquete modules carga por defecto las librerías MKL versión 10.0.

Librerías de cálculo paralelo

HP-MPI - Intel-MPI - MPICH - MPICH2 - OpenMPI

En el subclúster cmi (Infiniband) se cargan por defecto las variables de entorno para las librerías HP-MPI, mientras que en los subclústeres cmq y cmd la versión por defecto es Intel-MPI.

Otras librerías

NetCDF - proj.4

Programas

BioPerl - BWA - Dalton - Fuse - Gaussian - Gnuplot - maq - Matlab - mira - mpiBLAST - NAMD - NWChem - NWChem - R - Situs - velvet

VMD - XDS

Bases de datos

PDB

El paquete modules

El clúster tiene disponible para los usuarios una cantidad creciente de software, ya sean compiladores, librerías o aplicaciones. Este software puede requerir para su correcto funcionamiento un entorno específico constituido por diversas variables de sistema: así, por ejemplo, un determinado programa puede necesitar una versión determinada de unas librerías y un compilador específico. La opción inmediata para conseguir esto es modificar las variables de entorno de cada sesión (por ejemplo, la variable PATH).

Cuando el numero de posibles configuraciones crece, la complejidad del mantenimento de las mismas crece, por lo que, en el clúster, esta función es desrrollada por un software denominado modules . Modules es un software que se encarga de gestionar el entorno de la sesión en la que se trabaja. La principal función del mismo en el clúster es editar las variables de entorno de la sesión para que apunten a la dirección adecuada aunque, dependiendo de los requerimientos del software, puede no ser la única.

Setup

Para usar el paquete modules, los usuarios tienen definida una línea en su fichero .bashrc o .cshrc:

module add null

null puede (y debe) ser sustituído por los paquetes que el usuario desee que se carguen por defecto al comenzar la sesión.

Uso

Adición de un software

El el caso de que el usuario desee utilizar un software que esté gestionado por el sistema module, sólo tiene que utilizar el comando:

module add mkl/8.1

En este caso, la versión 8.1 de las librerías matemáticas de Intel MKL estaría disponible tanto para la compilación como para la ejecución de programas.

Eliminación de software

En el caso que el usuario no desee más tener disponibles esas librerías, el comando:

module rm mkl/8.1

eliminará toda referencia a esas librerías sin afectar al resto del entorno.

Cambio de versión de software

Una de las funciones más útiles del sistema es la posibilidad de cambiar la versión de software automáticamente con una única instrucción:

module swap mkl/8.1 mkl/9.0

Módulos disponibles en el sistema

Cada una de las posibles configuraciones recibe el nombre de módulo. Los módulos disponibles en un momento determinado se pueden ver con:

[usuario@jaula04 ]$ module avail 
------------------------------------------------------ /opt/Modules/3.2.6//modulefiles -------------------------------------------------------
dot          java/jde.1.4.1 module-cvs                 namd/2.6      python/2.6.1
gaussian/03  java/jde.1.5.0 module-info                null          situs/2.3
intel/10.1   mkl/10.0       modules nwchem/4.7         use.own
intel/9.0    mkl/8.1        mpi/hp-mpi                 pgi/6.0
intelmpi/3.1 mkl/9.0        mpi/mpich/1.2.7-pgi-shared python/2.5.1

Como se puede ver, varios paquetes de software tienen más de una versión y este sistema permite seleccionarlos de una manera sencilla y automática.

El software que cada módulo instala se puede ver con

[usuario@jaula04 ~]$ module whatis intel/10.1
intel/10.1           : Intel C & Fortran compiler version 10.1.008

Y los módulos que se encuentran actualmente usados con:

[usuario@jaula04 ~]$ module list
Currently Loaded Modulefiles:
1) intel/10.1 2) mkl/10.0 3) mpi/hp-mpi

Algunos módulos pueden tener información sobre el uso del software (licencias, limitaciones, operaciones adicionales que debe realizar el usuario para ejecutar el software,...). Esta información se puede consultar con el comando help:

[usuario@jaula04 ~]$ module help blast/2.2.22

----------- Module Specific Help for 'blast/2.2.22' ---------------

Binaries from NCBI
Remember to set BLASTDB & BLASTMAT environment variables.
Documentation can be read using:
	elinks /opt/blast/2.2.22/doc/index.html

El usuario también puede ver las modificaciones de las variables de entorno que realiza un módulo con el comando show:

[usuario@jaula04 ~]$ module show intel/9.0
-------------------------------------------------------------------
/opt/Modules/3.2.6//modulefiles/intel/9.0:

module-whatis	 Intel C & Fortran compiler version 9.0 
prepend-path	 PATH /opt/intel/cce/9.0/bin:/opt/intel/fce/9.0/bin 
prepend-path	 LD_LIBRARY_PATH /opt/intel/cce/9.0/lib:/opt/intel/fce/9.0/lib 
prepend-path	 MANPATH /opt/intel/cce/9.0/man:/opt/intel/fce/9.0/man 
prepend-path	 INTEL_LICENSE_FILE /opt/intel/cce/9.0/licenses:/opt/intel/fce/9.0/licenses:/opt/intel/licenses 
setenv		 MPI_F77 ifort 
setenv		 MPI_F90 ifort 
setenv		 MPI_CC icc 
setenv		 MPI_CXX icc 
-------------------------------------------------------------------

Módulos propios

El usuario que lo desee puede definir sus propios módulos con sus definiciones para su programas. Para ello, debe ejecutar la orden:

module add use.own
de manera que se creará el directorio privatemodules en el $HOME del usuario. Todos módulos que se creen deben ir en ese directorio. Para utilizar dichos módulos, el usuario debe añadir este directorio al conjunto de repositorios de modulos con
module use $HOME/privatemodules
Última actualización: 22 marzo 2012