(Volver a la Guía de usuario del clúster HPC ctcomp2)
HP ProLiant BL685c G7 Server Blade | HP manuals |
---|---|
Blade de servidor HP ProLiant BL685c G7- Especificaciones | |
HP BladeSystem c7000 Enclosures | |
Procesador AMD Opteron 6262 HE | Procesadores AMD Opteron™ Serie 6200 |
amd_opteron_6000_comparison.pdf | |
HP 6120XG Ethernet Blade Switch | HP specifications |
GCC | Manual GCC 4.7.2 |
---|---|
GCC + OpenMP | |
JAVA | http://www.java.com/es/about/ |
Tamaño del heap de JAVA | |
Python | http://www.python.org/doc/ |
Instalar/actualizar/desinstalar paquetes Python |
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
En ctcomp2 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
Al modificar el tamaño del heap el usuario debe asegurarse, bajo su responsabilidad, que el conjunto de procesos que se estén ejecutando concurrentemente en su trabajo no sobrepase el límite de memoria establecido en la correspondiente cola, ya que en ese caso el trabajo será cancelado automáticamente.
Los usuarios que ejecuten en sus trabajos una sola instancia de java (independientemente de los threads que ejecute) podrán aumentar el tamaño del heap, pero se recomienda que no sea un valor cercano al límite de memoria de la correspondiente cola. Si se ejecutan varias instancias de java, se recomienda ajustar adecuadamente el tamaño del heap para evitar cancelaciones.
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
.
~/libR
:mkdir ~/libR
qsub -I -q interactive
module load R R
install.packages("nnet",lib="~/libR/", repos="http://cran.es.r-project.org/")
~/libR/
, ejecutar dentro de R:library("nnet", lib.loc="~/libR/")
En principio, es posible instalar cualquier paquete presente en el í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 el frontend
.
Please install a more recent version first, using 'easy_install -U distribute'.
Debemos ejecutar el comando easy_install -U –user distribute
, para actualizar en la base de datos en el espacio de usuario.
Ejecutar el siguiente comando en bash:
pip install --user pywavelets
Ejecutar el siguiente comando en bash:
pip install --upgrade --user pywavelets
Ejecutar el siguiente comando en bash:
pip uninstall --user pywavelets
En principio, es posible instalar cualquier paquete presente en el í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
).
octave
:octave
$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
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
pkg load image
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