Changes between Version 5 and Version 6 of Enviamatlab


Ignore:
Timestamp:
Dec 10, 2009 8:59:04 AM (13 years ago)
Author:
sixto
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Enviamatlab

    v5 v6  
    11----
    22= Envío de trabajos Matlab al cluster =
    3 
    43Dentro 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.).
    54
    65----
    76== Conexión a oceano ==
    8 
    97La 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.
    108
    119== Envío de trabajos ==
    12 
    1310'''__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:
    1411
     
    1613  export EMAIL=tuemail[at]unican.es [[BR]] source /software/etc/bashrc
    1714}}}
    18 
    1915El fichero final debería ser tal que así (se ha cogido como ejemplo el .bashrc del home de Rodri):
    2016
     
    2218# .bashrc
    2319
     20
    2421# Source global definitions
    2522
     23
    2624if [ -f /etc/bashrc ]; then
    2725
     26
    2827        . /etc/bashrc
    2928
     29
    3030fi
    3131
     32
    3233# User specific aliases and functions
    3334
     35
    3436#       alias           pgf90           /software/pgi/linux86-64/7.1-6/bin/pgf90
    3537
     38
    3639export SVN_EDITOR=vi
    3740
     41
    3842#source /software/ScientificLinux/4.6/etc/bashrc
    3943
     44
    4045export EMAIL="rmanzanas@ifca.unican.es"
    4146
     47
    4248source /software/etc/bashrc
    4349}}}
    4450----
    45 
    4651En 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:
    4752
     
    4954enviamatlab script.m
    5055}}}
    51 
    5256De este modo, se generarán en la carpeta dos ficheros:
    5357
     
    6266EXPORT PATH="/oceano/gmeteo/users/nombreusuario"
    6367}}}
    64 
    6568Si 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.
    6669
     
    7477
    7578 * PBS -q: hace referencia a la cola utilizada (ej: macc)
    76  * PBS -1 nodes=1:ppn=1. Esta orden adquiere relevancia sobretodo en los trabajos realizados con Matlab2009, ya que nos permite especificar cuantos procesador de un nodo queremos utilizar (2, 4, 8 dependiendo de las características de la máquina).
     79 * PBS -1 nodes=!1:ppn=1. Esta orden adquiere relevancia sobretodo en los trabajos realizados con Matlab2009, ya que nos permite especificar cuantos procesador de un nodo queremos utilizar (2, 4, 8 dependiendo de las características de la máquina).
    7780 * PBS -l walltime: es el límite temporal del job. Para disponer de más tiempo de ejecución debemos modificar este argumento.
    7881 * PBS -M: especifica la dirección de correo electrónico a la cual mandará un aviso cuando acabe el job.
     
    8184[rodri@oceano ejemplo]$ ./enviamatlab2009.sh test
    8285
     86
    8387#!/bin/bash
    8488
     89
    8590#PBS -N test
    8691
     92
    8793#PBS -q macc
    8894
     95
    8996#PBS -l nodes=1:ppn=1
    9097
     98
    9199#PBS -l walltime=48:00:00 
    92100
     101
    93102#PBS -m ea
    94103
     104
    95105#PBS -M rmanzanas@ifca.unican.es
    96106
     107
    97108#PBS -r n
    98109
     110
    99111export LD_ASSUME_KERNEL=2.6.18
    100112
     113
    101114export PATH=/software/Matlab_R2009a/bin:$PATH
    102115
     116
    103117matlab -logfile /vols/mar/users/rodri/ejemplo/logs/log_20091209181811.err -r "cd /vols/mar/users/rodri/ejemplo;test;" -nosplash -nodesktop
    104118
     119
    105120exit 0   
    106121
     122
    107123121176.ce01.macc.unican.es
    108124}}}
    109 
    110125== Observaciones ==
    111 
    112126En este apartado podéis escribir las observaciones, dificultades o aclaraciones que encontréis o creáis necesarias a la hora de usar el cluster.
    113127
    114128 * Como ya se ha indicado, para poder mandar jobs al cluster debemos tener las función enviamatlab2009.sh o enviamatlab65.sh (quien las necesite se las puede pedir a Rodri) en el mismo directorio que el script que a ejecutar. Una vez copiada/s en el directorio correspondiente y después de habernos asegurado de que está/n correctamente implementada/s, es decir, tiene nuestro nombre de usuario y las demás variables que nos identifican correctamente, podemos ejecutarla/s sin problema alguno siguiendo las instrucciones explicadas anteriormente.
    115  * Es importante tener en cuenta que el Matlab en el que se arranca el proceso no tiene porque tener inicializada MeteoLab y que, por lo tanto, debemos añadir al script una orden para que la inicialice. Bastaría con añadir al inicio del script la ruta de acceso al MeteoLab que utilicemos (es recomendable tenerla siempre actualizada en nuestro home), ejecutar el programa init (que arranca la toolbox) y volver al directorio en el que queremos trabajar. De este modo podremos trabajar con todas las funciones de MeteoLab.
     129 * Es importante tener en cuenta que el Matlab en el que se arranca el proceso no tiene porque tener inicializada !MeteoLab y que, por lo tanto, debemos añadir al script una orden para que la inicialice. Bastaría con añadir al inicio del script la ruta de acceso al !MeteoLab que utilicemos (es recomendable tenerla siempre actualizada en nuestro home), ejecutar el programa init (que arranca la toolbox) y volver al directorio en el que queremos trabajar. De este modo podremos trabajar con todas las funciones de !MeteoLab.
    116130 * A la hora de marcar las rutas en Linux debemos usar los elementos propios de este sistema. En particular debemos usar la '/' en lugar de la '\' usada habitualmente en Windows. Es importante crear los scripts de modo que puedan ser entendidos en Linux. Para consultar dudas podéis preguntar a Chus, Antonio, etc.
    117131 * Las funciones de Meteolab ya están escritas de modo que puedan ejecutarse en Linux y Windows indistintamente (en principio).
     
    120134[rodri@oceano ejemplo]$ man qstat
    121135
     136
    122137qstat(1B)                             PBS                            qstat(1B)
    123138
    124139
     140
    125141NAME
    126142
     143
    127144       qstat - show status of pbs batch jobs
    128145
    129146
     147
    130148SYNOPSIS
    131149
     150
    132151       qstat [-f [-1]][-W site_specific] [job_identifier... | destination...]
    133152
    134153
     154
    135155       qstat [-a|-i|-r|-e] [-n [-1]] [-s] [-G|-M] [-R] [-u user_list] [job_identifier... |  destination...]
    136156
    137157
     158
    138159       qstat -Q [-f [-1]][-W site_specific] [destination...]
    139160
    140161
     162
    141163       qstat -q [-G|-M] [destination...]
    142164
    143165
     166
    144167       qstat -B [-f [-1]][-W site_specific] [server_name...]
    145168
    146169
     170
    147171DESCRIPTION
    148172
     173
    149174       The qstat command is used to request the status of jobs, queues, or a batch server.  The requested sta-
    150175
     176
    151177       tus is written to standard out.
    152178
    153179
     180
    154181       When requesting job status, synopsis format 1 or 2, qstat will output information about each  job_iden-
    155182
     183
    156184       tifier or all jobs at each destination.  Jobs for which the user does not have status privilege are not
    157185
     186
    158187       displayed.
    159188
    160189
     190
    161191       When requesting queue or server status, synopsis format 3 through  5,  qstat  will  output  information
    162192
     193
    163194       about each destination.
    164195
    165196
     197
    166198OPTIONS
    167199
     200
    168201       -f        Specifies that a full status display be written to standard out.
    169202
     203
    170204:
    171205}}}