WikiPrint - from Polar Technologies

Si envias un job con Matlab2009 sin usar el enviamatlab se puede consumir mas CPU de la asignada. help maxNumCompThreads


Envío de trabajos Matlab al cluster

El acceso al cluster por ssh es 'mar.macc.unican.es' y los trabajos en Matlab hay que lanzarlos utilizando 'enviamatlab.sh', que se encarga de mandar el trabajo a la cola 'estadistica', que es la cola por defecto para los trabajos de Matlab; esta cola puede ejecutar hasta 24 trabajos a la vez: nodos WN10, WN11 y WN12 (nodes), con 8 procesadores cada uno (ppn). El script 'enviamatlab.sh' se ha añadido en un directorio del cluster (/software/MachineIndependent/bin/) accesible por todos los usuarios. Por tanto, si os logueais en mar y poneis 'which enviamatlab.sh' (es decir, busca la ruta donde está 'enviamatlab.sh') todos deberíais ver:

[gutierjm@mar ~]$ which enviamatlab.sh
/software/MachineIndependent/bin/enviamatlab.sh

Por tanto, para ejecutar cualquier programa de Matlab basta que llaméis a este script desde el directorio donde tengáis el fichero ".m" que queráis ejecutar SIN TENER UNA COPIA EN LOCAL:

[gutierjm@mar ~]$ enviamatlab.sh script.m

De este modo, se generarán en la carpeta dos ficheros:

Al final de la ejecución del script.m se genera un nuevo fichero script.o114037, donde el número indica el identificador del job ejecutado.

Una vez ejecutamos la función nos aparecerá por pantalla una serie de mensajes, como se muestra en el ejemplo, en los que se muestra la información del trabajo enviado. En la última línea se muestra el identificador del trabajo (JobId, en el ejemplo 121176) seguido del nombre de la máquina, ce01.macc.unican.es (esta máquina es el submitting machine, pero no es la que ejecuta el job; para monitorizar los jobs ver la sección de monitorización) . Este identificador nos servirá para informarnos del estado del trabajo.

[rodri@mar ~]$ ./enviamatlab.sh test.m
#!/bin/bash
#PBS -N test 
#PBS -q macc
#PBS -l nodes=1:ppn=1 
#PBS -l walltime=48:00:00  
#PBS -m ea
#PBS -M rmanzanas@ifca.unican.es
#PBS -r n
export LD_ASSUME_KERNEL=2.6.18
export PATH=/software/Matlab_R2009a/bin:$PATH
matlab -logfile /vols/mar/users/rodri/ejemplo/logs/log_20091209181811.err -r "cd /vols/mar/users/rodri/ejemplo;test;" -nosplash -nodesktop 
exit 0   
121176.ce01.macc.unican.es

Por defecto, enviaMatlab envía los trabajos a un sólo procesador (ppn) con un límite de 750mb de memoria. Si el job consume más memoria, la cola lo interrumpe. Si se necesita correr trabajos que consuman más memoria hay una opción para reservar el doble de memoria:

[gutierjm@mar ~]$  enviamatlab.sh  test.m -l mem=1500mb -l nodes=1:ppn=2

o cuatro veces más (hasta 3GB de memoria). Si necesitáis ejecutar jobs que requieran más memoria, hablar con Sixto o con Antonio.

[gutierjm@mar ~]$  enviamatlab.sh  test.m -l mem=3000mb -l nodes=1:ppn=4

Configuración de correo para recepción de mensajes (job terminado, etc.)

NOTA: La primera (y sólo la primera) vez que queramos enviar un trabajo de Matlab al cluster debemos editar el fichero .bashrc de nuestro home de oceano, incluyendo al final del mismo las líneas:

export EMAIL=tuemail[at]unican.es
source /software/etc/bashrc

El fichero final debería ser tal que así (se ha cogido como ejemplo el .bashrc del home de Rodri):

export EMAIL="rmanzanas@ifca.unican.es"
source /software/etc/bashrc

Para ello, basta hacer:

[gutierjm@mar cluster]$ vi .bashrc

editar el fichero justo al final "G", incluir "i" las dos líneas anteriores. Luego presionar "escape" y escribir ":x" (comando para salir guardando) y presionar "enter".

El que no sepa, que me pregute a mi o a Sixto, pero no tengáis copias del script 'enviamatlab' en local porque estaréis generando errores para el resto de usuarios.

Observaciones

En este apartado podéis escribir las observaciones, dificultades o aclaraciones que encontréis o creáis necesarias a la hora de usar el cluster.