Saltar a contenido

lote

Un solo plano de comando para tus máquinas.

Un DGX por ssh, un clúster slurm, una supercomputadora pbs, la caja de repuesto debajo del escritorio. Cada una ejecuta trabajos a su manera, así que el mismo experimento necesita pueue aquí, sbatch allá y qsub en otro lado. lote es el plano que se sitúa sobre todas ellas. Eliges una máquina, hace rsync de tu repo allí, ejecuta tu trabajo bajo el planificador que tenga ese host y trae los resultados de vuelta. Un mismo script de trabajo corre en cualquier lugar.

  • Un solo submit

    lote submit <host> job.sh envía el repo, lanza el trabajo e imprime un identificador. Sin importar el planificador.

  • Cualquier planificador

    lote detecta la cola de cada host y se adapta. pueue en una caja sencilla, sbatch en slurm, qsub en pbs.

  • Estado entre hosts

    lote ps y lote reconcile rastrean cada ejecución en cada máquina desde tu laptop.

  • Solo ssh

    Los destinos son los alias de host de tu ~/.ssh/config. Sin agente que instalar, sin daemon de control que cuidar.

Instalación

pip install lote            # the lote command, ready to use
chefe add lote --pypi       # or pull it into a chefe project

lote despacha su ejecutor en host por ssh como chefe run lote exec ..., así que cada host necesita chefe (la herramienta hermana de entornos), que lote setup instala y que levanta pixi en la primera ejecución.

lote.toml
[sync]
include = ["research", "toolbox", "pixi.toml"]   # what a compute node needs
exclude = ["**/.venv", "**/__pycache__", "**/*.ckpt"]   # heavy, regenerable
lote setup miyabi                 # onboard a host: probe, sync, build the env
lote submit miyabi train.sh       # ship the repo and launch, prints a handle
lote ps                           # recent runs across every machine
lote pull <handle>                # rsync the results back

lote es temprano (0.0.x)

El formato de configuración y los comandos aún pueden cambiar.

Siguiente