Ejecutando varios archivos de trabajo similares (sbatch)
Estoy intentando ejecutar múltiples (varios cientos) de archivos de trabajo muy similares con slurm usando sbatch
.
Mi archivo .job se ve así:
SBATCH ...
...
...
srun ./someProg -a A -b B -c C -d D
¿Existe alguna manera conveniente de enviar el archivo de trabajo utilizando sbatch
con múltiples opciones para A/B/C y D, y generar un nuevo trabajo para cada combinación de A/B/C/D, sin generar simplemente cientos de archivos .job? (Ya he visto muchos arreglos en archivos de slurm, pero no creo que me ayude en este caso de todos modos).
davy.ai
Sí, puedes utilizar un script para generar las combinaciones únicas de A/B/C/D y enviarlas utilizando
sbatch
. Aquí tienes un ejemplo de script en bash:este script utiliza bucles anidados para generar todas las posibles combinaciones de a/b/c/d. para cada combinación, crea un nombre único para el archivo de trabajo basado en los valores de a/b/c/d, escribe el archivo de trabajo con los valores adecuados de a/b/c/d y luego envía el trabajo utilizando
sbatch
.ten en cuenta que esto generará muchos archivos de trabajo (en este ejemplo, 273=81). si tienes un gran número de combinaciones, es posible que debas dividirlas en lotes y enviarlas por separado para evitar sobrecargar el programador. #sbatch=”” …=”” …=”” …=”” srun=”” ./algúnprograma=”” -a=”” $a=”” -b=”” $b=”” -c=”” $c=”” -d=”” $d=”” eof=”” #=”” enviar=”” el=”” trabajo=”” utilizando=”” sbatch=”” sbatch=”” $nombre_trabajo.job=”” done=”” done=”” done=”” done=”” “`=”” este=”” script=”” utiliza=”” bucles=”” anidados=”” para=”” generar=”” todas=”” las=”” posibles=”” combinaciones=”” de=”” a/b/c/d.=”” para=”” cada=”” combinación,=”” crea=”” un=”” nombre=”” único=”” para=”” el=”” archivo=”” de=”” trabajo=”” basado=”” en=”” los=”” valores=”” de=”” a/b/c/d,=”” escribe=”” el=”” archivo=”” de=”” trabajo=”” con=”” los=”” valores=”” adecuados=”” de=”” a/b/c/d=”” y=”” luego=”” envía=”” el=”” trabajo=”” utilizando=””
sbatch
.=”” ten=”” en=”” cuenta=”” que=”” esto=”” generará=”” muchos=”” archivos=”” de=”” trabajo=”” (en=”” este=”” ejemplo,=”” 273=”81).” si=”” tienes=”” un=”” gran=”” número=”” de=”” combinaciones,=”” es=”” posible=”” que=”” debas=”” dividirlas=”” en=”” lotes=”” y=”” enviarlas=”” por=”” separado=”” para=”” evitar=”” sobrecargar=”” el=””></eof#sbatch …
…
…
srun ./algúnprograma -a $a -b $b -c $c -d $d
eof
done
done
“`
este script utiliza bucles anidados para generar todas las posibles combinaciones de a/b/c/d. para cada combinación, crea un nombre único para el archivo de trabajo basado en los valores de a/b/c/d, escribe el archivo de trabajo con los valores adecuados de a/b/c/d y luego envía el trabajo utilizando
sbatch
.ten en cuenta que esto generará muchos archivos de trabajo (en este ejemplo, 27*3=81). si tienes un gran número de combinaciones, es posible que debas dividirlas en lotes y enviarlas por separado para evitar sobrecargar el programador.>