DVC
Getting started with DVC on ExCL systems.
DVC (Data Version Control) is a content-addressable data management system that integrates with Git. On ExCL, DVC enables shared, deduplicated storage across projects using a common cache.
DVC works well with ExCL. On ExCL, data can be stored in a shared cache in the project folder. Outside of ExCL, this same cache, can be used as the remote data storage.
๐ What You Get on ExCL with shared data cache
Shared cache across repositories โ no duplicate datasets
Content-addressed storage โ automatic change detection
Reproducible pipelines (optional)
Git-based versioning for data pointers
Flexible remote syncing (for off-cluster use)
โก Quick Start (New Repository)
1. Install DVC
uv tool install dvc[ssh,s3]2. Initialize a Repository
3. Configure Shared Cache (ExCL)
This can also be skipped and done instead at the instance level to better support using the repo on non-ExCL systems. See Post Clone Steps on ExCL | ExCL User Docs.
๐ฆ Adding Data
๐ Getting Data
If cache settings changed:
๐งฐ Helpful Commands
๐งโ๐คโ๐ง Cloning a DVC Repository and Post Clone Steps
On ExCL (shared cache)
Outside ExCL (remote usage)
๐ง Mental Model
Git tracks small metadata files (
.dvc)DVC cache stores actual data (by hash)
Workspace files are symlinks into the cache
Multiple repos โ same shared cache โ no duplication
๐๏ธ Best Practices on ExCL
Use a shared project cache (
/auto/project/โฆ)Always run
dvc checkoutafter cloningPrefer
cache.type symlinkfor data sharing and clarityAvoid unnecessary pipeline re-runs (be careful with dependencies)
Periodically review cache usage (
dvc gcwith care)
๐ When to Use DVC vs. <Insert Existing Workflow>
Use DVC when:
You want reproducibility and versioned datasets
Multiple repos need to share large datasets
You want content-based tracking instead of paths
Use existing workflow when:
You have large exploratory runs (e.g., DEFFE)
Data is expensive to recompute, or you have bespoke processes.
You prefer manual control and simpler tooling
๐ Key Change from Simple Data Storage Approach
Instead of:
You reference:
โ Data becomes portable, versioned, and reproducible
๐งน Notes on Cache Management
Cache grows over time (content-addressed)
Use:
Only run with care in shared environments (can remove needed data)
Note that enabling soft/hard links causes DVC to protect the linked data because editing them in-place would corrupt the cache. See dvc unprotect.
Using dvc gc with a shared cache may delete data needed in another project! See more info about cleaning a shared cache safely.
Last updated
Was this helpful?