← All extensions
Compute over SSH banner

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 ssh into — a GPU box under your desk, a rented cloud instance, a university server.
  • Run in a container — name an image and the job runs in docker run --gpus all, with your job folder mounted.
  • Pick the interpreter — name python and the job's python is that one.
  • Cap a job's hours — maxHours stops 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

  1. Make sure ssh <host> works from a terminal without a prompt.
  2. Name the machine in Compute (Create the file), with engine: ssh.
  3. Press Check on its row.