WikiPrint - from Polar Technologies

Envío de trabajos Matlab al cluster

Dentro de las máquinas del cluster hay una que se encarga de distribuir los trabajos, asignando nodos a los jobs según estén o no disponibles para ser utilizados por la cola especificada (macc, hmem, etc.) por el script a ejecutar. Esta máquina es ce01.macc.unican.es (submitting machine). Salvo necesidad expresa la cola común al grupo es la cola macc siendo el resto de colas generadas para uso específico ya sea de gente del grupo meteo (modelización, portal, etc.) o de otros grupos de investigación y proyectos (EELA, ENSEMBLES, etc.).


Conexión a oceano

La conexión a oceano la realizaremos mediante SSH. Para ello necesitamos conocer el nombre de la máquina a la cual nos queremos conectar (oceano.macc.unican.es, mar.macc.unican.es), nuestro nombre de usuario y nuestra contraseña. De este modo nos situaremos directamente en nuestro home ( '/oceano/gmeteo/users/nombreusuario/' ). En caso de desconocer el nombre de usuario o la contraseña podéis poneros en contacto con Antonio.

Envío de trabajos

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 [[BR]] source /software/etc/bashrc

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

# .bashrc


# Source global definitions


if [ -f /etc/bashrc ]; then


        . /etc/bashrc


fi


# User specific aliases and functions


#       alias           pgf90           /software/pgi/linux86-64/7.1-6/bin/pgf90


export SVN_EDITOR=vi


#source /software/ScientificLinux/4.6/etc/bashrc


export EMAIL="rmanzanas@ifca.unican.es"


source /software/etc/bashrc

En la actualidad están instalados en el cluster las versiones de Matlab6.5 y Matlab2009, y ambas pueden ser utilizadas para realizar trabajos en la cola mediante órdenes similares. En el primer caso el script a necesario está incluido en el cluster (\software\bin\enviamatlab) y os ejecuta cualquier script de matlab que esté en la carpeta en la que os encontreis mediante la orden:

enviamatlab 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.

Para realizar trabajos con Matlab2009 es necesario generar un enviamatlab2009.sh equivalente al que se usa para el Matlab6.5 pero que arranque directamente la última versión de matlab ya que el cluster, por defecto, arranca la anterior. Dicha función podeis pedírsela a Rodri, Sixto o descargarla directamente en esta página, guardarla en vuestro home y exportar el path donde se encuentra mediante la orden:

EXPORT PATH="/oceano/gmeteo/users/nombreusuario"

Si el script se llama enviamatlab2009.sh, su ejecución es equivalente a la expuesta en el caso anterior sin más que cambiar enviamatlab por enviamatlab2009.sh. De igual modo, se generarán los ficheros anteriores durante la ejecución del job.

Una vez tenemos estas funciones y nos hemos conectado a oceano, para enviar el trabajo debemos situarnos en el directorio en el cual se encuentre el script que queremos ejecutar. Para realizar el envío, las funciones enviamatlab2009.sh o enviamatlab65.sh tienen que estar en el mismo directorio que el script en cuestión.

En todos los ejemplos siguientes se ha utilizado enviamatlab2009.sh, pero si se quisiése realizar un trabajo con la versión 6.5 de Matlab bastaría simplemente con sustituir enviamatlab2009.sh por enviamatlab65.sh

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. Este identificador nos servirá para informarnos del estado del trabajo.

Los mensajes devueltos por pantalla hacen referencia a distintas caraterísticas del trabajo. Dentro de ellas podemos destacar:

[rodri@oceano ejemplo]$ ./enviamatlab2009.sh test


#!/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

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.