Tabla de Contenidos

Página visible a externos sin autenticación

Ejecución de modelos en nodos de cómputo

Cuando ejecutas un modelo, debes tener en cuenta que los modelos se ejecutan en nodos volátiles, mientras que el nodo de control o login es persistente. Recuerda colocar lógica para guardar los resultados antes de finalizar.

Almacenamiento y buenas prácticas

¿Hay algún límite en la cantidad de datos que puedo almacenar en el nodo control/login para el modelo?

Sí lo hay. Se recomienda que no guardes directamente archivos generados por el programa que no necesites. Una buena práctica es:

Ciclo de vida de un trabajo

¿Qué maneras hay de que un trabajo termine?

En realidad, solo hay dos:

  1. Que cumplas la cuota de tiempo.
  2. Que finalice el programa.

¿Qué ocurre si se cae el nodo?

Los programas encolados se restauran y Slurm vuelve a ejecutar el programa asignado en cada nodo.

¿Por dónde continúa un trabajo si finaliza por límite de tiempo y lo vuelvo a lanzar?

El programa se ejecuta desde cero. Para no perder avance debes colocar checkpoints y hacer que tu programa continúe por donde lo dejó.

Los checkpoints suenan muy bien, pero ¿en realidad continúa por donde lo dejó?

No, depende de cómo programes el checkpoint. Normalmente continúa por la última iteración de entrenamiento que estuviera haciendo, empezando de nuevo dicha fase.

Seguimiento y control

¿Cómo sé cuánto le queda para terminar a un job?

Slurm no controla cuándo finaliza tu código, pero puedes realizar un seguimiento y control que se imprima por pantalla. En el archivo .out podrás seguir la evolución.

Voy a entrenar muchos modelos juntos con varias configuraciones. ¿Cómo sé cuándo terminan?

Es recomendable usar un archivo JSON que contenga la lista de modelos procesados/sin procesar. De forma que, si en una ejecución no han finalizado, este archivo te sirva para ver por dónde se quedó.

No sé qué tiempo ponerle a un job

Es una estimación complicada, pero si has seguido las indicaciones anteriores, coloca un tiempo prudencial, aunque te quedes corto. Si al finalizar el trabajo no ha terminado lo puedes volver a lanzar y continuará casi por donde lo dejó.

Entornos y resiliencia

Cada vez que despliego un entorno tengo que instalar un entorno virtual y las dependencias. Solo eso puede tardar 10 minutos. ¿Podría ejecutar desde el nodo ctrl el entorno en un job?

Se podría, pero no es recomendable. Montar el entorno virtual en la máquina donde no se ejecuta el modelo es ineficiente. Los 10 minutos que te ahorras son horas que puedes perder.

Mi nodo se ha caído y he perdido todo el trabajo

Debes programar tu código para que sea resiliente a caídas: