lote¶
Um único plano de comando para suas máquinas.
Um DGX via ssh, um cluster slurm, um supercomputador pbs, a máquina sobrando embaixo da mesa. Cada um roda jobs do seu próprio jeito, então o mesmo experimento precisa de pueue aqui, sbatch ali e qsub em outro lugar. O lote é o plano que fica acima de todos eles. Você escolhe uma máquina, ele faz rsync do seu repositório até lá, roda seu job sob qualquer scheduler que aquele host tenha e traz os resultados de volta. Um único script de job roda em qualquer lugar.
-
Um único submit
lote submit <host> job.shenvia o repositório, lança o job e imprime um handle. Não importa o scheduler. -
Qualquer scheduler
O lote detecta a fila de cada host e se adapta.
pueueem uma máquina comum,sbatchno slurm,qsubno pbs. -
Estado entre hosts
lote pselote reconcileacompanham cada execução em cada máquina, a partir do seu laptop. -
Apenas ssh
Os alvos são os aliases de host do seu
~/.ssh/config. Nenhum agente para instalar, nenhum daemon de controle para cuidar.
Instalação¶
pip install lote # the lote command, ready to use
chefe add lote --pypi # or pull it into a chefe project
O lote despacha seu executor on-host via ssh como chefe run lote exec ..., então cada host precisa do chefe (a ferramenta de ambiente irmã), que o lote setup instala e que sobe o pixi na primeira execução.
[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
O lote é recente (0.0.x)
O formato de configuração e os comandos ainda podem mudar.
A seguir¶
- Como funciona — o pipeline de dispatch e suas três camadas.
- Comandos — a CLI completa.
- Configuração —
lote.toml, alvos ssh e o armazenamento de estado. - Exemplos — fluxos de trabalho reais de ponta a ponta.