A lightweight job queue for shared GPU servers without SLURM.
-
Clone the repository:
git clone https://github.com/yourusername/gpu-queue.git cd gpu-queue-rs # or relevant directory
-
Install with
uv(Recommended):uv pip install -e .
-
Start the Scheduler:
# Run in foreground (for testing/debugging) gpu-queue serve --min-free 2 # OR Start background daemon gpu-queue start --min-free 2
-
Submit Jobs:
gpu-queue add "python train.py --config config.yaml" --gpus 4 --priority high gpu-queue add "bash scripts/eval.sh" --gpus 1 --front
-
Monitor & Manage (TUI): Open the interactive dashboard:
gpu-queue watch
Keybindings:
d: Duplicate selected job (enters Edit Mode)e: Edit selected pending job / Confirm changesc: Cancel job (Pending -> Cancelled status)Space: View logs (internal viewer)L: View logs in external viewer (less)p: Pause/Resume running jobr: Remove completed job
Interactive Editing:
- Enter Edit Mode: Press
eon a pending job ordto duplicate. - Navigation: Use
h/lto switch between GPUs, Priority, and Command fields. - Modify Values: Use
j/kto increase/decrease values. - Edit Command: Select the Command field and press
Enterto open your system editor. - Confirm: Press
eto save changes. - Cancel: Press
Escto discard changes.
-
Install Dev Dependencies:
uv sync
-
Install Pre-commit Hooks (Important for contributing):
uv run pre-commit install
This ensures code style checks run before every commit.