Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
es:centro:servizos:hpc [2025/12/05 09:56] – editor externo 127.0.0.1es:centro:servizos:hpc [2025/12/05 10:05] (actual) fernando.guillen
Línea 1: Línea 1:
-====== Clúster de Cálculo de Altas Prestaciones (HPC) ctcomp3 ======+====== Cluster de Computación de Altas Prestacións (HPC) ctcomp3  ======
 [[ https://web.microsoftstream.com/video/f5eba154-b597-4440-9307-3befd7597d78 | Video de la presentación del servicio (7/3/22) ]] [[ https://web.microsoftstream.com/video/f5eba154-b597-4440-9307-3befd7597d78 | Video de la presentación del servicio (7/3/22) ]]
 ===== Descripción ===== ===== Descripción =====
  
-El clúster está compuesto en la parte de cálculo por: +El clúster está compuesto en la parte de cómputo por: 
-  *  9 servidores para cálculo general.+  *  9 servidores para cómputo general.
   *  1 "fat node" para trabajos que requieran mucha memoria.   *  1 "fat node" para trabajos que requieran mucha memoria.
-  *  6 servidores para cálculo con GPU.+  *  6 servidores para computo con GPU.
    
-Los usuarios solo tienen acceso directo al nodo de login, de prestaciones más limitadas y que no debe usarse para calcular. \\+Los usuarios solo tienen acceso directo al nodo de login, de prestaciones más limitadas y que no debe usarse para computar. \\
 Todos los nodos están interconectados por una red a 10Gb. \\ Todos los nodos están interconectados por una red a 10Gb. \\
 Hay un almacenamiento distribuido accesible desde todos los nodos con 220 TB de capacidad conectado mediante una doble red de fibra de 25Gb. \\ Hay un almacenamiento distribuido accesible desde todos los nodos con 220 TB de capacidad conectado mediante una doble red de fibra de 25Gb. \\
Línea 17: Línea 17:
 |  hpc-node[3-9]              Dell R740    2 x Intel Xeon Gold 5220R @2,2 GHz (24c)        192 GB    -                           | |  hpc-node[3-9]              Dell R740    2 x Intel Xeon Gold 5220R @2,2 GHz (24c)        192 GB    -                           |
 |  hpc-fat1                  |  Dell R840    4 x Xeon Gold 6248 @ 2.50GHz (20c)              1 TB      -                           | |  hpc-fat1                  |  Dell R840    4 x Xeon Gold 6248 @ 2.50GHz (20c)              1 TB      -                           |
-|  hpc-gpu[1-2]              |  Dell R740    2 x Intel Xeon Gold 5220 CPU @ 2.20GHz (18c)    192 GB    2x Nvidia Tesla V100S 32GB       |+|  hpc-gpu[1-2]  |  Dell R740    2 x Intel Xeon Gold 5220 CPU @ 2.20GHz (18c)    192 GB    2x Nvidia Tesla V100S 32GB       |
 |  hpc-gpu3                  |  Dell R7525  |  2 x AMD EPYC 7543 @2,80 GHz (32c)              |  256 GB    2x Nvidia Ampere A100 40GB  | |  hpc-gpu3                  |  Dell R7525  |  2 x AMD EPYC 7543 @2,80 GHz (32c)              |  256 GB    2x Nvidia Ampere A100 40GB  |
 |  hpc-gpu4                  |  Dell R7525  |  2 x AMD EPYC 7543 @2,80 GHz (32c)              |  256 GB    1x Nvidia Ampere A100 80GB  | |  hpc-gpu4                  |  Dell R7525  |  2 x AMD EPYC 7543 @2,80 GHz (32c)              |  256 GB    1x Nvidia Ampere A100 80GB  |
Línea 32: Línea 32:
 </code> </code>
  
-=====  Almacenamiento, directorios y sistemas de archivos  ===== +=====  Almacenamiento, directorios y sistemas de ficheros  ===== 
-<note warning> No se hace copia de seguridad de ninguno de los sistemas de archivos del clúster!!</note> +<note warning> No se hace copia de seguridad de ninguno de los sistemas de ficheros del cluster!!</note> 
-El HOME de los usuarios en el clúster está en el sistema compartido de archivos, por lo que es accesible desde todos los nodos del clúster. Ruta definida en la variable de entorno %%$HOME%%. \\+El HOME de los usuarios en el cluster está en el sistema compartido de ficheros, por lo que es accesible desde todos los nodos del cluster. Ruta definida en la variable de entorno %%$HOME%%. \\
 Cada nodo tiene una partición local de 1 TB para scratch, que se borra al terminar cada trabajo. Se puede acceder mediante la variable de entorno %%$LOCAL_SCRATCH%% en los scripts. \\ Cada nodo tiene una partición local de 1 TB para scratch, que se borra al terminar cada trabajo. Se puede acceder mediante la variable de entorno %%$LOCAL_SCRATCH%% en los scripts. \\
 Para datos que deban ser compartidos por grupos de usuarios, hay que solicitar la creación de una carpeta en el almacenamiento compartido que solo será accesible por los miembros del grupo.\\ Para datos que deban ser compartidos por grupos de usuarios, hay que solicitar la creación de una carpeta en el almacenamiento compartido que solo será accesible por los miembros del grupo.\\
Línea 79: Línea 79:
 =====  Transferencia de ficheros y datos  ===== =====  Transferencia de ficheros y datos  =====
 === SCP === === SCP ===
-Desde tu máquina local al clúster:+Desde tu máquina local al cluster:
 <code bash> <code bash>
 scp filename <username>@hpc-login2:/<ruta> scp filename <username>@hpc-login2:/<ruta>
 </code> </code>
-Desde el clúster a tu máquina local:+Desde el cluster a tu máquina local:
 <code bash> <code bash>
 scp filename <username>@<hostname>:/<ruta> scp filename <username>@<hostname>:/<ruta>
Línea 165: Línea 165:
 ==== CONDA ==== ==== CONDA ====
 [[ https://docs.conda.io/en/latest/miniconda.html | Documentacion de Conda ]] \\ [[ https://docs.conda.io/en/latest/miniconda.html | Documentacion de Conda ]] \\
-Miniconda es la versión mínima de Anaconda y solo incluye el gestor de entornos conda, Python y unos pocos paquetes necesarios. A partir de ahí cada usuario solo descarga e instala los paquetes que necesita.+Miniconda es la versíon mínima de Anaconda y solo incluye el gestor de entornos conda, Python y unos pocos paquetes necesarios. A partir de ahí cada usuario solo descarga e instala los paquetes que necesita.
 <code bash> <code bash>
 # Obtener miniconda # Obtener miniconda
Línea 175: Línea 175:
 </code> </code>
 ===== Uso de SLURM ===== ===== Uso de SLURM =====
-El gestor de colas en el clúster es [[ https://slurm.schedmd.com/documentation.html | SLURM ]]. \\+El gestor de colas en el cluster es [[ https://slurm.schedmd.com/documentation.html | SLURM ]]. \\
 <note tip>El término CPU identifica a un core físico de un socket. El hyperthreading está desactivado, por lo que cada nodo tiene disponibles tantas CPU como (nº sockets) * (nº cores físico por socket) tenga.</note> <note tip>El término CPU identifica a un core físico de un socket. El hyperthreading está desactivado, por lo que cada nodo tiene disponibles tantas CPU como (nº sockets) * (nº cores físico por socket) tenga.</note>
 == Recursos disponibles == == Recursos disponibles ==
Línea 210: Línea 210:
 hpc-gpu3                        64                    253282                cpu_amd               gpu:A100_40:                  hpc-gpu3                        64                    253282                cpu_amd               gpu:A100_40:                 
 hpc-gpu4                        64                    253282                cpu_amd               gpu:A100_80:1(S:0)              hpc-gpu4                        64                    253282                cpu_amd               gpu:A100_80:1(S:0)             
 +hpc-gpu[5-6]                    48                    375484                cpu_amd               gpu:L4:2(S:1)
 hpc-node[1-2]                   36                    187645                cpu_intel             (null)                          hpc-node[1-2]                   36                    187645                cpu_intel             (null)                         
 hpc-node[3-9]                   48                    187645                cpu_intel             (null) hpc-node[3-9]                   48                    187645                cpu_intel             (null)
Línea 219: Línea 220:
 NODELIST            CPUS(A/I/O/T)       MEMORY              FREE_MEM            GRES                GRES_USED NODELIST            CPUS(A/I/O/T)       MEMORY              FREE_MEM            GRES                GRES_USED
 hpc-fat1            80/0/0/80           1027273             900850              (null)              gpu:0,mps:0 hpc-fat1            80/0/0/80           1027273             900850              (null)              gpu:0,mps:0
 +hpc-gpu1            16/20/0/36          187911              181851              gpu:V100S:2(S:0-1)  gpu:V100S:2(IDX:0-1)
 +hpc-gpu2            4/32/0/36           187911              183657              gpu:V100S:2(S:0-1)  gpu:V100S:1(IDX:0),m
 hpc-gpu3            2/62/0/64           253282              226026              gpu:A100_40:      gpu:A100_40:2(IDX:0- hpc-gpu3            2/62/0/64           253282              226026              gpu:A100_40:      gpu:A100_40:2(IDX:0-
 hpc-gpu4            1/63/0/64           253282              244994              gpu:A100_80:1(S:0)  gpu:A100_80:1(IDX:0) hpc-gpu4            1/63/0/64           253282              244994              gpu:A100_80:1(S:0)  gpu:A100_80:1(IDX:0)
 +hpc-gpu5            8/40/0/48           375484              380850              gpu:L4:2(S:1)       gpu:L4:1(IDX:1),mps:
 +hpc-gpu6            0/48/0/48           375484              380969              gpu:L4:2(S:1)       gpu:L4:0(IDX:N/A),mp
 hpc-node1           36/0/0/36           187645              121401              (null)              gpu:0,mps:0 hpc-node1           36/0/0/36           187645              121401              (null)              gpu:0,mps:0
 hpc-node2           36/0/0/36           187645              130012              (null)              gpu:0,mps:0 hpc-node2           36/0/0/36           187645              130012              (null)              gpu:0,mps:0
Línea 232: Línea 237:
 </code> </code>
 ==== Nodos ==== ==== Nodos ====
-Un nodo es la unidad de cálculo de SLURM, y se corresponde con un servidor físico.+Un nodo es la unidad de computación de SLURM, y se corresponde con un servidor físico.
 <code bash> <code bash>
 # Mostrar la información de un nodo: # Mostrar la información de un nodo:
Línea 255: Línea 260:
 </code> </code>
 ==== Particiones ==== ==== Particiones ====
-Las particiones en SLURM son grupos lógicos de nodos. En el clúster hay una única partición a la que pertenecen todos los nodos, por lo que no es necesario especificarla a la hora de enviar trabajos.+Las particiones en SLURM son grupos lógicos de nodos. En el cluster hay una única partición a la que pertenecen todos los nodos, por lo que no es necesario especificarla a la hora de enviar trabajos.
 <code bash> <code bash>
 # Mostrar la información de las particiones: # Mostrar la información de las particiones:
 hpc-login2 ~]$ sinfo hpc-login2 ~]$ sinfo
-defaultPartition*    up   infinite     11   idle hpc-fat1,hpc-gpu[3-4],hpc-node[1-9] +defaultPartition*    up   infinite     11   idle hpc-fat1,hpc-gpu[1-6],hpc-node[1-9] 
-# Cuando se incorporen al clúster ctgpgpu7 y 8 aparecerán como los nodos hpc-gpu1 y 2 respectivamente.+# Cuando se incorporen al cluster ctgpgpu7 y 8 apareceran como los nodos hpc-gpu1 y 2 respectivamente.
 </code> </code>
 ==== Trabajos ==== ==== Trabajos ====
 Los trabajos en SLURM son asignaciones de recursos a un usuario durante un tiempo determinado. Los trabajos se identifican por un número correlativo o JOBID. \\ Los trabajos en SLURM son asignaciones de recursos a un usuario durante un tiempo determinado. Los trabajos se identifican por un número correlativo o JOBID. \\
-Un trabajo (JOB) consiste en uno o más pasos (STEPS), cada uno consistente en una o más tareas (TASKS) que usan una o más CPU. Hay un STEP por cada programa que se ejecute de forma secuencial en un JOB y hay un TASK por cada programa que se ejecute en paralelo. Por lo tantoen el caso más simplecomo por ejemplo lanzar un trabajo consistente en ejecutar el comando hostnameel JOB tiene un único STEP y una única TASK.+Un trabajo (JOB) consiste en uno o más pasos (STEPS), cada uno consistente en una o más tareas (TASKS) que usan una o más CPU. Hay un STEP por cada programa que se ejecute de forma secuencial en un JOB y hay un TASK por cada programa que se ejecute en paralelo. Por lo tanto en el caso más simple como por ejemplo lanzar un trabajo consistente en ejecutar el comando hostname el JOB tiene un único STEP y una única TASK.
  
 ==== Sistema de colas (QOS) ==== ==== Sistema de colas (QOS) ====
-La cola a la que se envíe cada trabajo define la prioridad, los límites y también el "coste" relativo para el usuario.+La cola a la que se envíe cada trabajo define la prioridad,los límites y también el "coste" relativo para el usuario.
 <code bash> <code bash>
 # Mostrar las colas # Mostrar las colas
Línea 291: Línea 296:
 # MaxTRESPU: límites globales por usuario \\ # MaxTRESPU: límites globales por usuario \\
 # MaxJobsPU: Número máximo de trabajos que un usuario puede tener en ejecución. \\ # MaxJobsPU: Número máximo de trabajos que un usuario puede tener en ejecución. \\
-# MaxSubmitPU: Número máximo de trabajos que un usuario puede tener en total encolados y en ejecución.\\+# MaxSubmitPU: Número máximo de trabajos que un usuario puede tener en total encolados y en ejecucuón.\\
    
 ==== Envío de un trabajo al sistema de colas ==== ==== Envío de un trabajo al sistema de colas ====
 == Especificación de recursos == == Especificación de recursos ==
-Por defecto, si se envía un trabajo sin especificar nada el sistema lo envía a la QOS por defecto (regular) y le asigna un nodo, una CPU y 4 GB de RAM. El límite de tiempo para la ejecución del trabajo es el de la cola (4 días y 4 horas). +Por defecto, si se envía un trabajo sin especificar nada el sistema lo envia a la QOS por defecto (regular) y le asigna un nodo, una CPU y 4 GB de RAM. El límite de tiempo para la ejecución del trabajo es el de la cola (4 días y 4 horas). 
 Esto es muy ineficiente, lo ideal es especificar en la medida de lo posible al menos tres parámetros a la hora de enviar los trabajos: Esto es muy ineficiente, lo ideal es especificar en la medida de lo posible al menos tres parámetros a la hora de enviar los trabajos:
   -  %%El número de nodos (-N o --nodes), tareas (-n o --ntasks) y/o CPU por tarea (-c o --cpus-per-task).%%   -  %%El número de nodos (-N o --nodes), tareas (-n o --ntasks) y/o CPU por tarea (-c o --cpus-per-task).%%
   -  %%La memoria (--mem) por nodo o la memoria por cpu (--mem-per-cpu).%%   -  %%La memoria (--mem) por nodo o la memoria por cpu (--mem-per-cpu).%%
-  -  %%El tiempo estimado de ejecución del trabajo (--time)%%+  -  %%El tiempo estimado de ejecución del trabajo ( --time )%%
  
 A mayores puede ser interesante añadir los siguientes parámetros: A mayores puede ser interesante añadir los siguientes parámetros:
 |  -J    %%--job-name%%  |Nombre para el trabajo. Por defecto: nombre del ejecutable  | |  -J    %%--job-name%%  |Nombre para el trabajo. Por defecto: nombre del ejecutable  |
 |  -q    %%--qos%%       |Nombre de la cola a la que se envía el trabajo. Por defecto: regular  | |  -q    %%--qos%%       |Nombre de la cola a la que se envía el trabajo. Por defecto: regular  |
-|  -o    %%--output%%    |Fichero o patrón de fichero al que se redirige toda la salida estándar y de error.  |+|  -o    %%--output%%    |Fichero o patrón de fichero al que se redirige toda la salida estandar y de error.  |
 |        %%--gres%%      |Tipo y/o número de GPUs que se solicitan para el trabajo.  | |        %%--gres%%      |Tipo y/o número de GPUs que se solicitan para el trabajo.  |
 |  -C    %%--constraint%%  |Para especificar que se quieren nodos con procesadores Intel o AMD (cpu_intel o cpu_amd)  | |  -C    %%--constraint%%  |Para especificar que se quieren nodos con procesadores Intel o AMD (cpu_intel o cpu_amd)  |
Línea 311: Línea 316:
  
 == Cómo se asignan los recursos == == Cómo se asignan los recursos ==
-Por defecto el método de asignación entre nodos es la asignación en bloque (se asignan todos los cores disponibles en un nodo antes de usar otro). El método de asignación por defecto dentro de cada nodo es la asignación cíclica (se van repartiendo por igual los cores requeridos entre los sockets disponibles en el nodo). +Por defecto el método de asignación entre nodos es la asignación en bloque ( se asignan todos los cores disponibles en un nodo antes de usar otro). El método de asignación por defecto dentro de cada nodo es la asignación cíclica  (se van repartiendo por igual los cores requeridos entre los sockets disponibles en el nodo). 
  
-== Cálculo de la prioridad ==+== Calculo de la prioridad ==
 Cuando se envía un trabajo al sistema de colas, lo primero que ocurre es que se comprueba si los recursos solicitados entran dentro de los límites fijados en la cola correspondiente. Si supera alguno se cancela el envío. \\ Cuando se envía un trabajo al sistema de colas, lo primero que ocurre es que se comprueba si los recursos solicitados entran dentro de los límites fijados en la cola correspondiente. Si supera alguno se cancela el envío. \\
-Si hay recursos disponibles el trabajo se ejecuta directamente, pero si no es así se encola. Cada trabajo tiene asignada una prioridad que determina el orden en que se ejecutan los trabajos de la cola cuando quedan recursos disponibles. Para determinar la prioridad de cada trabajo se ponderan 3 factores: el tiempo que lleva esperando en la cola (25%), la prioridad fija que tiene la cola (25%) y el fairshare del usuario (50%). \\+Si hay recursos disponibles el trabajo se ejecuta directamente, pero si no es así se encola. Cada trabajo tiene asignada una prioridad que determina el orden en que se ejecutan los trabajos de la cola cuando quedan recursos disponibles. Para determinar la prioridad de cada trabajo se ponderan 3 factores: el tiempo que lleva esperando en la cola (25%), la prioridad fija que tiene la cola(25%) y el fairshare del usuario (50%). \\
 El fairshare es un cálculo dinámico que hace SLURM para cada usuario y es la diferencia entre los recursos asignados y los recursos consumidos a lo largo de los últimos 14 días.  El fairshare es un cálculo dinámico que hace SLURM para cada usuario y es la diferencia entre los recursos asignados y los recursos consumidos a lo largo de los últimos 14 días. 
 <code bash> <code bash>
Línea 328: Línea 333:
 # NormShares: Es la cantidad anterior normalizada a los recursos asignados en total.\\ # NormShares: Es la cantidad anterior normalizada a los recursos asignados en total.\\
 # RawUsage: Es la cantidad de segundos/cpu consumida por todos los trabajos del usuario.\\ # RawUsage: Es la cantidad de segundos/cpu consumida por todos los trabajos del usuario.\\
-# NormUsage: Cantidad anterior normalizada al total de segundos/cpu consumidos en el clúster.\\ +# NormUsage: Cantidad anterior normalizada al total de segundos/cpu consumidos en el cluster.\\ 
-# FairShare: El factor FairShare entre 0 y 1. Cuanto mayor uso del clúster, más se aproximará a 0 y menor será la prioridad.\\+# FairShare: El factor FairShare entre 0 y 1. Cuanto mayor uso del cluster, más se aproximará a 0 y menor será la prioridad.\\
  
 == Envío de trabajos == == Envío de trabajos ==
Línea 343: Línea 348:
 hpc-login2 ~]$ vim trabajo_ejemplo.sh hpc-login2 ~]$ vim trabajo_ejemplo.sh
     #!/bin/bash     #!/bin/bash
-    #SBATCH --job-name=prueba            # Nombre del trabajo +    #SBATCH --job-name=prueba            # Job name 
-    #SBATCH --nodes=1                    # -N Ejecutar todos los procesos en un solo nodo    +    #SBATCH --nodes=1                    # -N Run all processes on a single node    
-    #SBATCH --ntasks=1                   # -n Ejecutar una única tarea    +    #SBATCH --ntasks=1                   # -n Run a single task    
-    #SBATCH --cpus-per-task=1            # -c Ejecutar procesador por tarea        +    #SBATCH --cpus-per-task=1            # -c Run processor per task        
-    #SBATCH --mem=1gb                    # Solicitud de memoria para el trabajo +    #SBATCH --mem=1gb                    # Job memory request 
-    #SBATCH --time=00:05:00              # Límite de tiempo hrs:min:sec+    #SBATCH --time=00:05:00              # Time limit hrs:min:sec
     #SBATCH --qos=urgent                 # Cola     #SBATCH --qos=urgent                 # Cola
-    #SBATCH --output=prueba_%j.log       # Registro de salida estándar y de error+    #SBATCH --output=prueba_%j.log       # Standard output and error log
  
-    echo "¡Hola Mundo!"+    echo "Hello World!"
  
 hpc-login2 ~]$ sbatch trabajo_ejemplo.sh  hpc-login2 ~]$ sbatch trabajo_ejemplo.sh 
Línea 367: Línea 372:
 </code> </code>
 3. SRUN \\ 3. SRUN \\
-Sirve para lanzar un trabajo paralelo (es preferible a usar mpirun). Es interactivo y bloqueante.+Sirve para lanzar un trabajo paralelo ( es preferible a usar mpirun ). Es interactivo y bloqueante.
 <code bash> <code bash>
 # Lanzar un hostname en 2 nodos # Lanzar un hostname en 2 nodos
Línea 413: Línea 418:
 == Códigos de salida == == Códigos de salida ==
 Por defecto estos son los códigos de salida de los comandos: Por defecto estos son los códigos de salida de los comandos:
-^  Comando SLURM  ^  Código de salida  ^ +^  SLURM command  ^  Exit code  ^ 
-|  salloc  |  0 en caso de éxito, 1 si no se pudo ejecutar el comando del usuario +|  salloc  |  0 en caso de éxito, 1 si no se puedo ejecutar el comando del usuario 
-|  srun  |  El más alto de entre todas las tareas ejecutadas o 253 para un error fuera de memoria  |+|  srun  |  El más alto de entre todas las tareas ejecutadas o 253 para un error out-of-mem  |
 |  sbatch  |  0 en caso de éxito, si no, el código de salida correspondiente del proceso que falló  | |  sbatch  |  0 en caso de éxito, si no, el código de salida correspondiente del proceso que falló  |
  
 == STDIN, STDOUT y STDERR == == STDIN, STDOUT y STDERR ==
 **SRUN:**\\ **SRUN:**\\
-Por defecto stdout y stderr se redirigen de todos los TASKS al stdout y stderr de srun, y stdin se redirecciona desde el stdin de srun a todas las TASKS. Esto se puede cambiar con:+Por defecto stdout y stderr se redirigen de todos los TASKS a el stdout y stderr de srun, y stdin se redirecciona desde el stdin de srun a todas las TASKS. Esto se puede cambiar con:
 |  %%-i, --input=<opcion>%%    |  |  %%-i, --input=<opcion>%%    | 
 |  %%-o, --output=<opcion>%%   | |  %%-o, --output=<opcion>%%   |
Línea 451: Línea 456:
 6547  defaultPa  example <username>  RUNNING   22:54:55      1 hpc-fat1 6547  defaultPa  example <username>  RUNNING   22:54:55      1 hpc-fat1
  
-## Ver estado de uso de las colas del clúster:+## Ver estado de uso de las colas del cluster:
 hpc-login2 ~]$ estado_colas.sh hpc-login2 ~]$ estado_colas.sh
 JOBS PER USER: JOBS PER USER:
