A streamlined workload manager designed for Deep Learning research, optimizing GPU usage for individuals and small teams.
Project description
cue
Lightweight GPU job scheduler for deep learning researchers.
Stop waiting for GPUs. Stop writing bash scripts. Define your experiments in YAML and let cue handle the rest.
Why cue?
You have 4 GPUs and 50 experiments to run. Cue automatically queues your jobs, assigns available GPUs, and logs everything—no daemons, no databases, just Python.
Install
pip install cue-ml
Requires Python 3.10+ and Linux with NVIDIA drivers.
Quick Start
1. Create experiments.yaml:
config:
log_dir: "logs/my_project"
python_cmd: "python3"
experiments:
- name: "bert-finetune"
script: "train.py"
runs:
- args: "--model bert-base --lr 1e-4"
- args: "--model bert-large --lr 2e-5"
gpus: 2 # Request 2 GPUs for this run
- name: "vision-test"
script: "evaluate.py"
runs:
- args: "--dataset cifar10"
2. Run:
cue -p experiments.yaml
Cue launches a terminal dashboard showing job status, GPU usage, and queue depth. Each run's output is automatically logged.
Features
- Auto-GPU assignment – Detects idle GPUs and schedules jobs
- Multi-GPU support – Request 1, 2, 4, or 8 GPUs per run
- Live dashboard – Monitor everything in your terminal
- Smart logging – Organized stdout/stderr for every experiment
- No infrastructure – Just Python, no complex setup
- Simulation mode – Test configs without GPUs
Configuration
| Key | Type | Description |
|---|---|---|
config.log_dir |
string | Output directory for logs (default: ./logs) |
config.python_cmd |
string | Python interpreter (default: system Python) |
experiments |
list | Experiment definitions |
experiments[].script |
string | Path to Python script |
experiments[].runs |
list | Configurations to execute |
experiments[].runs[].args |
string | Command-line arguments |
experiments[].runs[].gpus |
int | GPUs required (default: 1) |
CLI Options
cue -p experiments.yaml [options]
| Option | Description |
|---|---|
-p, --path |
Path to config file (required) |
--gpus N |
Default GPUs per job if not specified |
--fail-fast |
Stop queue if any job fails |
--dry-run |
Validate config without running |
--simulate N |
Test with N fake GPUs |
--debug |
Verbose error output |
Testing Without GPUs
cue -p experiments.yaml --simulate 8
Simulates an 8-GPU machine for testing your pipeline.
Contributing
Contributions welcome! Fork, branch, commit, push, and open a PR.
License
MIT License – see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cue_ml-1.0.0.tar.gz.
File metadata
- Download URL: cue_ml-1.0.0.tar.gz
- Upload date:
- Size: 19.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3cdb8c5b9586a63c7ad5fb46721c8b5949deb0ec36e9b1ad07a79b47b8bd120
|
|
| MD5 |
5f443c8b4ea64217e5ca99821d9b2c44
|
|
| BLAKE2b-256 |
7f204fa75fe7228c941c2d6efce0a01c081c0d1f7732b4a558f7cd805935d391
|
File details
Details for the file cue_ml-1.0.0-py3-none-any.whl.
File metadata
- Download URL: cue_ml-1.0.0-py3-none-any.whl
- Upload date:
- Size: 21.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26112d3b7f9b036f5707e3c03a4e5470c68e3adc1a0332b47be23922387357ab
|
|
| MD5 |
3076b531fc384fa2756ae4498f716bcf
|
|
| BLAKE2b-256 |
3df50239cbb664bbdeda14f1ec39b70d5e88128192cd995dd34f24463a400e3f
|