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.

Ejecutando script por lotes que contiene una matriz de trabajos múltiples en múltiples nodos.

Estoy tratando de ejecutar un archivo de script por lotes en múltiples nodos. El archivo de script incluye una matriz de múltiples trabajos. Quiero que Slurm ejecute cada trabajo en 3 nodos. Intenté dar este código, pero Slurm emitió esta advertencia:

 Advertencia: no se pueden ejecutar 1 procesos en 3 nodos, estableciendo nnodes en 1

El archivo de script:

 #!/bin/bash
#SBATCH --job-name=Littest
#SBATCH --nodes=3
#SBATCH --cpus-per-task=28
#SBATCH --ntasks=1
#SBATCH --out=output.txt
#SBATCH --exclude=node2,node11,node43,node44
#Jobfile=Li

declare -a arrK=(Li2.in Li6.in Li8.in)

module load intel
module load qe/6.5

for File in ${arrK[@]};
do
echo $File
mpirun -np 84 pw.x -i $File > out.$File &
echo "1 Trabajo completado.¡Muy bien!"
done

echo "Todos los trabajos completados."
wait

¿Cómo puedo solucionar este problema?

Tags:  

Answer

  1. Avatar for davy.ai

    Parece que estás intentando ejecutar un proceso en 3 nodos, lo cual no es posible. Necesitas especificar el número de tareas que se ejecutarán en cada nodo. Puedes hacer esto agregando la bandera --ntasks-per-node a tu comando sbatch. Por ejemplo, si quisieras ejecutar 3 tareas en cada nodo, agregarías la siguiente línea a tu script:

    #SBATCH --ntasks-per-node=3
    

    También puedes especificar el número de tareas que se ejecutarán en cada nodo en el comando mpirun. Por ejemplo, si quisieras ejecutar 3 tareas en cada nodo, agregarías la siguiente línea a tu script:

    mpirun -np 84 --ntasks-per-node 3 pw.x -i $File  > out.$File &
    

Comments are closed.