Both sides previous revisionPrevious revision | Last revisionBoth sides next revision |
centro:servizos:hpc:envio_trabajo [2017/06/16 14:21] – [Envío y gestión de los trabajos] jorge.suarez | centro:servizos:hpc:envio_trabajo [2017/10/09 11:23] – diego.cougil |
---|
====== Envío y gestión de los trabajos ====== | ====== Envío e xestión dos traballos ====== |
| |
===== Enviar los trabajos al sistema de colas ===== | ===== Enviar os traballos ao sistema de colas ===== |
-------------- | -------------- |
El envío de trabajos se realiza a través del comando qsub, cuyo argumento obligatorio es el nombre de un script de shell. | O envío de traballos realízase a través do comando qsub, cuxo argumento obrigatorio é o nome dun script de shell. |
<code> | <code> |
ct$ qsub script.sh | ct$ qsub script.sh |
</code> | </code> |
El comando qsub admite como parámetros las mismas opciones que pueden indicarse como comentarios #PBS en el script. | O comando qsub admite como parámetros as mesmas opcións que poden indicarse como comentarios #PBS no script. |
| |
===== Consultar el estado del trabajo, las colas o los nodos ===== | ===== Consultar o estado do traballo, as colas ou os nodos ===== |
--------------- | --------------- |
==== Información de las colas ==== | ==== Información das colas ==== |
El comando ''qstat'' permite consultar el estado de las colas, | O comando ''qstat'' permite consultar o estado das colas, |
| |
<code bash> | <code bash> |
ct$ qstat -q # Información global de las colas | ct$ qstat -q # Información global das colas |
server: ctcomp2 | server: ctcomp2 |
| |
0 0 | 0 0 |
</code> | </code> |
La columna State indica con su primera letra si la cola está (E)nabled o (D)isabled y con la segunda letra si la cola está (R)unning o (S)topped. | A columna State indica coa súa primeira letra se a cola está (E)nabled ou (D)isabled e coa segunda letra se a cola está (R)unning ou (S)topped. |
| |
==== Información de los trabajos ==== | ==== Información dos traballos ==== |
Cada vez que se envía un trabajo se le asigna un JOB_ID que sirve como identificador único. Si el trabajo se envió con la opción -t entonces se identificará mediante ''job_id[indice]''. | Cada vez que se envía un traballo asígnaselle un JOB_ID que serve como identificador único. Se o traballo enviouse coa opción -t entón identificarase mediante ''job_id[indice]''. |
| |
<code bash> | <code bash> |
ct$ qstat # Información general de los trabajos de usuario | ct$ qstat # Información xeral dos traballos de usuario |
Job id Name User Time Use S Queue | Job id Name User Time Use S Queue |
------------------------- ---------------- --------------- -------- - ----- | ------------------------- ---------------- --------------- -------- - ----- |
999999.ctcomp2 nombre_del_trabajo nombre_usuario 38:05:59 R np32 | 999999.ctcomp2 nome_do_traballo nome_usuario 38:05:59 R np32 |
</code> | </code> |
La columna Time Use muestra el tiempo de CPU usado. | A columna Time Use amosa o tempo de CPU empregado. |
La columna S es el estado del trabajo, que puede ser uno de los siguientes: | A columna S é o estado do traballo, que pode ser un dos seguintes: |
* C - Job is completed after having run | * C - Job is completed after having run |
* E - Job is exiting after having run. | * E - Job is exiting after having run. |
| |
<code bash> | <code bash> |
ct$ qstat -f 999999.ctcomp2 # Información sobre un trabajo específico | ct$ qstat -f 999999.ctcomp2 # Información sobre un traballo específico |
Job Id: 999999.ctcomp2.innet | Job Id: 999999.ctcomp2.innet |
Job_Name = nombre_del_trabajo | Job_Name = nombre_do_traballo |
Job_Owner = nombre_usuario@ctcomp2.innet | Job_Owner = nome_usuario@ctcomp2.innet |
job_state = Q | job_state = Q |
queue = np32 | queue = np32 |
Checkpoint = u | Checkpoint = u |
ctime = Fri Feb 12 10:09:34 2016 | ctime = Fri Feb 12 10:09:34 2016 |
Error_Path = ctcomp2.innet:/home/local/nombre_usuario/nombre_del_trabajo.e999999 | Error_Path = ctcomp2.innet:/home/local/nome_usuario/nome_do_traballo.e999999 |
Hold_Types = n | Hold_Types = n |
Join_Path = n | Join_Path = n |
Mail_Users = nombre_usuario@usc.es | Mail_Users = nombre_usuario@usc.es |
mtime = Fri Feb 12 10:09:34 2016 | mtime = Fri Feb 12 10:09:34 2016 |
Output_Path = ctcomp2.innet:/home/local/nombre_usuario/nombre_trabajo.o999999 | Output_Path = ctcomp2.innet:/home/local/nome_usuario/nome_traballo.o999999 |
Priority = 0 | Priority = 0 |
qtime = Fri Feb 12 10:09:34 2016 | qtime = Fri Feb 12 10:09:34 2016 |
Resource_List.walltime = 12:00:00 | Resource_List.walltime = 12:00:00 |
substate = 10 | substate = 10 |
Variable_List = PBS_O_QUEUE=batch,PBS_O_HOME=/home/local/nombre_usuario, | Variable_List = PBS_O_QUEUE=batch,PBS_O_HOME=/home/local/nome_usuario, |
PBS_O_LOGNAME=nombre_usuario, | PBS_O_LOGNAME=nome_usuario, |
PBS_O_PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games, | PBS_O_PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games, |
PBS_O_MAIL=/var/mail/nombre_usuario,PBS_O_SHELL=/bin/bash, | PBS_O_MAIL=/var/mail/nome_usuario,PBS_O_SHELL=/bin/bash, |
PBS_O_LANG=es_ES.UTF-8,PBS_O_WORKDIR=/home/local/nombre_usuario, | PBS_O_LANG=es_ES.UTF-8,PBS_O_WORKDIR=/home/local/nome_usuario, |
PBS_O_HOST=ctcomp2.innet,PBS_O_SERVER=ctcomp2 | PBS_O_HOST=ctcomp2.innet,PBS_O_SERVER=ctcomp2 |
euser = nombre_usuario | euser = nome_usuario |
egroup = citius | egroup = citius |
queue_rank = 2110 | queue_rank = 2110 |
| |
</code> | </code> |
Una característica interesante de los trabajos finalizados es el EXIT_STATUS que se mostraría cuando el JOB_STATE es C. | Unha característica interesante dos traballos rematados é o EXIT_STATUS que se amosaría cando el JOB_STATE es C. |
^ Codigo interno ^ Valor de EXIT_STATUS ^ Significado ^ | ^ Código interno ^ Valor de EXIT_STATUS ^ Significado ^ |
| JOB_EXEC_OVERLIMIT | -10 | | | | JOB_EXEC_OVERLIMIT | -10 | | |
| JOB_EXEC_STDOUTFAIL | -9 | | | | JOB_EXEC_STDOUTFAIL | -9 | | |
| JOB_EXEC_OK | 0 | Job execution successful | | | JOB_EXEC_OK | 0 | Job execution successful | |
| | 1-256 | Exit status of the top-level shell | | | | 1-256 | Exit status of the top-level shell | |
| | >256 | Trabajo terminado por una señal UNIX, restarle 256 nos da el número de la señal. | | | | >256 | Traballo rematado por unha sinal UNIX, restarlle 256 dános o número do sinal. | |
| |
<code bash> | <code bash> |
ct$ checkjob 999999.ctcomp2 # Información sobre un trabajo específico | ct$ checkjob 999999.ctcomp2 # Información sobre un traballo específico |
| |
checking job 999999 | checking job 999999 |
| |
<code bash> | <code bash> |
ct$ tracejob -n 3 999999.ctcomp2 # Devuelve el contenido de los logs relativos al jobid indicado. | ct$ tracejob -n 3 999999.ctcomp2 # Devolve o contido dos logs relativos ao jobid indicado. |
Job: 136553.ctcomp2.innet | Job: 136553.ctcomp2.innet |
| |
02/10/2016 15:22:26 A queue=batch | 02/10/2016 15:22:26 A queue=batch |
02/10/2016 15:22:26 A queue=np1 | 02/10/2016 15:22:26 A queue=np1 |
02/10/2016 15:22:26 A user=nombre_usuario group=citius | 02/10/2016 15:22:26 A user=nome_usuario group=citius |
jobname=nombre_trabajo queue=np1 ctime=1455114146 qtime=1455114146 etime=1455114146 start=1455114146 owner=nombre_usuario@ctcomp2.innet exec_host=inode19/24 Resource_List.neednodes=1:ppn=1 Resource_List.nodect=1 Resource_List.nodes=1:ppn=1 Resource_List.vmem=2040mb Resource_List.walltime=12:00:00 | jobname=nome_trabajo queue=np1 ctime=1455114146 qtime=1455114146 etime=1455114146 start=1455114146 owner=nombre_usuario@ctcomp2.innet exec_host=inode19/24 Resource_List.neednodes=1:ppn=1 Resource_List.nodect=1 Resource_List.nodes=1:ppn=1 Resource_List.vmem=2040mb Resource_List.walltime=12:00:00 |
02/10/2016 16:08:34 S Exit_status=0 resources_used.cput=00:46:14 | 02/10/2016 16:08:34 S Exit_status=0 resources_used.cput=00:46:14 |
resources_used.mem=234868kb resources_used.vmem=1002480kb | resources_used.mem=234868kb resources_used.vmem=1002480kb |
resources_used.walltime=00:46:08 | resources_used.walltime=00:46:08 |
02/10/2016 16:08:34 S on_job_exit valid pjob: 999999.ctcomp2.innet (substate=50) | 02/10/2016 16:08:34 S on_job_exit valid pjob: 999999.ctcomp2.innet (substate=50) |
02/10/2016 16:08:34 A user=nombre_usuario group=citius jobname=nombre_trabajo queue=np1 ctime=1455114146 qtime=1455114146 etime=1455114146 start=1455114146 owner=nombre_usuario@ctcomp2.innet exec_host=inode19/24 Resource_List.neednodes=1:ppn=1 Resource_List.nodect=1 Resource_List.nodes=1:ppn=1 Resource_List.vmem=2040mb Resource_List.walltime=12:00:00 session=7304 end=1455116914 Exit_status=0 resources_used.cput=00:46:14 resources_used.mem=234868kb resources_used.vmem=1002480kb resources_used.walltime=00:46:08 | 02/10/2016 16:08:34 A user=nome_usuario group=citius jobname=nome_traballo queue=np1 ctime=1455114146 qtime=1455114146 etime=1455114146 start=1455114146 owner=nombre_usuario@ctcomp2.innet exec_host=inode19/24 Resource_List.neednodes=1:ppn=1 Resource_List.nodect=1 Resource_List.nodes=1:ppn=1 Resource_List.vmem=2040mb Resource_List.walltime=12:00:00 session=7304 end=1455116914 Exit_status=0 resources_used.cput=00:46:14 resources_used.mem=234868kb resources_used.vmem=1002480kb resources_used.walltime=00:46:08 |
02/10/2016 17:08:35 S dequeuing from np1, state COMPLETE | 02/10/2016 17:08:35 S dequeuing from np1, state COMPLETE |
</code> | </code> |
| |
| |
==== Información de los nodos ==== | ==== Información dos nodos ==== |
Para obtener una vista global del estado del cluster se puede utilizar el comando ''nodes-usage''. | Para obter unha vista global do estado do clúster, pódese empregar o comando ''nodes-usage''. |
<code bash> | <code bash> |
$ nodes-usage | $ nodes-usage |
</code> | </code> |
| |
Para obtener información sobre los usuarios que se encuentran en cada nodo, se puede utilizar el comando ''node-users <nodo>'': | Para obter información sobre os usuarios que se atopan en cada nodo, pódese empregar o comando ''node-users <nodo>'': |
| |
<code bash> | <code bash> |
</code> | </code> |
| |
Para obtener información más detallada sobre los nodos, se puede utilizar el comando ''pnbsnodes'': | Para obter información máis detallada sobre os nodos, pódese empregar o comando ''pnbsnodes'': |
| |
<code bash> | <code bash> |
ct$ pbsnodes #Información detallada de todos los nodos | ct$ pbsnodes #Información detallada de todos os nodos |
node1 | node1 |
state = free | state = free |
| |
<code bash> | <code bash> |
ct$ pbsnodes -l # Listado de los nodos apagados(down) o no disponibles(offline) | ct$ pbsnodes -l # Listaxe dos nodos apagados(down) ou non dispoñibles(offline) |
node2 down,offline | node2 down,offline |
node3 down,offline | node3 down,offline |
| |
| |
===== Eliminar un trabajo de la cola ===== | ===== Eliminar un traballo da cola ===== |
------------- | ------------- |
El comando ''qdel'' permite al usuario eliminar un trabajo. Funciona enviándole primero una señal TERM y luego una KILL. Este comando necesita como argumento el identificador que PBS le asigna cuando se registra un nuevo trabajo, y que se puede consultar con ''qstat''. | O comando ''qdel'' permite ao usuario eliminar un traballo. Funciona enviándolle primeiro un sinal TERM e despois unha KILL. Este comando precisa como argumento o identificador que PBS asígnalle cando se rexistra un novo traballo, e que pode consultarse con ''*qstat''. |
<code> | <code> |
ct$ qdel job_id | ct$ qdel job_id |