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.
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:
La versión de los compiladores adicionales que se carga por defecto con el
paquete modules
es intel/10.1
.
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
.
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.
BioPerl - BWA - Dalton - Fuse - Gaussian - Gnuplot - maq - Matlab - mira - mpiBLAST - NAMD - NWChem - NWChem - R - Situs - velvet
VMD - XDSmodules
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.
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.
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.
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.
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
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 -------------------------------------------------------------------
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.ownde 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