Esta traducción es más antigua que la página original y podría estar obsoleta. Ver lo que ha cambiado.
Estás aquí: start » es » centro » servizos » hpc » envio_trabajo

Envío y gestión de los trabajos

¡Esta es una revisión vieja del documento!


>> Volver a la página principal del cluster

Envío y gestión de los trabajos

Para todos los comandos mencionados en esta página existe la correspondiente página del MAN.

Enviar los trabajos al 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.

ct$ qsub script.sh

El comando qsub admite como parámetros las mismas opciones que pueden indicarse como comentarios #PBS en el script.

Consultar el estado del trabajo, las colas o los nodos

Información de las colas

El comando qstat permite consultar el estado de las colas,

ct$ qstat -q # Información global de las colas
server: ctcomp2
 
Queue            Memory CPU Time Walltime Node  Run Que Lm  State
---------------- ------ -------- -------- ----  --- --- --  -----
graphic32          --      --    04:00:00   --    0   0 --   E R
np16               --      --    192:00:0   --    0   0 --   E R
np32               --      --    288:00:0   --    0   0 --   E R
especial           --      --    672:00:0   --    0   0 --   E R
parallel           --      --    192:00:0   --    0   0 --   E R
np2                --      --    192:00:0   --    0   0 --   E R
np8                --      --    192:00:0   --    0   0 --   E R
short              --      --       --      --    0   0 --   E R
graphic1           --      --    04:00:00   --    0   0 --   E R
np1                --      --    672:00:0   --    0   0 --   E R
batch              --      --       --      --    0   0 --   E R
np4                --      --    192:00:0   --    0   0 --   E R
interactive        --      --    01:00:00   --    0   0 --   E R
np64               --      --    384:00:0   --    0   0 --   E R
graphic            --      --       --      --    0   0 --   E R
bigmem             --      --       --      --    0   0 --   E R
graphic8           --      --    04:00:00   --    0   0 --   E R
                                               ----- -----
                                                   0     0

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.

Información de los trabajos

ct$ qstat  # Información general de los trabajos de usuario 
Job id                    Name             User               Time Use S Queue
------------------------- ---------------- ---------------    -------- - -----
999999.ctcomp2            nombre_del_trabajo nombre_usuario   38:05:59 R np32       

La columna Time Use muestra el tiempo de CPU usado. La columna S es el estado del trabajo, que puede ser uno de los siguientes:

  • C - Job is completed after having run
  • E - Job is exiting after having run.
  • H - Job is held.
  • Q - job is queued, eligible to run or routed.
  • R - job is running.
  • T - job is being moved to new location.
  • W - job is waiting for its execution time(-a option) to be reached.
qstat -f 999999.ctcomp2   # Información sobre un trabajo específico
Job Id: 999999.ctcomp2.innet
    Job_Name = nombre_del_trabajo
    Job_Owner = nombre_usuario@ctcomp2.innet
    job_state = Q
    queue = np32
    server = ctcomp2.innet
    Checkpoint = u
    ctime = Fri Feb 12 10:09:34 2016
    Error_Path = ctcomp2.innet:/home/local/nombre_usuario/nombre_del_trabajo.e999999
    Hold_Types = n
    Join_Path = n
    Keep_Files = n
    Mail_Points = ae
    Mail_Users = nombre_usuario@usc.es
    mtime = Fri Feb 12 10:09:34 2016
    Output_Path = ctcomp2.innet:/home/local/nombre_usuario/nombre_trabajo.o999999
    Priority = 0
    qtime = Fri Feb 12 10:09:34 2016
    Rerunable = True
    Resource_List.neednodes = 1:ppn=32:intel:xeonl
    Resource_List.nodect = 1
    Resource_List.nodes = 1:ppn=32:intel:xeonl
    Resource_List.vmem = 63gb
    Resource_List.walltime = 12:00:00
    substate = 10
    Variable_List = PBS_O_QUEUE=batch,PBS_O_HOME=/home/local/nombre_usuario,
	PBS_O_LOGNAME=nombre_usuario,
	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_LANG=es_ES.UTF-8,PBS_O_WORKDIR=/home/local/nombre_usuario,
	PBS_O_HOST=ctcomp2.innet,PBS_O_SERVER=ctcomp2
    euser = nombre_usuario
    egroup = citius
    queue_rank = 2110
    queue_type = E
    etime = Fri Feb 12 10:09:34 2016
    submit_args = script.sh
    fault_tolerant = False
    job_radix = 0
    submit_host = ctcomp2.innet

Una característica interesante de los trabajos finalizados es el EXIT_STATUS que se mostraría cuando el JOB_STATE es C.

Codigo interno Valor de EXIT_STATUS Significado
JOB_EXEC_OVERLIMIT -10
JOB_EXEC_STDOUTFAIL -9
JOB_EXEC_CMDFAIL -8 Exec() of user command failed
JOB_EXEC_BADRESRT -7 Job restart failed
JOB_EXEC_INITRMG -6 Job aborted on MOM init, chkpt, ok migrate
JOB_EXEC_INITRST -5 Job aborted on MOM init, chkpt, no migrate
JOB_EXEC_INITABT -4 Job aborted on MOM initialization
JOB_EXEC_RETRY -3 Job execution failed, do retry
JOB_EXEC_FAIL2 -2 Job execution failed, after files, no retry
JOB_EXEC_FAIL1 -1 Job execution failed, before files, no retry
JOB_EXEC_OK 0 Job execution successful
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.

Información de los nodos

El comando pnbsnodes da información sobre los nodos.

ct$ pbsnodes  #Información detallada de todos los nodos
node1
     state = free
     np = 64
     properties = amd,bigmem,test,active,activeX
     ntype = cluster
     status = rectime=1455267717,varattr=,jobs=,state=free,netload=86957182662,gres=,loadave=0.00,ncpus=64,physmem=132250896kb,availmem=162914704kb,totmem=163499276kb,idletime=1876325,nusers=0,nsessions=0,uname=Linux node1 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64,opsys=linux
     mom_service_port = 15002
     mom_manager_port = 15003
     gpus = 0
 
node2
     state = down,offline
     np = 64
     properties = amd,bigmem
     ntype = cluster
     status = rectime=1454919087,varattr=,jobs=,state=free,netload=1185896,gres=,loadave=0.00,ncpus=64,physmem=264633540kb,availmem=295220244kb,totmem=295881920kb,idletime=11140,nusers=0,nsessions=0,uname=Linux node2 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64,opsys=linux
     mom_service_port = 15002
     mom_manager_port = 15003
     gpus = 0
 
......
ct$ pbsnodes -l  # Listado de los nodos apagados(down) o no disponibles(offline)
node2                down,offline
node3                down,offline
node4                down,offline
node5                down,offline
node6                down,offline
node7                down,offline
inode11              down,offline
inode12              down,offline
inode13              down,offline
inode14              down,offline
inode15              down,offline
inode17              down,offline
inode18              down,offline
inode19              down,offline

Eliminar un trabajo de la cola

El comando qdel permite al usuario eliminar un trabajo de la cola PBS, antes de que sea emitido a los nodos computacionales para su ejecución. Este comando necesita como argumento el identificador que PBS le asigna cuando se registra un nuevo trabajo, y que se puede consultar con qstat.

ct$ qdel job_id