-- AdminUser - 08 Mar 2023

Mecanismo usado por el sistema para el envío de trabajos en los nodos de la Federación de Cluster del CECC

Los nodos de procesamiento están geográficamente distribuidos entre los edificios de las sedes y el Data Center TIERIII en Cota(Cundinamarca); Para evitar los problemas asociados con la intermitencia y el bajo ancho de banda en la red, realizar un procesamiento rápido y no interrumpido; el sistema ejecutara los trabajo LOCALMENTE; se resume en cuatro pasos:

1. En su directorio de trabajo el usuario debe crear un(1) directorio nuevo por cada trabajo a enviar y colocar allí los datos a procesar junto a los scripts SLURM.

nodo1.png

2. El sistema copiara TODO el contenido del directorio desde el nodo donde se envia(egeo-00, perseus o feynman-00) al directorio local /scratch del nodo que procesara

Nodo2.png

3. Se inicia la ejecución en el directorio /scratch

nodo3.png

4. Al finalizar el trabajo, el sistema copiara desde /scratch todos los datos al directorio de envío; incluyendo los resultados. La carpeta tendra el número que corresponde al ID del Trabajo(JOB) realizado

nodo5.png

Envío de Trabajos por lotes

Si los trabajos ejecutan pasos secuenciales, a cada trabajo SLURM le asignará de manera exclusiva CPU, memoria y otros posibles recursos, de modo que; dos trabajos no pueden compartir los mismos recursos y, solo se puede dar comienzo a trabajos cuando todos los recursos necesarios están disponibles y, no los use otro trabajo con mayor prioridad; slurm asigna una prioridad a cada trabajo cuando se envían.

Para que la asignación de los recursos que solicita funcione puede describirlos con un conjunto de Directivas en un script; donde se ejecutaran los proceso de modo secuencial (trabajo por lotes).

Un script de envío para SLURM tiene los comentarios ¨#¨ con el prefijo #SBATCH para que sean interpretados como un parámetro que describen la solicitud de recursos y otras opciones de envío.

Un script de trabajo puede ser un arhivo con las siguientes líneas:

script1.png

Los Script de Trabajos normalmente tienen tres partes, Las Directivas que le dan instrucciones a Slurm acerca de como configurar el trabajo, El software a usar que incluye limpiar el entorno, solicitar el software que requiere su trabajo, ir al directorio, las secuencias del usuario que son propiamente los comandos que usted desea que ejecute su trabajo.

1. Directivas. Una directiva es un comentario(#) que se incluye en la parte superior del script y le entrega a la shell información sobre el script. La primera directiva es la shebang; siempre se escribe en la primera línea de cualquier script: Esta directiva indica cual interprete(bash, sh, perl, etc.) es quien va a ejecutar las lineas restantes. Normalmente los usuarios usan como interprete la shell bash escribiendo "#!/bin/bash" .

Las directivas que deben incluirse luego son las directivas de solicitud a SLURM; con estas directivas se especifican los requisitos que debe gestionar Slurm para iniciar y ejecutar el trabajo; estas directivas van luego de la directiva shebang y antes de que se escriba cualquier comando en el script de trabajo. Cada directiva para Slurm esta demarcada(flags) con "#SBATCH" y la sintaxis --forma de escribirla-- es

#SBATCH --=

Por ejemplo, si quisiera reservar Todos los recursos de 1 nodo para su trabajo, escribiría:
#SBATCH --nodes=1

Otras directivas que se pueden solicita en la URL DirectivasSLURM

2. Software a usar: Como los trabajos se ejecutan en los nodos de procesamiento, cualquier software que usted necesite debe solicitarse en el script de trabajo. El Software puede solicitarse de la manera en que lo haria directamente desde la shell(consola, terminal). Por ejemplo para incluir en el script el uso de un modulo, primero y por si estan presentes, limpiaremos del ambiente otros modulos, luego cargo los modulos con el software que voy a usar
 module purge

module load apps/bbmap/38.34 module load apps/blast/2.9

3. Finalmente, las secuencias de comandos del usuario es última parte de un guión de trabajo: Aqui se incluyen todos los comandos del usuario necesarios para configurar y ejecutar la tarea deseada. Cualquier comando Linux se puede utilizar en este paso. En el ejemplo las secuencias de comandos son los "ecos" y una linea que muestra la version del software.
  echo "== This is the scripting step! =="
     sleep 30
blastp -version echo "== End of Job =="
Topic attachments
I Attachment Action Size Date Who Comment
Nodo2.pngpng Nodo2.png manage 38 K 08 May 2024 - 03:34 AdminUser nodo2.png
nodo1.pngpng nodo1.png manage 34 K 08 May 2024 - 03:26 AdminUser nodo1.png
nodo3.pngpng nodo3.png manage 29 K 08 May 2024 - 03:51 AdminUser nodo3.png
nodo5.pngpng nodo5.png manage 29 K 08 May 2024 - 04:06 AdminUser nodo5.png
script1.pngpng script1.png manage 54 K 19 Mar 2023 - 16:13 AdminUser script1
Topic revision: r9 - 26 Nov 2024, AdminUser
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback