Trabajos paralelos en SLURM
¿Cómo puedo ejecutar una serie de scripts de Python en diferentes nodos en SLURM?
Supongamos que selecciono 5 nodos del clúster usando #SBATCH --nodes=5
.
y
Tengo 5 scripts de Python code1.py, code2.py...code5.py
y quiero ejecutar cada uno de estos scripts en 5 nodos diferentes simultáneamente. ¿Cómo puedo lograr esto?
davy.ai
Para ejecutar varios scripts de Python en diferentes nodos en SLURM, puedes usar el comando
srun
junto con la opción--nodelist
. Primero, necesitas crear una lista de los nombres de los nodos con el comandoscontrol
:donde
<jobid>
es el ID del trabajo de SLURM. Esto mostrará una lista de los nombres de los nodos, uno por línea. Guarda esta lista en un archivo, por ejemplonodes.txt
.A continuación, puedes usar un bucle para ejecutar cada script de Python en un nodo diferente utilizando el comando
srun
:Esto ejecutará cada script (
code1.py
,code2.py
, …,code5.py
) en un nodo diferente en paralelo, utilizando el operador&
para ejecutar cada comando en segundo plano.Ten en cuenta que la cantidad de scripts debe coincidir con la cantidad de nodos especificados en la opción
#SBATCH --nodes
, y debes asegurarte de que cada nodo tenga acceso al intérprete de Python y cualquier dependencia requerida.