uv tool install "git+https://github.com/brendanlong/gpu-coordinator@main"
# if you have a local GPU
gpuc host add local
# or use a remote host via SSH
gpuc host add some_machine --ssh me@some_remote
# submit a job and get its queue status back
gpuc submit job.example.yaml --host local
# rent a RunPod host, start a job on it
# you can queue additional jobs on the host and it will shut down when they finish
gpuc submit job.example.yaml --runpod --gpu A40 --max-price 0.60
gpuc status
gpuc logs <job-id> -f
# Start the web UI at http://127.0.0.1:8646/
gpuc web set-password && gpuc web serveuv tool upgrade gpu-coordinator
# optionally, upgrade all of the hosts now instead of waiting for
# the next submit
gpuc host bootstrap --all
I need to queue work on various GPUs to run experiments, and I want to do that as cheaply as possible:
Surprisingly, this doesn't seem to exist, so I built my own.
Queueing a few jobs, checking their status, and then tailing a job's logs
My use-case is weird[2]. I assume many researchers work at a lab with infinite money and support staff, and don't need to worry about silly things like only renting GPUs for the bare minimum amount of time.
I figured independent AI safety researchers might disproportionately need tools that don't assume they have infinite money though, so I'm also sharing it here. If anyone finds this useful, or would find it useful if not for [insert bug here], let me know!
Features
!gpuc skillin a conversation), including optional JSON output, plus a web UI.The web UI
Current Gaps
Some of these are non-goals; most are things I just haven't got around to. Let me know if one of these is a blocker to you.
Usage
See setup.md and usage.md for more details, or run
gpuc --help.To use with Claude, just send
!gpuc skillin a conversation.To upgrade, just:
Why not X?
This can still fail if the gpuc dispatcher on the host crashes. It should be more rare than Claude waiting for you to confirm at 2 am that it should shut down an expensive pod that it's done with.
I run Claude Code as a separate user and don't want to give it root on my entire desktop, and I'm currently working on a project where I have access to 2 GPUs on a shared SSH host that I don't have sudo on. I also want to be able to access remote queues from my laptop and want everything to keep running if the desktop reboots.
Let me know if you'd like to support my GPU habit.