Changes between Version 5 and Version 6 of ColasPBS
- Timestamp:
- Dec 13, 2010 6:23:03 PM (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ColasPBS
v5 v6 57 57 58 58 Las peticiones se hacen por un conjunto de ''flags''. El envio del job al gestor de la cola se puede hacer añadiendo todas las directrices en la línea de comandos de la aplicación, o por medio de una script (archivo de texto con instrucciones de sistema). En según que circumstancias nos va interesar hacerlo de una manera u otra, pero las dos son equivalentes. La estructura tipo de un script (llamado por ejemplo {{{job.pbs}}}) de colas tiene la siguiente estructura (se añaden todas las opciones a modo de ejemplo): 59 60 61 {{{62 63 }}}64 59 65 60 {{{ … … 131 126 [jobid] [usuario] [queue] [jobname] [SessID] [NDS] [TSK] [Req' Memory] [Req' time] [S] [Time] 132 127 }}} 133 Los estados [S] que puede tener un job en la cola son:134 * E el trabajo está saliendo después de finalizar su ejecución.135 * H el trabajo está capturado (''Hold'', ej. esperando que termine otro)136 * Q el trabajo está en cola, elegible para su ejecución.137 * R el trabajo está ejecutándose.138 * T el trabajo está en transición (moviéndose a otra localización).139 * W el trabajo está a la espera de alcanzar el tiempo de ejecución.140 * S el trabajo está suspendido.128 * Los estados [S] que puede tener un job en la cola son: 129 * E el trabajo está saliendo después de finalizar su ejecución. 130 * H el trabajo está capturado (''Hold'', ej. esperando que termine otro) 131 * Q el trabajo está en cola, elegible para su ejecución. 132 * R el trabajo está ejecutándose. 133 * T el trabajo está en transición (moviéndose a otra localización). 134 * W el trabajo está a la espera de alcanzar el tiempo de ejecución. 135 * S el trabajo está suspendido. 141 136 142 137 == ejemplos == 143 138 144 139 === Wall time insuficiente === 145 Tomamos un job sencillo de ejemplo escrito en un fichero llamado {{{ prueba.pbs}}}. Este job lanza el script {{{espera.bash}}} el cual se espera los segundos dados por el primer argumento y escribe por pantalla el mensaje "Hola mundo".140 Tomamos un job sencillo de ejemplo escrito en un fichero llamado {{{'prueba.pbs'}}}. Este job lanza el script {{{'espera.bash'}}} el cual se espera los segundos dados por el primer argumento y escribe por pantalla el mensaje "Hola mundo". 146 141 {{{ 147 142 #!/bin/bash … … 188 183 189 184 === Mandar el job a un nodo en concreto === 190 Si se quiere mandar el job a un nodo en concreto se substituye la línea {{{ PBS -l nodes=1:ppn=1}}} por:185 Si se quiere mandar el job a un nodo en concreto se substituye la línea {{{'PBS -l nodes=1:ppn=1'}}} por: 191 186 {{{ 192 187 #PBS -l nodes=wn[nnn].macc.unican.es … … 195 190 196 191 === Ocupar toda la memória de un nodo con un único job === 197 Para ocupar toda la memória de un nodo con un único job, bastará con pedit todos los cores de un nodo de la cola. Así, si queremos toda la memória de los nodos de la cola {{{ dinamica}}}, requeriríamos:192 Para ocupar toda la memória de un nodo con un único job, bastará con pedit todos los cores de un nodo de la cola. Así, si queremos toda la memória de los nodos de la cola {{{'dinamica'}}}, requeriríamos: 198 193 {{{ 199 194 #PBS -l nodes=1:ppn=8 … … 201 196 202 197 === Lanzar un job interactivo === 203 A la hora de hacer pruebas es muy útil abrir una sessión interactiva en un nodo del clúster. Esto se hace mandando un job interactivo. La sessión que se habra durará todo el tiempo que se quiera hasta que no se le mande la instrucción de salida {{{ exit}}}. La sintaxis es:198 A la hora de hacer pruebas es muy útil abrir una sessión interactiva en un nodo del clúster. Esto se hace mandando un job interactivo. La sessión que se habra durará todo el tiempo que se quiera hasta que no se le mande la instrucción de salida {{{'exit'}}}. La sintaxis es (la cola asume '{{{ppn=1}}}'): 204 199 {{{ 205 200 qsub -I -l nodes=1 -q [queue] … … 208 203 209 204 === Lanzar un job con dependencias === 210 En este caso, no se lanzará una script {{{ listar.bash}}} hasta que no termine la espera de 60 segundos (una vez corregido el walltime)211 {{{ 212 205 En este caso, no se lanzará una script {{{'listar.bash'}}} hasta que no termine la espera de 60 segundos (una vez corregido el walltime) 206 {{{ 207 [lluis@mar CursilloPBS]$ date 213 208 Mon Dec 13 17:53:57 CET 2010 214 209 [lluis@mar CursilloPBS]$ qsub prueba.pbs … … 217 212 307080.ce01.macc.unican.es 218 213 }}} 219 La script 'listar.bash' no se ejecutará hasta que termine 'prueba.pbs'con pid 307079. Se sigue:214 La script {{{'listar.bash'}}} no se ejecutará hasta que termine {{{'prueba.pbs'}}} con pid 307079. Se sigue: 220 215 {{{ 221 216 [lluis@mar CursilloPBS]$ ls 222 217 espera.bash listar.bash prueba.pbs 223 218 [lluis@mar CursilloPBS]$ date 224 Mon Dec 13 17:54:30 CET 2010225 [lluis@mar CursilloPBS]$ ls226 espera.bash listar.bash prueba.pbs227 [lluis@mar CursilloPBS]$ date228 219 Mon Dec 13 17:54:43 CET 2010 229 [lluis@mar CursilloPBS]$ ls230 espera.bash listar.bash prueba.pbs231 [lluis@mar CursilloPBS]$ date232 Mon Dec 13 17:54:54 CET 2010233 220 [lluis@mar CursilloPBS]$ ls 234 221 espera.bash listar.bash prueba.pbs … … 241 228 [lluis@mar CursilloPBS]$ ls 242 229 espera.bash listado.e307080 listado.o307080 listar.bash prueba.e307079 prueba.o307079 prueba.pbs 230 [lluis@mar CursilloPBS]$ cat prueba.o307079 231 Hola mundo 232 [lluis@mar CursilloPBS]$ cat prueba.e307079 243 233 }}} 244 234 245 235 == Monitorización del clúster == 246 Hay dos maneras de observar la activada del clúster. Por línea de comandos se tiene la instrucción {{{ pbs_nodes}}}236 Hay dos maneras de observar la activada del clúster. Por línea de comandos se tiene la instrucción {{{'pbs_nodes'}}} 247 237 Por entorno web está instalado el [http://www.meteo.unican.es/ganglia/ ganglia]. En este entorno se muestra toda la actividad de los nodos (consumo de cpu, memoria, disocs duros, etc...) con una interfaz gráfica. 248 238