cluv — sync UV-based Python projects across HPC clusters.
In early development. Commands are functional, but expect bugs or missing features.
- Python >= 3.13
- UV
- SSH access configured for each cluster in
~/.ssh/config - A GitHub repository with your project
To add cluv to your project, use uv add or pip install:
uv add cluster-uvTo also include the Cluv Hydra launcher:
uv add cluster-uv[hydra]Install as a command-line tool in an isolated environment:
uv tool install cluster-uvIf you want the bleeding edge version from GitHub, use:
uv add git+https://github.com/mila-iqia/cluvThen you can run cluv directly as a command:
cluv init
cluv login mila
cluv sync mila
cluv submit mila job.sh- Cluv is documented at https://mila-iqia.github.io/cluv/.
- Command line help : Use
cluv --helporcluv <command> --help. - Examples : See the examples folder for sample projects using cluv. Each example includes a README with instructions specific to that project.
- Initialize your project with:
cluv init
- Establish SSH connections to all configured clusters:
cluv login
- Sync your project to all clusters and run
uv syncon each:cluv sync
Add a [tool.cluv] section to the pyproject.toml of your project to manage the behavior of the tool.
The command cluv init will add a default config if it doesn't already exists in the .toml.
See the config at the project root for an example, or refer to the docs.