El clúster se organiza en partitions (aka colas) y a su vez tiene unidades organizativas como accounts u otros formas de limitar los trabajos. Por todos los aspectos que afectan a un trabajo se puede consultar.
Vemos las particiones presentes
$ sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
cola01* up 12:00:00 5 idle~ atlas-cola01-c01g01-[0-4]
Concluimos, en este caso, que solo hay una partición llamada "cola01" y que tendría como mucho 5 nodos. En lo sucesivo podemos ver la cantidad de trabajo en la partición.
Comando squeue
Muestra la lista de trabajos en el cluster y algunos datos interesantes como el estado y el tiempo de ejecución. Hay una lista completa de posibles estados más abajo.
Algunos filtros habituales para mostrar los trabajos
Motrar todo formateando la salida
Se muestra todo si se lanza squeue sin parámetros.
squeue
Si tenemos solo una partición, el comando anterior equivale a los 2 siguientes:
squeue -a
squeue -p cola01
Se puede obtener una salida con un formato más legible usando la variable SQUEUE_FORMAT.
SQUEUE_FORMAT="%.7i %9P %35j %.8u %.2t %.12M %.12L %.5C %.7m %.4D %R" squeue
Mostrar los de un usuario concreto
squeue -u jhidalgo
Mostrar los que están en estado PENDING
squeue -t PD
Mostrar una estimación de cuando se iniciará un trabajo
$ SQUEUE_FORMAT="%.7i %9P %35j %.8u %.2t %.12M %.12L %.5C %.7m %.4D %R" squeue --start
JOBID PARTITION NAME USER ST START_TIME NODES SCHEDNODES NODELIST(REASON)
655 cola01 script.s francesc PD N/A 1 (null) (PartitionTimeLimit)
657 cola01 script.s francesc PD N/A 1 (null) (PartitionTimeLimit)
Códigos de estado de squeue
El comando squeue detalla una variedad de información sobre el estado de un trabajo activo con códigos de estado y motivo. Los códigos de estado de trabajo describen el estado actual de un trabajo en la cola (por ejemplo, pendiente, completado). Los códigos de motivo del trabajo describen la razón por la que el trabajo se encuentra en su estado actual.
Las siguientes tablas describen una variedad de códigos de estado y motivo de trabajo que puede encontrar al utilizar squeue para comprobar sus trabajos.
| Status | Code | Explaination |
|---|---|---|
| COMPLETED | CD | The job has completed successfully. |
| COMPLETING | CG | The job is finishing but some processes are still active. |
| FAILED | F | The job terminated with a non-zero exit code and failed to execute. |
| PENDING | PD | The job is waiting for resource allocation. It will eventually run. |
| PREEMPTED | PR | The job was terminated because of preemption by another job. |
| RUNNING | R | The job currently is allocated to a node and is running. |
| SUSPENDED | S | A running job has been stopped with its cores released to other jobs. |
| STOPPED | ST | A running job has been stopped with its cores retained. |
Una lista completa de códigos se puede encontrar en Slurm’s documentation.
Posibles causas del estado de un trabajo
| Reason Code | Explaination |
|---|---|
Priority | One or more higher priority jobs is in queue for running. Your job will eventually run. |
Dependency | This job is waiting for a dependent job to complete and will run afterwards. |
Resources | The job is waiting for resources to become available and will eventually run. |
InvalidAccount | The job’s account is invalid. Cancel the job and rerun with correct account. |
InvaldQoS | The job’s QoS is invalid. Cancel the job and rerun with correct account. |
QOSGrpCpuLimit | All CPUs assigned to your job’s specified QoS are in use; job will run eventually. |
QOSGrpMaxJobsLimit | Maximum number of jobs for your job’s QoS have been met; job will run eventually. |
QOSGrpNodeLimit | All nodes assigned to your job’s specified QoS are in use; job will run eventually. |
PartitionCpuLimit | All CPUs assigned to your job’s specified partition are in use; job will run eventually. |
PartitionMaxJobsLimit | Maximum number of jobs for your job’s partition have been met; job will run eventually. |
PartitionNodeLimit | All nodes assigned to your job’s specified partition are in use; job will run eventually. |
AssociationCpuLimit | All CPUs assigned to your job’s specified association are in use; job will run eventually. |
AssociationMaxJobsLimit | Maximum number of jobs for your job’s association have been met; job will run eventually. |
AssociationNodeLimit | All nodes assigned to your job’s specified association are in use; job will run eventually. |
La lista completa está en Slurm’s documentation.