Changes between Version 54 and Version 55 of ColasPBS


Ignore:
Timestamp:
Dec 15, 2014 7:51:58 PM (7 years ago)
Author:
carlos
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ColasPBS

    v54 v55  
    3333Se muestra una parte de su ejecución para mostrar su contenido (se muestra parcialmente):
    3434  {{{
    35 [lluis@mar CursilloPBS]$ pbsnodes
    36 wn001.macc.unican.es
     35[user@ui ~]$ pbsnodes
     36wn002.macc.unican.es
    3737     state = job-exclusive
    3838     np = 2
     
    4040     ntype = cluster
    4141     jobs = 0/308594.ce01.macc.unican.es, 1/308606.ce01.macc.unican.es
    42      status = opsys=linux,uname=Linux wn001.macc.unican.es 2.6.32.14-5-16-18-33-36-38-41-60-74-89-103-104 #18 SMP
     42     status = opsys=linux,uname=Linux wn002.macc.unican.es 2.6.32.14-5-16-18-33-36-38-41-60-74-89-103-104 #18 SMP
    4343Sat May 29 06:31:42 EDT 2010 x86_64,sessions=10248, 18567, nsessions=2,nusers=1, idletime=26392, totmem=5137992kb,
    4444availmem=4784508kb, physmem=2057808kb, ncpus=2, loadave=1.03, netload=2685739215248,state=free, jobs=308594.ce01.
    4545macc.unican.es  308606.ce01.macc.unican.es, varattr=, rectime=1292346952
    4646}}}
    47 La unidad {{{wn001.macc.unican.es}}} (con 2 cpus y 2GB de memoria, asignado a las colas: 'ensembles', 'macc', 'lcgpro', 'estadistica') está totalmente ocupada con dos trabajos ({{{308594.ce01.macc.unican.es}}} y {{{308606.ce01.macc.unican.es}}}) de un mismo usuario
     47El nodo {{{wn002.macc.unican.es}}} (con 2 cpus y 2GB de memoria, asignado a las colas: 'ensembles', 'macc', 'lcgpro', 'estadistica') está totalmente ocupada con dos trabajos ({{{308594.encina}}} y {{{308606.encina}}}) de un mismo usuario
    4848   {{{
    4949wn002.macc.unican.es
     
    6363     properties = oper
    6464     ntype = cluster
    65      jobs = 0/308629.ce01.macc.unican.es, 1/308629.ce01.macc.unican.es, 2/308629.ce01.macc.unican.es, 3/308629.
    66 ce01.macc.unican.es, 4/308629.ce01.macc.unican.es, 5/308629.ce01.macc.unican.es, 6/308629.ce01.macc.unican.es,
    67 7/308629.ce01.macc.unican.es, 8/308630.ce01.macc.unican.es, 9/308630.ce01.macc.unican.es, 10/308630.ce01.macc.
    68 unican.es, 11/308630.ce01.macc.unican.es, 12/308630.ce01.macc.unican.es, 13/308630.ce01.macc.unican.es, 14/3086
    69 30.ce01.macc.unican.es, 15/308630.ce01.macc.unican.es
     65     jobs = 0/308629.ce01.macc.unican.es, 1/308629.ce01.macc.unican.es, 2/308629.encina, 3/308629.encina, 4/308629.encina, 5/308629.encina, 6/308629.encina,
     667/308629.encina, 8/308630.encina, 9/308630.encina, 10/308630.encina, 11/308630.encina, 12/308630.encina, 13/308630.encina, 14/3086
     6730.encina, 15/308630.encina
    7068     status = opsys=linux, uname=Linux wn042.macc.unican.es 2.6.18-164.15.1.el5 #1 SMP Wed Mar 17 11:30:06 EDT
    71692010 x86_64, sessions=25810 25872, nsessions=2,nusers=1, idletime=2324174, totmem=19507632kb, availmem=14199848
     
    7371es 308630.ce01.macc.unican.es, varattr=, rectime=1292346966
    7472}}}
    75 La unidad {{{wn042.macc.unican.es}}} (con 16 unidades de cálculo y 16 GB de memoria, asignada a la cola 'oper') está ocupada con 16 trabajos (el job {{{308629.ce01.macc.unican.es}}} está en las cpus de la 0 a 7 y el job {{{308630.ce01.macc.unican.es}}} de la 8 a la 15) de un único usuario.
     73La unidad {{{wn042.macc.unican.es}}} (con 16 unidades de cálculo y 16 GB de memoria, asignada a la cola 'oper') está ocupada con 16 trabajos (el job {{{308629.encina}}} está en las cpus de la 0 a 7 y el job {{{308630.encina}}} de la 8 a la 15) de un único usuario.
    7674
    7775== Job ==
     
    8381La pericia de l@s usuari@s en saber escoger adecuadamente los requerimientos de sus jobs, determinará la rapidez con la que se ejecutaran.
    8482
    85 == Infraestructura del GMS ==
    86 
    87 La infraestructura del ''Grupo de Meteorología de Santander'' (GMS) es la siguiente (diciembre 2010).
    88 
    89 '''NOTA IMPORTANTE:''' la ejecución de jobs se hace sólo desde la máquina llamada ''mar'' ({{{ssh mar}}})
     83== Infraestructura del SMG ==
     84
     85La infraestructura del ''Grupo de Meteorología de Santander'' MS) es la siguiente (diciembre 2010).
     86
    9087El clúster está formado por distintas máquinas. Los únicos sitios que son accesibles des de todos los ordenadores son los que se encuentran desde {{{/oceano/gmeteo}}}
    9188
     
    9895    * /software/CentOS/5.2/R/2.11.1/bin/R
    9996    * ejectuando {{{source /software/ScientificLinux/4.6/etc/bashrc}}} se exporta en memoria el acceso (y su configuración) de muchas aplicaciones instaladas en {{{/software}}}
    100 
    101  * '''colas''' (no accesibles para tod@s, diciembre 2010):
    102   * {{{grid}}}: nodos {{{[001]-[009]}}}
    103   * {{{estadistica}}}: nodos {{{[010]-[015]}}}
    104   * {{{dinamica}}}: nodos {{{[012]-[025]}}}
    105   * {{{blade}}}: nodos {{{[031]-[034]}}}
    106   * {{{oper}}}: nodos {{{[042]}}}
    107   * {{{puerca}}}: nodos {{{[041], [043], [044], [035], [036], [045], [046]}}}
    108 
    10997
    11098== Los requerimientos de un job en una cola PBS ==
     
    167155 * ''-l nodes=[N]:ppn:[M] :'' número de nodos ({{{[N]}}}) y número de cpus a coger de cada nodo ({{{[M]}}}) la aplicación se repartirá en [N]x[M] cpus
    168156
    169 Para editar un script desde una ventana de mar se puede utilizar {{{nano}}} (más intuitivo) y/o {{{vi}}} (otro mundo):
    170    {{{
    171 [lluis@mar]$ nano job.pbs
    172 [lluis@mar]$ vi job.pbs
     157Para editar un script desde una ventana de mar se puede utilizar {{{nano}}} y/o {{{vi}}} :
     158   {{{
     159[user@ui ~]$ nano job.pbs
     160[user@ui ~]$ vi job.pbs
    173161}}}
    174162
    175163El job se mandaría a la cola con la instrucción:
    176164  {{{
    177 [lluis@mar]$ qsub job.pbs
     165[user@ui ~]$ qsub job.pbs
    178166}}}
    179167
     
    184172}}}
    185173
    186 Todos los jobs tienen un número que los identifica que se llama [JOB ID]. En el clúster del GMS tiene el siguiente formato: [jobid].ce01.macc.unican.es. Cada job tiene associado los siguientes valores PBS:
     174Todos los jobs tienen un número que los identifica que se llama [JOB ID]. En el clúster del GMS tiene el siguiente formato: [jobid].encina. Cada job tiene associado los siguientes valores PBS:
    187175 * '''Job ID''': identificador del trabajo (asignado por PBS).
    188176 * '''Username''': propietario del trabajo (usuario que lo envió).
     
    212200 * '''qalter''' permite alterar algunos de los parámetros de los jobs mientras está en espera
    213201
    214 Un ejemplo de salida de {{{qstat -n1}}} (recortada y maquetada)
    215    {{{
    216 [lluis@mar CursilloPBS]$ qstat -n1
    217 ce01.macc.unican.es:
    218                                                                    Req'd  Req'd   Elap
    219 Job ID               Username Queue    Jobname    SessID NDS   TSK Memory Time  S Time
    220 -------------------- -------- -------- ---------- ------ ----- --- ------ ----- - -----
    221 303117.ce01.macc.uni lluis    blade    scne2a      10618     1  --    --  24:00 R 03:31  wn033+wn033+wn033+wn03
    222 3+wn033+wn033+wn033+wn033+wn033+wn033+wn033+wn033+wn033+wn033+wn033+wn033
    223 303118.ce01.macc.uni lluis    blade    scne2a        --      1  --    --  24:00 H   --     --
    224 303240.ce01.macc.uni lluis    dinamica scne5a      22145     1  --    --  24:00 R 07:43   wn023+wn023+wn023+wn0
    225 23+wn023+wn023+wn023+wn023
    226 303241.ce01.macc.uni lluis    dinamica scne5a        --      1  --    --  24:00 H   --     --
    227 303242.ce01.macc.uni lluis    dinamica scne5a        --      1  --    --  24:00 H   --     --
    228 304465.ce01.macc.uni lluis    dinamica scne3a      21060     2  --    --  24:00 R 01:25   wn013+wn013+wn013+wn0
    229 13+wn013+wn013+wn013+wn013+wn018+wn018+wn018+wn018+wn018+wn018+wn018+wn018
    230 306291.ce01.macc.uni lluis    blade    scne1b       8739     1  --    --  24:00 R 02:43   wn032+wn032+wn032+wn0
    231 32+wn032+wn032+wn032+wn032+wn032+wn032+wn032+wn032+wn032+wn032+wn032+wn032
    232 306292.ce01.macc.uni lluis    blade    scne1b        --      1  --    --  24:00 H   --     --
    233 307057.ce01.macc.uni sixto    estadist papers      15343     1  --    --    --  R 28:20   wn012
    234 307059.ce01.macc.uni sixto    estadist papers      24344     1  --    --    --  R 28:15   wn010
    235 307060.ce01.macc.uni sixto    estadist papers      17582     1  --    --    --  R 28:13   wn012
    236 307591.ce01.macc.uni sixto    estadist papers      24762     1  --    --    --  R 26:32   wn010
    237 308550.ce01.macc.uni lluis    dinamica postWRF6    12269     1  --    --    --  R 11:45   wn025+wn025+wn025+wn02
    238 5+wn025+wn025+wn025+wn025
    239 308594.ce01.macc.uni markel   grid     STDIN       10248   --   --    --  48:00 R 02:32   wn001
    240 308629.ce01.macc.uni markel   oper     oper_gfs20  25810     1  --    --    --  R 03:31   wn042+wn042+wn042+wn04
    241 2+wn042+wn042+wn042+wn042
    242 308630.ce01.macc.uni markel   oper     oper_gfs20  25872     1  --    --    --  R 03:30   wn042+wn042+wn042+wn04
    243 2+wn042+wn042+wn042+wn042
    244 308631.ce01.macc.uni markel   grid     post_opera    --    --   --    --  48:00 H   --     --
    245 }}}
     202Un ejemplo de salida de {{{qstat -n1}}}:
     203   {{{
     204[user@ui ~]$ qstat -n1
     205encina:
     206                                                                         Req'd  Req'd   Elap
     207Job ID               Username    Queue    Jobname          SessID NDS   TSK    Memory Time  S Time
     208-------------------- ----------- -------- ---------------- ------ ----- ------ ------ ----- - -----
     209476038.encina        gutierjm    estadist STDIN             17506   --     --     6gb   --  R 1664:   wn010/0
     210539894.encina        solanajr    gtfe     CPSE-Girifalco    22778     1      1    --    --  R 146:0   wn061/0
     211541194.encina        maru        asna_b3  JID_7757           3032     1     16    --    --  R 10:48   wn031/15+wn031/14+wn031/13+wn031/12+wn031/11+wn031/10+wn031/9+wn031/8+wn031/7+wn031/6+wn031/5+wn031/4+wn031/3+wn031/2+wn031/1+wn031/0
     212541197.encina        maru        asna_b3  JID_8153          13318     1     16    --    --  R 10:00   wn035/15+wn035/14+wn035/13+wn035/12+wn035/11+wn035/10+wn035/9+wn035/8+wn035/7+wn035/6+wn035/5+wn035/4+wn035/3+wn035/2+wn035/1+wn035/0
     213541210.encina        maxtuni     amd      JID_284            7537     1      8    --    --  R 14:31   wn037/7+wn037/6+wn037/5+wn037/4+wn037/3+wn037/2+wn037/1+wn037/0
     214541211.encina        maxtuni     amd      JID_285            7724     1      8    --    --  R 14:30   wn037/15+wn037/14+wn037/13+wn037/12+wn037/11+wn037/10+wn037/9+wn037/8
     215541217.encina        maxtuni     amd      JID_287            8671     1      8    --    --  R 13:25   wn038/7+wn038/6+wn038/5+wn038/4+wn038/3+wn038/2+wn038/1+wn038/0
     216541221.encina        maxtuni     amd      JID_288           11002     1      8    --    --  R 12:55   wn038/15+wn038/14+wn038/13+wn038/12+wn038/11+wn038/10+wn038/9+wn038/8
     217541234.encina        solanajr    gtfe     CPSE-Girifalco    14756     1      1    --    --  R 09:58   wn061/1
     218541238.encina        maru        asna_b3  JID_7559          22682     1     16    --    --  R 09:17   wn033/15+wn033/14+wn033/13+wn033/12+wn033/11+wn033/10+wn033/9+wn033/8+wn033/7+wn033/6+wn033/5+wn033/4+wn033/3+wn033/2+wn033/1+wn033/0
     219541239.encina        maru        asna_b3  JID_7823           3491     1     16    --    --  R 09:01   wn043/15+wn043/14+wn043/13+wn043/12+wn043/11+wn043/10+wn043/9+wn043/8+wn043/7+wn043/6+wn043/5+wn043/4+wn043/3+wn043/2+wn043/1+wn043/0
     220541240.encina        maru        asna_b3  JID_7889          17117     1     16    --    --  R 08:53   wn036/15+wn036/14+wn036/13+wn036/12+wn036/11+wn036/10+wn036/9+wn036/8+wn036/7+wn036/6+wn036/5+wn036/4+wn036/3+wn036/2+wn036/1+wn036/0
     221541241.encina        maru        asna_b3  JID_8087          21891     1     16    --    --  R 08:32   wn046/15+wn046/14+wn046/13+wn046/12+wn046/11+wn046/10+wn046/9+wn046/8+wn046/7+wn046/6+wn046/5+wn046/4+wn046/3+wn046/2+wn046/1+wn046/0
     222541242.encina        maru        asna_b3  JID_8351           9854     1     16    --    --  R 08:08   wn034/15+wn034/14+wn034/13+wn034/12+wn034/11+wn034/10+wn034/9+wn034/8+wn034/7+wn034/6+wn034/5+wn034/4+wn034/3+wn034/2+wn034/1+wn034/0
     223541244.encina        jjunquer    citimac  100.0Bohr_rs10.0  22174     1      1    --    --  R 09:12   citimac05/0
     224541245.encina        jjunquer    citimac  100.0Bohr_rs10.0  22185     1      1    --    --  R 09:12   citimac05/1
     225 }}}
    246226
    247227== Otras wikis ==
    248228
    249229 * Hay una shell script específica para mandar trabajos de matlab wiki:Enviamatlab
    250  * Hay una breve introducción al shell scripting en attachment:dgms_2009_1.pdf
    251 
    252 == ejemplos ==
     230
     231== Ejemplos ==
    253232
    254233=== Wall time insuficiente ===
     
    272251Lanzando el job obtendríamos:
    273252  {{{
    274 [lluis@mar CursilloPBS]$ qsub prueba.pbs
     253[user@ui ~]$ qsub prueba.pbs
    275254307065.ce01.macc.unican.es
    276 [lluis@mar CursilloPBS]$ qstat | grep prueba
    277 307065.ce01               prueba           lluis                  0 R grid           
    278 [lluis@mar CursilloPBS]$ qstat -n1 | grep prueba
    279 307065.ce01.macc.uni lluis    grid     prueba      23057     1  --    --  48:00 R   --    wn001
    280 [lluis@mar CursilloPBS]$ ls
     255[user@ui ~]$ qstat | grep prueba
     256307065.encina               prueba           user                  0 R grid           
     257[user@ui ~]$ qstat -n1 | grep prueba
     258307065.encina  user    grid     prueba      23057     1  --    --  48:00 R   --    wn002
     259[user@ui ~]$ ls
    281260prueba.pbs
    282261}}}
    283262Pasados los 60 segundos...
    284263  {{{
    285 [lluis@mar CursilloPBS]$ ls
     264[user@ui ~]$ ls
    286265prueba.e307065  prueba.o307065  prueba.pbs
    287266}}}
    288267La ejecución del job ha generado dos ficheros de salida en los cuales se almacena información de la ejecución del job y de la propia aplicación (ficheros {{{prueba.[e/o]307065}}}). Al mirar el contenido de estos ficheros:
    289268  {{{
    290 [lluis@mar CursilloPBS]$ cat prueba.o307065
    291 [lluis@mar CursilloPBS]$ cat prueba.e307065
     269[user@ui ~]$ cat prueba.o307065
     270[user@ui ~]$ cat prueba.e307065
    292271=>> PBS: job killed: walltime 43 exceeded limit 10
    293272}}}
     
    314293El job se lanza a la cola, y pasados unos segundos nos sale este mensaje en el fichero de salida 'prueba.e477378':
    315294   {{{
    316 [lluis@mar Fortran]$ cat prueba.e477378
    317 }}}
    318 De momento (30 Sept. 2011) no sale mensaje de error. Se está trabajando para que mande algún mensaje
    319 {{{#!comment
     295[user@ui ~]$ cat prueba.e477378
     296#!comment
    320297=>> PBS: job killed: mem 162836480 exceeded limit 157286400
    321298}}}
     
    337314En este caso, no se lanzará una script attachment:listar.bash hasta que no termine la espera de 60 segundos (una vez corregido el walltime)
    338315   {{{
    339 [lluis@mar CursilloPBS]$ date
     316[user@ui ~]$ date
    340317Mon Dec 13 17:53:57 CET 2010
    341 [lluis@mar CursilloPBS]$ qsub prueba.pbs
     318[user@ui ~]$ qsub prueba.pbs
    342319307079.ce01.macc.unican.es
    343 [lluis@mar CursilloPBS]$ qsub -N listado -q grid -W depend=afterany:307079 -l nodes=1 ./listar.bash
    344 307080.ce01.macc.unican.es
     320[user@ui ~]$ qsub -N listado -q grid -W depend=afterany:307079 -l nodes=1 ./listar.bash
     321307080.encina
    345322}}}
    346323La script {{{'listar.bash'}}} no se ejecutará hasta que termine {{{'prueba.pbs'}}} con pid 307079. Se sigue:
    347324  {{{
    348 [lluis@mar CursilloPBS]$ qstat -n1 | grep prueba
    349 307079.ce01.macc.uni lluis    grid     prueba      27714     1  --    --  48:00 R   --    wn001
    350 [lluis@mar CursilloPBS]$ qstat -n1 | grep listado
    351 307080.ce01.macc.uni lluis    grid     listado       --      1  --    --  48:00 H   --     --
    352 }}}
    353 El trabajo {{{307079}}} está ejecutándose en la unidad {{{wn001}}}, pero el trabajo {{{307080}}} está a la espera. Más tarde.
    354    {{{
    355 [lluis@mar CursilloPBS]$ date
     325[user@ui ~]$ qstat -n1 | grep prueba
     326307079.encina user    grid     prueba      27714     1  --    --  48:00 R   --    wn002
     327[user@ui ~]$ qstat -n1 | grep listado
     328307080.encina user    grid     listado       --      1  --    --  48:00 H   --     --
     329}}}
     330El trabajo {{{307079}}} está ejecutándose en le nodo {{{wn002}}}, pero el trabajo {{{307080}}} está a la espera. Más tarde.
     331   {{{
     332[user@ui ~]$ date
    356333Mon Dec 13 17:54:43 CET 2010
    357 [lluis@mar CursilloPBS]$ ls
     334[user@ui ~]$ ls
    358335espera.bash  listar.bash  prueba.pbs
    359 [lluis@mar CursilloPBS]$ date
     336[user@ui ~]$ date
    360337Mon Dec 13 17:55:02 CET 2010
    361 [lluis@mar CursilloPBS]$ ls
     338[user@ui ~]$ ls
    362339espera.bash      prueba.pbs   listar.bash   prueba.e307079     prueba.o307079
    363340}}}
    364341El primer job ja ha finalizado. Pasados unos segundos el segundo también termina
    365342   {{{
    366 [lluis@mar CursilloPBS]$ date
     343[user@ui ~]$ date
    367344Mon Dec 13 17:55:12 CET 2010
    368 [lluis@mar CursilloPBS]$ ls
     345[user@ui ~]$ ls
    369346espera.bash listado.e307080 listado.o307080 listar.bash prueba.e307079 prueba.o307079 prueba.pbs
    370 [lluis@mar CursilloPBS]$ cat prueba.o307079
     347[user@ui ~]$ cat prueba.o307079
    371348Hola mundo
    372 [lluis@mar CursilloPBS]$ cat prueba.e307079
     349[user@ui ~]$ cat prueba.e307079
    373350}}}
    374351
     
    385362### Job mail
    386363#PBS -m ea
    387 #PBS -M lluis.fita@unican.es
     364#PBS -M user@unican.es
    388365### Array request
    389366#PBS -t 1-5
     
    399376Lanzamos el job y aparecen:
    400377   {{{
    401 [lluis@mar CursilloPBS]$ qstat -n1 | grep MAT
    402 308635-1.ce01.macc.u lluis    grid     MATprueba-  19710     1  --    --  48:00 R   --    wn002
    403 308635-2.ce01.macc.u lluis    grid     MATprueba-  19731     1  --    --  48:00 R   --    wn002
    404 308635-3.ce01.macc.u lluis    grid     MATprueba-   1060     1  --    --  48:00 R   --    wn003
    405 308635-4.ce01.macc.u lluis    grid     MATprueba-   1079     1  --    --  48:00 R   --    wn003
    406 308635-5.ce01.macc.u lluis    grid     MATprueba-  23120     1  --    --  48:00 R   --    wn004
     378[user@ui ~]$ qstat -n1 | grep MAT
     379308635-1.encina user    grid     MATprueba-  19710     1  --    --  48:00 R   --    wn002
     380308635-2.encina user    grid     MATprueba-  19731     1  --    --  48:00 R   --    wn002
     381308635-3.encina user    grid     MATprueba-   1060     1  --    --  48:00 R   --    wn003
     382308635-4.encina user    grid     MATprueba-   1079     1  --    --  48:00 R   --    wn003
     383308635-5.encina user    grid     MATprueba-  23120     1  --    --  48:00 R   --    wn004
    407384}}}
    408385
    409386Una vez terminado aparecen los siguientes ficheros en el directorio de trabajo:
    410387   {{{
    411 [lluis@mar CursilloPBS]$ ls -l
    412 -rw-r--r-- 1 lluis gmeteo 1030 Dec 14 17:43 log_lluis.err
    413 -rwxr-xr-x 1 lluis gmeteo  526 Dec 14 17:42 matlab_prueba.pbs
    414 -rw------- 1 lluis gmeteo  374 Dec 14 17:43 MATprueba.e308635-1
    415 -rw------- 1 lluis gmeteo  374 Dec 14 17:43 MATprueba.e308635-2
    416 -rw------- 1 lluis gmeteo  374 Dec 14 17:43 MATprueba.e308635-3
    417 -rw------- 1 lluis gmeteo  374 Dec 14 17:43 MATprueba.e308635-4
    418 -rw------- 1 lluis gmeteo  374 Dec 14 17:43 MATprueba.e308635-5
    419 -rw------- 1 lluis gmeteo 1121 Dec 14 17:43 MATprueba.o308635-1
    420 -rw------- 1 lluis gmeteo 1121 Dec 14 17:43 MATprueba.o308635-2
    421 -rw------- 1 lluis gmeteo 1121 Dec 14 17:43 MATprueba.o308635-3
    422 -rw------- 1 lluis gmeteo 1121 Dec 14 17:43 MATprueba.o308635-4
    423 -rw------- 1 lluis gmeteo 1121 Dec 14 17:43 MATprueba.o308635-5
     388[user@ui ~]$ ls -l
     389-rw-r--r-- 1 user gmeteo 1030 Dec 14 17:43 log_user.err
     390-rwxr-xr-x 1 user gmeteo  526 Dec 14 17:42 matlab_prueba.pbs
     391-rw------- 1 user gmeteo  374 Dec 14 17:43 MATprueba.e308635-1
     392-rw------- 1 user gmeteo  374 Dec 14 17:43 MATprueba.e308635-2
     393-rw------- 1 user gmeteo  374 Dec 14 17:43 MATprueba.e308635-3
     394-rw------- 1 user gmeteo  374 Dec 14 17:43 MATprueba.e308635-4
     395-rw------- 1 user gmeteo  374 Dec 14 17:43 MATprueba.e308635-5
     396-rw------- 1 user gmeteo 1121 Dec 14 17:43 MATprueba.o308635-1
     397-rw------- 1 user gmeteo 1121 Dec 14 17:43 MATprueba.o308635-2
     398-rw------- 1 user gmeteo 1121 Dec 14 17:43 MATprueba.o308635-3
     399-rw------- 1 user gmeteo 1121 Dec 14 17:43 MATprueba.o308635-4
     400-rw------- 1 user gmeteo 1121 Dec 14 17:43 MATprueba.o308635-5
    424401}}}
    425402Aparecen los ficheros de salida de los cinco jobs. Miramos el contenido del tercero:
    426403   {{{
    427 [lluis@mar CursilloPBS]$ cat MATprueba.e308635-3
     404[user@ui ~]$ cat MATprueba.e308635-3
    428405which: no shopt in (/software/Matlab_R2009a/bin:/software/CentOS/5.2/netcdf/4.1.1/gcc-gfortran4.1.2/bin:/opt/d-ca
    429406che/srm/bin:/opt/d-cache/dcap/bin:/opt/edg/bin:/opt/glite/bin:/opt/globus/bin:/opt/lcg/bin:/bin:/usr/bin:/oceano/
    430407gmeteo/users/lluis/bin)
    431 [lluis@mar CursilloPBS]$ cat MATprueba.o308635-3
     408[user@ui ~]$ cat MATprueba.o308635-3
    432409Warning: No display specified.  You will not be able to display graphics on the screen.
    433410Warning: No window system found.  Java option 'MWT' ignored
     
    454431pbsjob =
    455432
    456 308635-3.ce01.macc.unican.es
    457 
    458 Esta es la realizacion: "308635-3.ce01.macc.unican.es"
     433308635-3.encina
     434
     435Esta es la realizacion: "308635-3.encina"
    459436
    460437num =
     
    471448Mientras que en el correo (llegando por orden de finalización), me aparecen 5 correos con el título:{{{PBS JOB 308635-[N].ce01.macc.unican.es}}} siendo [N]=(1,5). El contenido del correo {{{#3}}}
    472449   {{{
    473 PBS Job Id: 308635-3.ce01.macc.unican.es
     450PBS Job Id: 308635-3.encina
    474451Job Name:   MATprueba-3
    475452Exec host:  wn003.macc.unican.es/0
     
    502479Lanzando el job:
    503480  {{{
    504 [lluis@mar CursilloPBS]$ qsub -v waitTIME='60' prueba.pbs
     481[user@ui ~]$ qsub -v waitTIME='60' prueba.pbs
    505482}}}
    506483
     
    518495 * Es muy distinto que se cuelgue un nodo a que se cuelgue una máquina que dé servicio a tod@s
    519496 * Trabajar masivamente en el directorio {{{/oceano/gmeteo/WORK}}}, dejar en el {{{HOME, /oceano/gmeteo/users/[usuario]}}} sólo el material sensible (scripts, programas, etc...)
    520 
    521 = Apendice =
    522 
    523 == Componentes de un clúster ==
    524 
    525 Un clúster es una agrupación de unidades de computación el cual permite trabajar con unidades individuales o cualquier subconjunto de ellas. Las unidades de computación pueden ser de muchos tipos y tener muchas características distintas, por lo general con una unidad de cálculo (''core'') y una memoria (particular del core o compartida con otros). Un clúster suele tener much@s usuari@s que querrán ejecutar distintas aplicaciones. Un gestor de colas es el software encargado de manejar las aplicaciones que se quieren ejecutar en un determinado clúster.
    526 
    527 Las unidades básicas que constituyen un clúster son:
    528  * '''nodos:''' computadoras que contienen una estructura parecida a un ordenador común. En estas máquinas un conjunto de cpus se conectan por la placa base sin necesidad de una red externa. Además tienen memória y un disco duro propio.
    529  * '''cpu:''' unidad de cáclulo. El nombre es ambiguo puesto que no tiene que coincidir exactamente con una cpu física. Ya que ho en día hay cpus que pueden contener 2, 4, 8, 16 o más cores (estos cores pueden ser reales o que permitan 'multithreading'). Así que cpu es la unidad mínima de cálculo independientemente de su condición. Así que la situación física de los nodos es:
    530    * '''nodos viejos:''' 1 cpu con dos cores
    531    * '''nodos menos viejos:''' 26 nodos de 2 cpus con 4 cores
    532    * '''nodos nuevos:''' 12 nodos de 2 cpus con 8 cores
    533 
    534  * '''switch:''' unidad de interconnexión entre nodos. Permite ver todas las cpus de distintos nodos como una única máquina.
    535  * '''unidad de almacenamiento:''' máquina constituida por un conjunto de discos duros. Suele tener tres espacios básicos:
    536    * {{{HOME}}}: Es un directorio particular de cada usuario al cual se accede al iniciar una sesión/job en el clúster
    537    * datos: datos necesarios para trabajar con las aplicaciones de los usuarios del clúster
    538    * trabajo: espacio en donde se almacenan los resultados de los jobs
    539    * Lo mas común es que todas las unidades de almacenamiento sean visibles des de todos los nodos de un clúster
    540 
    541 == Gestor de colas ==
    542 Para que un clúster funcione adecuadamente para tod@s us usuari@s y el gestor de colas pueda hacer su trabajo, l@s usuari@s sólo tienen que interactuar con el gestor por medio de ''jobs''. Estos ''jobs'' son peticiones de recursos del clúster (número de cores, tiempo de ejecución...) necesarios poder lanzar la aplicación del usuari@. El gestor de colas será el encargado de permitir la ejecución de la petición si hay suficientes recursos disponibles en el clúster. En caso contrario, el trabajo se quedará ''encolado'', a la espera de que haya los recursos suficientes requeridos en el ''job''. De esta manera, todas las peticiones de l@s usuari@s son centralizadas y manejadas automáticamente por el gestor de colas. Este gestor de colas puede a su vez, estar siguiendo unas directrices de prioridades de ejecución determinadas por otros softwares buscando maximizar el rendimiento del clúster.
    543 
    544 El sistema de colas del clúster del ''Grupo de Meteorología de Santander'' (Diciembre 2010) es el sistema de colas PBS (''Portable Batch System'').
    545 
    546 == Otros ejemplos ==
    547 
    548 === Matar todos los jobs ===
    549 Si se quiere matar todos los jobs que cumplan un requisito (en el ejemplo un nombre de usuario), se podría utilizar el {{{qstat}}}:
    550    {{{
    551 [lluis@mar $] qdel `qstat | grep lluis | awk '{print $1}'`
    552 }}}
    553 Se ha explicado que el '{{{qdel [jobid]}}}' finaliza el job con número '{{{[jobid]}}}'. La instrucción '{{{qstat | grep lluis}}}' sólo listará ls jobs que contengan la palabra '{{{lluis}}}'. Al añadir al final otra instrucción '{{{| awk '{print $1}'}}}', sólo se lista el primer valor (que coincide con el número de job). Así que '{{{qdel}}}', va a ejecutarse con la salida de todo lo que está entre {{{`   `}}}, es decir, todos los número de jobs listados con '{{{qstat}}}' que contengan la palabra '{{{lluis}}}'.
    554 
    555 === Mandar el job a un nodo en concreto ===
    556 Si se quiere mandar el job a un nodo en concreto se substituye la línea {{{'PBS -l nodes=1:ppn=1'}}} por:
    557    {{{
    558 #PBS -l nodes=wn[nnn].macc.unican.es
    559 }}}
    560 Donde [nnn] es el nodo requerido. Este job carece un poco de sentido, puesto que si se hacen las cosas bien, el trabajo tendría que ser ejecutable igualmente en cualquier nodo.
    561 
    562 == APENDICE: Correos ==
    563 
    564 === Correo 30 septiembre 2011: Requerimientos de memoria trabjos en la cola 'estadistica'  ===
    565 Buenos días,
    566 
    567 Esto es una actualización del correo que os mandé hace una semana...
    568 
    569 Últimamente hemos tenido problemas con el clúster. Estos problemas acaecían por jobs que superaban la capacidad de memoria de los nodos. Después de mirárnoslo, hemos encontrado la manera para evitarlo. Se trata de mandar los jobs al clúster (envia_matlab, envia_R) con un requerimiento de memória incluído. Con este requerimiento de memoria se establecen dos cosas en los jobs:
    570  1.- Los trabajos que se manden sólo se van a ejecutar si ecuentran un nodo que tenga disponible la memoria requerida
    571  2.- Si algún elemento del trabajo mandado supera este límite de memoria, la ejecución del job se parará.
    572 
    573 Para hacer este requerimiento se tiene que añadir a la instrucción 'qsub'
    574 -l mem=[cantidad_de_memoria kb/mb/gb/tb]
    575 
    576 o si es en un script de pbs
    577 #PBS mem=[cantidad_de_memoria kb/mb/gb/tb]
    578 
    579 La  [cantidad_de_memoria] tiene que ser un número entero
    580 
    581 Cada job irá reservando memoira del nodo. Cuando un trabajo no encuentre suficiente memoria se quedará a la espera hasta que la consiga. Esto puede hacer que por ejemplo con un nodo con 8 cores y 8 GB de memoria, sólo pueden correr en el 3 jobs de 2250mb, un cuarto ya no entraría. Así quedarían 5 cores libres que no harían nada (a no ser que le mandáramos 5 jobs que no llegasen a consumir los 250mb restantes)
    582 
    583 Recordad que tenéis a vuestra disposición una wiki con toda esta información
    584 
    585 https://www.meteo.unican.es/trac/meteo/wiki/ColasPBS
    586 
    587 La cola 'estadística' tiene por defecto un valor de 'mem=750mb'. Si tenéis que mandar un trabajo al clúster que sepáis que vaya a ocupar mucha memoria, por favor, augmentad el valor de 'mem' a lo que estimeis, pero nunca superando los '7gb', ya que los nodos de la cola estadística sólo tienen 8gb de memoria (el sistema ocupa una parte).
    588 
    589 Por ahora si el job muere por exceso de memoria no habrá manera de saberlo, puesto que de momento no sabemos como hacer que el sistema mande un mensaje diciendo algo. Estamos en ello.
    590 
    591 Hasta ahora,
    592 
    593 Lluís