s.l.u.r.m

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
s.l.u.r.m [2024/03/06 10:07]
admin [2.1. Envío de Trabajo (srun y sbatch)]
s.l.u.r.m [2024/03/07 21:18]
admin [2. Parámetros básicos de comandos]
Line 1: Line 1:
 ====== Utilización de SLURM ====== ====== Utilización de SLURM ======
  
-SLURM Workload Manager o formalmente (Simple Linux Utility for Resource Management) es un sistema de gestión de clústeres de código abierto, tolerante a fallas y altamente escalable para clústeres Linux grandes y pequeños.+SLURM Workload Manager o formalmente (Simple Linux Utility for Resource Management) es un sistema de gestión de trabajos en clústeres de código abierto, ​el cual es tolerante a fallas y altamente escalable para clústeres Linux grandes y pequeños.
  
  
 ==== Funciones principales ==== ==== Funciones principales ====
  
-  - Asigna a los usuarios acceso exclusivo y/o no exclusivo a recursos de cómputo por un tiempo determinado,​ permitiéndoles así ejecutar ​tareas asignadas.+  - Asigna a los usuarios acceso exclusivo y/o no exclusivo a recursos de cómputo por un tiempo determinado,​ permitiéndoles así ejecutar ​trabajos (jobs) asignados.
   - Provee un marco para iniciar, ejecutar y monitorear tareas (normalmente tareas paralelas) en un conjunto de nodos asignados.   - Provee un marco para iniciar, ejecutar y monitorear tareas (normalmente tareas paralelas) en un conjunto de nodos asignados.
-  - Coordina la solicitud de recursos a través de una cola de tareas ​pendientes.+  - Coordina la solicitud de recursos a través de una cola de trabajos ​pendientes.
  
  
-==== ¿Cómo se encarga Slurm de gestionar ​las tareas? ====+==== ¿Cómo se encarga Slurm de gestionar ​los trabajos? ====
  
-  * Ejecutando ​la tarea +  * Ejecutando ​el trabajo 
-  * Asignando recursos de cómputo solicitados por la tarea +  * Asignando recursos de cómputo solicitados por el trabajo 
-  * Reportando la salida de la ejecución al usuario.+  * Reportando la salida de su ejecución al usuario.
  
  
-==== Pasos para ejecutar ​una tarea ====+==== Pasos para ejecutar ​un trabajo ​====
  
   * Preparar un script (el formato del script se encuentra a continuación)   * Preparar un script (el formato del script se encuentra a continuación)
-  * Enviar ​tarea para ejecución.+  * Enviar ​trabajo ​para ejecución.
  
  
 ===== 1. Comandos básicos de Slurm ===== ===== 1. Comandos básicos de Slurm =====
 +
 +A continuación se muestran los comandos básicos utilizados para realizar la mayoría de las operaciones básicas con SLURM:
  
 ^Comando^Descripción| ^Comando^Descripción|
Line 32: Line 34:
 |srun|Ejecutar un trabajo interactivo| |srun|Ejecutar un trabajo interactivo|
 |scancel|Eliminar un trabajo| |scancel|Eliminar un trabajo|