Línea 468: Línea 473:
              PENDING:  1              PENDING:  1
 ========================================== ==========================================
-Total JOBS en clúster:  4+Total JOBS in cluster:  4
 </code> </code>
 Estados (STATE) más comunes de un trabajo: Estados (STATE) más comunes de un trabajo:
-  * R RUNNING El trabajo actualmente tiene una asignación+  * R RUNNING Job currently has an allocation
-  * CD COMPLETED El trabajo ha terminado todos los procesos en todos los nodos con un código de salida de cero.  +  * CD COMPLETED Job has terminated all processes on all nodes with an exit code of zero.  
-  * F FAILED El trabajo terminó con un código de salida no cero u otra condición de fallo+  * F FAILED Job terminated with non-zero exit code or other failure condition
-  * PD PENDING El trabajo está a la espera de asignación de recursos.+  * PD PENDING Job is awaiting resource allocation.
    
 [[ https://slurm.schedmd.com/squeue.html#SECTION_JOB-STATE-CODES | Lista completa de posibles estados de un trabajo ]].\\ [[ https://slurm.schedmd.com/squeue.html#SECTION_JOB-STATE-CODES | Lista completa de posibles estados de un trabajo ]].\\
  
-Si un trabajo no está en ejecuciónaparecerá una razón debajo de REASON:[[ https://slurm.schedmd.com/squeue.html#SECTION_JOB-REASON-CODES | Lista de las razones ]] por las que un trabajo puede estar esperando su ejecución.+Si un trabajo no está en ejecución aparecerá una razón debajo de REASON:[[ https://slurm.schedmd.com/squeue.html#SECTION_JOB-REASON-CODES | Lista de las razones ]] por las que un trabajo puede estar esperando su ejecución. 
 + 
 + 
 +