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?
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 comandosbatch
. Por ejemplo, si quisieras ejecutar 3 tareas en cada nodo, agregarías la siguiente línea a tu script: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: