===== Información del software disponible =====
===== Compiladores =====
==== GCC ====
| [[http://gcc.gnu.org/]] ||
^ Versión | $ gcc --version
gcc (Debian 4.7.2-5) 4.7.2
|
^ Módulo | - (nativo del sistema) |
==== Java ====
| [[http://www.java.com/es/download/]] ||
^ Versión | $ java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
|
^ Módulo | module load jdk
|
^ Versión | $ java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
|
^ Módulo | module load jdk/1.8.0_25
|
El tamaño del //heap// de JAVA está limitado al 25% del límite de memoria de la correspondiente cola y, en cualquier caso, con un **tamaño máximo de 8 GB**. Esta limitación garantiza que las aplicaciones JAVA no consuman más recursos de los asignados.
Los usuarios pueden utilizar otros tamaños de //heap// en sus trabajos si modifican, antes de ejecutar JAVA, el valor de la opción ''-Xmx'' de JAVA a través de la variable ''_JAVA_OPTIONS''. Por ejemplo, si queremos que el //heap// tenga 16 GB, el comando sería:
export _JAVA_OPTIONS=-Xmx16777216K
==== Python ====
| [[http://www.python.org/]] ||
^ Versión | $ python --version
Python 2.7.3
|
^ Módulo | - (nativo del sistema) |
^ :!: Paquetes | En en sistema solo está instalado el sistema base: \\ Los usuarios deben instalar otros paquetes en su ''$HOME'' |
Es posible instalar cualquier paquete presente en el [[http://pypi.python.org/pypi|índice de paquetes de python]]. A continuación mostramos un ejemplo de instalación/actualización/desinstalación del paquete ''pywavelets'' en el ''$HOME'' de usuario del clúster ''ctcomp2''. Para evitar potenciales problemas, se recomienda realizar la instalación de paquetes en una __sesión //interactiva// en el ''frontend''__.
Si obtenemos un error:
Please install a more recent version first, using
'easy_install -U distribute'.
Debemos ejecutar el comando ''easy_install -U --user distribute'', para actualizar la base de datos en el espacio de usuario.
== Instalación ==
Ejecutar el siguiente comando en bash:
python -m pip install --user pywavelets
== Actualización ==
Ejecutar el siguiente comando en bash:
python -m pip install --upgrade pywavelets
== Desinstalación ==
Ejecutar el siguiente comando en bash:
python -m pip uninstall pywavelets
===== Librerías computacionales =====
==== MATLAB ====
| [[http://www.mathworks.es/products/matlab/]] ||
^ Versión | R2011a |
^ ::: | R2012a |
^ Módulo | module load matlab/R2011a
module load matlab/R2012a
|
^ Comentarios |Es posible que ejecuciones largas aparezca el siguiente //warning//:\\ ''Your MATLAB session has timed out. All license keys have been returned.''\\ Aparentemente, este //warning// no afecta a las ejecuciones activas de MATLAB.|
^ ::: |MATLAB emplea internamente, y de manera transparente al usuario, threads para paralelizar ciertas operaciones, por lo que se puede utilizar reservando varios núcleos computacionales dentro de un mismo nodo. Sin embargo, en las versiones instaladas no es posible controlar esta característica, por lo que MATLAB utiliza todos los recursos del nodo asignado, independientemente de los recursos solicitados. Para evitar posibles cancelaciones debido a un uso indebido de los recursos asignados, __se recomienda a los usuarios utilizar el paralelismo implícito de MATLAB solo cuando se reserve en exclusividad un nodo del clúster__. En cualquier otro caso, se recomienda solicitar únicamente un núcleo computacional y utilizar la opción ''-singleCompThread'', que desactiva el paralelismo implícito de MATLAB para realizar una ejecución secuencial. En este ejemplo, el nombre del script es ''test.m''.|
#!/bin/bash
#PBS -l nodes=1:ppn=1,walltime=1:00:00
#PBS -N ej-MATLAB
cd $PBS_O_WORKDIR
module load matlab
matlab -r test -nodisplay -nojvm -singleCompThread
# -r: indicar el fichero a ejecutar (sin .m)
# IMPORTANTE: incluir la orden quit al final del fichero
# -nodisplay: sin display X.
# -nosplash: sin pantalla inicial (OPCIONAL)
# -nojvm: sin entorno java (OPCIONAL)
# -singleCompThread: ejecuta MATLAB secuencialmente
==== Octave ====
| [[https://www.gnu.org/software/octave/]] ||
^ Versión | 3.6.2 |
^ Módulo | - (nativo del sistema) |
^ Comentarios | En en sistema solo está instalado el sistema base: \\ Los usuarios deben instalar otros paquetes en su ''$HOME''|
Es posible instalar cualquier paquete presente en el [[http://octave.sourceforge.net/packages.php|índice de paquetes de octave]]. A continuación mostramos un ejemplo de instalación del paquete ''image'' en el ''$HOME'' de usuario del clúster ''ctcomp2'', utilizando una __sesión //interactiva// (''qsub -I -q interactive'')__.
* Iniciamos una sesión ''octave'':
octave
* Definimos el lugar de instalación de los paquetes en el ''$HOME'' de usuario (en este ejemplo, instalaremos los paquetes en el directorio ''/home/local/my.user.name/.octave-pkgs''):
pkg prefix /home/local/my.user.name/.octave-pkgs /home/local/my.user.name/octave
* Invocamos al gestor de paquetes de Octave (''dpk'') e instalamos el paquete ''image'' (también instalamos las depencias):
pkg install -local -forge control
pkg install -local -forge general
pkg install -local -forge specfun
pkg install -local -forge signal
pkg install -local -forge image
* Para usar los paquetes instalados en una sesión de Octave, simplemente hai que invocarlos a través del gestor de paquetes de Octave:
pkg load image
==== R ====
| http://cran.r-project.org/ ||
^ Versión | 2.15.2 |
| ::: | 3.2.2 |
| ::: | 3.3.1 |
| ::: | 3.4.0 |
^ Módulo | module load R/2.15.2 module load R/3.2.2 module load R/3.3.1 module load R/3.4.0
|
^ :!: Paquetes | Solo está instalado el sistema base: \\ Los usuarios deben instalar otros paquetes en su ''$HOME''. |
Cómo instalar paquetes R:
Ejemplo de instalación del paquete ''nnet'' en el ''$HOME'' de usuario del clúster ''ctcomp2''. Para evitar potenciales problemas, se recomienda realizar la instalación de paquetes en unha __sesión //interactiva// en el ''frontend''__.
- Crear un directorio ''~/libR'':
mkdir ~/libR
- Iniciamos una [[centro:servizos:cluster_de_computacion_hpc_ctcomp2#Ejecuciones interactivas|sesión interactiva]]:
qsub -I -q interactive
- Arrancar el entorno R:
module load R
R
- Ejecutar el siguiente comando dentro de R:
install.packages("nnet",lib="~/libR/", repos="http://cran.es.r-project.org/")
- Para usar un paquete instalado en ''~/libR/'', ejecutar dentro de R:
library("nnet", lib.loc="~/libR/")
==== MOSES ====
| [[http://www.statmt.org/moses/]] ||
^ Versión |2.1.1 |
^ ::: |3.0 |
^ Módulo | module load moses/2.1.1
module load moses3/3.0
|
==== ACML (AMD Core Math Library) ====
| [[http://developer.amd.com/tools/cpu-development/amd-core-math-library-acml/]] ||
^ Versión | 5.2.0_64 gfortran (compilador GCC) |
^ Módulo | module load acml/5.2.0_64
module load acmlacml/5.2.0_64_fma4
module load acmlacml/5.2.0_64_mp
module load acmlacml/5.2.0_64_mp_fma4
|
^ ::: | Versión por defecto: ''acml/5.2.0_64'' |
^ Comentarios | ''mp'': //multiprocessor// \\ ''fma4'': //fused multiply–add (FMA) operations// ([[http://en.wikipedia.org/wiki/FMA_instruction_set|wikipedia]]) \\ Versiones incompatibles (sólo uno de los módulos puede estar activo) \\ El frontend no soporta FMA4 |
==== FFTW ====
| [[http://fftw.org/]] ||
^ Versión | 3.3.3 |
^ Módulo |
module load fftw
|
==== WFDB ====
| [[http://www.physionet.org/physiotools/wfdb.shtml]] ||
^ Versión | 10.5.18 |
^ Módulo |
module load wfdb
|
==== OpenCV ====
| [[http://http://opencv.org/]] ||
^ Versión | 2.4.11 |
^ Módulo |
module load openCV/2.4.11
|
===== Liberías de paso de mensajes =====
==== Open MPI ====
| [[http://www.open-mpi.org/]] ||
^ Versión | 1.6.3 |
^ Módulo |
module load openmpi
|
==== MPICH ====
| [[http://www.mpich.org]]\\ [[http://www.mcs.anl.gov/research/projects/mpi/mpich1-old/]] ||
^ Versiones |MPICH1 1.2.7p1 \\ MPICH2 1.4.1 \\ MPICH 3.0 |
^ Módulo |
module load mpich/1.2.7p1
module load mpich/1.4.1
module load mpich/3.0
|
===== Simuladores =====
==== TCAD-ATLAS (Silvaco) ====
| [[http://www.silvaco.com/products/device_simulation/atlas.html]] ||
^ Versión | 2012 |
^ Módulo | module load silvaco-tcad
|
==== SENTAURUS (Synopsys) ====
| [[http://www.synopsys.com/Tools/TCAD/Pages/default.aspx]] ||
^ Versiones | D_2010.03 y G_2012.06-SP1 |
^ Módulo | module load synopsys-sentaurus/D_2010.03
module load synopsys-sentaurus/G_2012.06-SP1
|
==== IC Design (CADENCE) ====
| [[http://www.cadence.com/products/cic/Pages/default.aspx]] ||
^ Versiones | 6.1.5 (2012-2013) |
^ Módulo | module load cadence
|
^ :!: Comentarios | Antes de arrancar ''ocean'' es necesario ejecutar\\ ''source /optct/cadence/2012-2013/lnx86/cadence.bash'' \\ y arrancar ''ocean'' dentro de un entorno de X simulado\\ ''xvfb-run -a -n 80 -s "-screen 0 640x480x16" ocean < script.ocn'' |
Ocean/Cadence no se puede ejecutar directamente en ''ctcomp2'', aunque sea con la opción ''-nograph'', ya que no es capaz de arrancar las X's. Teoricamente, la opción ''nograph'' precisamente haría que ''ocean'' se pudiese ejecutar sin X, pero el problema es que, con esta opción, ''ocean'' trata de arrancan un sistema X //falso// que tampoco funciona.
La solución para solventar este inconveniente en ''ctcomp2'' es crear nuestro propio entrono X //falso// antes de executar ''ocean'' (sin la opción ''nograph''). Utilizamos el comando ''xvfb-run'' para crear ese entorno X.
Por lo tanto, para ejecutar ''script.cdn'', guardando la salida de ''ocean'' en ''fichero.log'', la secuencia de comandos a ejecutar es:
module load cadence
source /optct/cadence/2012-2013/lnx86/cadence.bash
xvfb-run -a -n 80 -s "-screen 0 640x480x16" ocean < script.ocn > fichero.log