Compute over SSH
ivyx✓
Adds SSH machines to Compute so a pipeline step can train on a GPU you reach with ssh
Compute over SSH
Adds SSH machines to Compute so a pipeline step can train on a GPU you reach with ssh.
Name a machine in .punica/compute.yaml and a Train on a Remote Machine step
sends the job's files there, runs the command detached, and brings the outputs
back into your workspace. The job keeps its state in files beside it on the
machine, so closing the app or losing the connection loses nothing.
What you can do
- Train on any machine you can
sshinto — a GPU box under your desk, a rented cloud instance, a university server. - Run in a container — name an
imageand the job runs indocker run --gpus all, with your job folder mounted. - Pick the interpreter — name
pythonand the job'spythonis that one. - Cap a job's hours —
maxHoursstops a job that runs too long. - Cancel a job — the job and every process it started are stopped.
What it does not do
It never sees your key. It signs in with your own ssh and its agent, and
it never answers a password prompt: a machine that asks for one fails with a
sentence telling you to add your key to the agent.
It does not trust a new machine for you. A host key ssh has not seen is refused until you connect once from a terminal and accept it.
It does not leave a secret on the machine. A secret the job needs is
written under umask 077, read and deleted before the command starts, and
never travels on a command line.
Requirements
ssh and rsync on this machine and on the target. The Compute extension
draws the targets and jobs, and the MLOps extension 1.29.0 or newer draws the
step.
Getting started
- Make sure
ssh <host>works from a terminal without a prompt. - Name the machine in Compute (Create the file), with
engine: ssh. - Press Check on its row.