es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ejecute trabajos con SLURM en dos nodos en estado de IDLE.

Soy nuevo en slurm y tengo dos nodos en estado IDLE, pero mis trabajos solo se ejecutan en uno de ellos, el nodo maestro (node01), mientras que no entiendo por qué el segundo (node02) no ejecuta trabajos.

Creé un bucle while para enviar 500 trabajos

while read f1 f2; do sbatch myscript.sh ${f1} ${f2}; done < list.txt

En la cabecera del script “myscript.sh” tengo

#SBATCH --job-name=test_jobs
#SBATCH --nodes=2
#SBATCH --cpus-per-task=3
#SBATCH --mem=1G
#SBATCH --time=00:03:00
#SBATCH --output=sslurm_%j.log

Mirando el archivo slurm.conf

# Nodo
NodeName=node01 CPUs=80 Boards=1 SocketsPerBoard=2 CoresPerSocket=20 ThreadsPerCore=2 RealMemory=515619
NodeName=node02 CPUs=80 Boards=1 SocketsPerBoard=2 CoresPerSocket=20 ThreadsPerCore=2 RealMemory=515619
# Partición
PartitionName=base Nodes=node01,node02 Default=Yes MaxTime=7-00:00:00 Priority=1 State=U

node02 debería leer el script desde node01 porque creé una carpeta compartida NFS donde guardo el script. En el script se informa la ruta de las herramientas a utilizar y esas herramientas solo están en node01 (algunas en /usr/bin/ y otras en una carpeta creada por mí). ¿Debo compartir también las carpetas donde se encuentran los archivos de entrada y las herramientas?

¿Qué está mal aquí? y también, ¿cómo puedo imprimir en los archivos de registro con qué nodo se ejecutó cada trabajo?
¡Gracias!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Según la información proporcionada, parece que el problema podría estar relacionado con los nodos que se encuentran en estado IDLE. Esto significa que están disponibles para su uso, pero no están ejecutando ningún trabajo activamente.

    Una posible solución es especificar explícitamente los nodos que se utilizarán para cada trabajo utilizando la opción –nodelist en tu comando sbatch. Por ejemplo:

    sbatch --nodelist=nodo01 mi_script.sh ${f1} ${f2}
    

    También puedes especificar varios nodos separados por comas:

    sbatch --nodelist=nodo01,nodo02 mi_script.sh ${f1} ${f2}
    

    Con respecto a la pregunta sobre las carpetas compartidas, si los archivos de entrada y las herramientas solo están disponibles en el nodo01, entonces debes asegurarte de que también sean accesibles en el nodo02. Puedes hacer esto copiándolos al nodo02 o configurando un sistema de archivos compartido como NFS.

    Para imprimir el nodo utilizado para cada trabajo en los archivos de registro, puedes modificar el nombre del archivo de salida en tu script sbatch para incluir la opción %N, que se reemplazará por el nombre del host del nodo que ejecutó el trabajo:

    #SBATCH --output=sslurm_%j_%N.log
    

    Esto dará como resultado archivos de registro con nombres como “sslurm_12345_nodo01.log” y “sslurm_12346_nodo02.log” para trabajos ejecutados en nodo01 y nodo02, respectivamente.

Comments are closed.