-|scontrol|Ver información más detallada de trabajos, colas y particiones.| 
-|sacct|Ver a nivel de sistema la utilización de recursos de trabajos completados.| 
  
  
 ===== 2. Parámetros básicos de comandos ===== ===== 2. Parámetros básicos de comandos =====
 +
 +Existen [[https://​slurm.schedmd.com/​man_index.html|páginas de manual]] para todos los comandos de Slurm, las cuales contienen información más detallada. El parámetro ''​--help''​ además proporciona un breve resumen de las opciones de cada comando. A continuación se muestra el resumen de los parámetros que más se suelen utilizar en SLURM por cada comando básico:
 +
  
 ==== 2.1. Envío de Trabajo (srun y sbatch) ==== ==== 2.1. Envío de Trabajo (srun y sbatch) ====
  
 |**Comando SLURM** |**Descripción** | |**Comando SLURM** |**Descripción** |
-|--mem-per-cpu=<​megabytes>​|Memoria requerida para el trabajo por CPU (en MegaBytes). El valor predeterminado es 1024 MB.| +|mem-per-cpu=<​megabytes>​|Memoria requerida para el trabajo por CPU asignada ​(en MegaBytes). El valor predeterminado es 1024 MB.| 
-|-n, --ntasks=<​cantidad de tareas>​|Número de tareas que serán asignadas para el trabajo.| +|-n, ntasks=<​cantidad de tareas>​|Número de tareas ​(procesos) ​que serán asignadas para el trabajo.| 
-|–clusters=<​name>​|Clúster(es) para ejecutar el trabajo. (sólo con comando //​sbatch//​)| +|-c, –cpus-per-task=<​cpus>​|Número de CPUs (hilos) requeridas por tarea. El valor especificado ​aquí es el número "​mínimo"​ de CPU que se asignará a su trabajo. Si hay CPU adicionales disponibles en un nodo más allá de lo solicitado, su trabajo ​recibirá esas CPU hasta que otros trabajos las necesiten. El valor predeterminado es 1 CPU. Intentar usar más CPU de las que se le asignaron dará como resultado que sus procesos adicionales se turnen en la misma CPU (ralentizando su trabajo).
-|–constraint=<​features>​|Características requeridas del nodo| +|-J <​name>​jobname=<​name>​|Especificar un nombre a tu trabajo
-|–cpus-per-task=<​count> \\ -c <count>​|Número de CPUs (hilos) requeridas por tarea+|-o <​STDOUT_log>, ​output=<STDOUT_log>​|Archivo ​en el que se desea almacenar la salida ​del trabajo. Usted puede especificar %j como parte del nombre de archivo de registro para indicar la ID del trabajo ​(como ejemplo, "#​SBATCH ​-o ouptut_%j.o"​ redirigiría ​la salida ​a "​output_123456.o").
-|–dependency=<​state:​jobid>​|Aplaza trabajo hasta que los trabajos especificados alcancen el estado ​especificado+|-e <​STDERR_log>, ​error=<STDERR_log>|Archivo en el que se desea almacenar mensajes de error de trabajo. Funciona exactamente igual que "​-o"​.
-|–error= \\ -e|Archivo en el que se desea almacenar mensajes de error de trabajo+|-t, time=<days-hours:​minutes:​seconds\\ (ej. time=08:00:00)|Permite ajustar el límite ​de tiempo del trabajo| 
-|–exclude=<​names>​|Nombres de host específicos para excluir ​de la asignación de trabajo| +|–array=<índices> \\  ​\\ ​(ej. array=1-80)|Envía una lista (arreglo) ​de trabajos idénticos. Solo aplica ​para sbatch.
-|–exclusive[=user]|Los nodos asignados no se pueden compartir con otros trabajos/​usuarios| +|–export=<name[=value]> \\ (ej. export=ALL)|Exportar variables ​de entorno identificadas
-|–export=<name[=value]>|Exportar variables de entorno identificadas| +|–nodes=<nodos>|Cantidad ​de nodos de cómputo a utilizar
-|gres=<name[:count]>|Recursos genéricos necesarios por nodo+|–account=<cuenta> \\ (ej. –account=dsmith)|Asignar ​el nombre ​de cuenta para monitorear el trabajo|
-|–input=<name>​|Archivo ​desde el cual leer los datos de entrada ​del trabajo+
-|–job-name=<​name>​ \\ -J <​name>​|Nombre ​del trabajo+
-|–label \\ -l|Antepone el ID de la tarea a la salida. ​(sólo con comando //srun//)| +
-|–licenses=<name[:​count]>|Recursos ​de licencia necesarios para todo el trabajo| +
-|–mem=<MB>|Memoria requerida por nodo| +
-|mem-per-cpu=<MB>|Memoria requerida por CPU asignada| +
-|-N<​minnodes[-maxnodes]>​|Recuento ​de nodos necesarios para el trabajo| +
-|–ntasks=<count> \\ -n <​count>​|Número de tareas ​(procesos) a iniciar| +
-|nodelist=<​names>​ \\ -w <​names>​|Nombres ​de host específicos ​para incluir en la asignación de trabajo+
-|–output=<name> \\ -o <​name>​|Archivo en el que se desea almacenar la salida del trabajo| +
-|–partition=<names> \\ -p <​names>​|Partición/​cola en la que se desea ejecutar el trabajo| +
-|qos=<​name>​|Calidad ​de servicio+
-|–signal=[B:]<num>[@time]|Trabajo ​de señal cuando se acerca el límite ​de tiempo+
-|–time=<time> \\ (ej. "time=08:​00:​00"​)|Permite ajustar ​el límite ​de tiempo del trabajo+
-|–wrap=<​command_string>​|Envuelva el comando especificado en un shell "​sh"​ simple (sólo con comando //sbatch//)|+
  
  
 ==== 2.2. Gestión de Trabajo ==== ==== 2.2. Gestión de Trabajo ====
  
-**scancel** ​- Manda una señal a trabajos, conjuntos de trabajos y/o pasos de trabajo.+**scancel**
  
-|–account=<​name>​|Opera solamente en trabajos que carguen en la cuenta especificada| +|–name=<​name>​|Cancela ​trabajos con nombre especificado| 
-|–name=<​name>​|Opera solamente en trabajos con nombre ​especificado| +|–user=<​name>​|Cancela ​trabajos del usuario especificado|
-|–partition=<​names>​|Opera solamente en trabajos con partición/​cola especificada| +
-|–qos=<​name>​|Opera solamente en trabajos que utilicen la calidad de servicio especificada| +
-|–reservation=<​name>​|Opera solamente en trabajos que utilicen la reservación especificada| +
-|–state=<​names>​|Opera solamente en trabajos en el estado ​especificado| +
-|–user=<​name>​|Opera solamente en trabajos del usuario especificado+
-|–nodelist=<​names>​|Opera solamente en trabajos que utilicen los nodos informáticos especificados|+
  
-**squeue **- Entrega información sobre trabajos+**squeue**
  
-|–account=<​name>​|Permite ver sólo trabajos con cuentas especificadas| 
-|–clusters=<​name>​|Permite ver sólo trabajos con clusters especificados| 
-|–format=<​spec>​ \\ (ej. "​–format=%i%j"​)|Formato de salida para mostrar. Especifica campos, tamaño, orden, etc.| 
 |–jobs=<​job_id_list>​|Lista separada por comas de IDs de trabajo para mostrar| |–jobs=<​job_id_list>​|Lista separada por comas de IDs de trabajo para mostrar|
 |–name=<​name>​|Permite ver sólo trabajos con nombres especificados| |–name=<​name>​|Permite ver sólo trabajos con nombres especificados|
-|–partition=<​names>​|Permite ver sólo trabajos con particiones especificadas| 
-|–priority|Ordena trabajos por prioridad| 
-|–qos=<​name>​|Permite ver sólo trabajos con Calidad de Servicio especificada| 
-|–start|Informa la hora de inicio prevista y los recursos que se asignarán para los trabajos pendientes en orden de tiempo de inicio creciente| 
-|–state=<​names>​|Permite ver sólo trabajos con estados especificados| 
 |–users=<​names>​|Permite ver sólo trabajos para usuarios especificados| |–users=<​names>​|Permite ver sólo trabajos para usuarios especificados|
- 
-**sinfo **- Entrega información sobre nodos y particiones 
- 
-|–all|Muestra información sobre todas las particiones| 
-|–dead|Si está configurado,​ sólo reporta información de estado para los nodos que no responden (muertos)| 
-|–format=<​spec>​|Formato de salida para mostrar| 
-|–iterate=<​seconds>​|Imprime el estado en el intervalo especificado| 
-|–long|Imprime información más detallada.| 
-|–Node|Imprime información en un formato orientado a nodos| 
-|–partition=<​names>​|Permite ver sólo las particiones especificadas| 
-|–reservation|Muestra información sobre reservas avanzadas| 
-|-R|Muestra los motivos por los que los nodos están inactivos, agotados, fallidos o en estado fallido.| 
-|–state=<​names>​|Permite ver sólo los estados especificados de los nodos| 
  
  
  • s.l.u.r.m.txt
  • Last modified: 2024/05/06 00:51
  • by admin