| Both sides previous revisionPrevious revisionNext revision | Previous 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:29] (actual) – [Eliminar un traballo da cola] 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 |