OpenResearch

Compute Backends

Experiments run on a compute backend. Configure backends in the app under Compute, or with orx compute. Each run uses the backend its experiment asks for, or the machine-wide default.

Supported backends

  • local: this computer. Nothing to configure.
  • ssh: any host alias in ~/.ssh/config, optionally inside a container. See RunPod and Lambda for examples. The host needs bash, tar, and Python 3.6+.
  • slurm: submit jobs through an SSH login node. Set the partition, account, time limit, CPUs per task, and memory.
  • k8s: a Kubernetes context and namespace.
  • ray: a Ray cluster address.
  • hf: Hugging Face Jobs. Needs HF_TOKEN with Jobs write permission, or hf auth login.
  • modal: needs MODAL_TOKEN_ID and MODAL_TOKEN_SECRET, or modal token new.
  • tinker: Thinking Machines Tinker. Needs TINKER_API_KEY.
  • openresearch: managed GPUs and CPUs billed to your OpenResearch organization. Needs orx login. See Managed Compute.

Credentials can be saved on the app's Environment page.

Configure from the CLI

bash
# See every backend and the current default
orx compute status
orx compute show slurm

# Save settings (never changes the default)
orx compute configure slurm --host cluster --partition gpu --time-limit 04:00:00
orx compute configure modal --credentials-file creds.json

# Check that a backend can run experiments
orx compute test ssh --host runpod-gpu

# Use a backend for future runs
orx compute default set ssh

--credentials-file takes JSON such as {"token": "..."}, {"key": "..."}, or {"tokenId": "...", "tokenSecret": "..."}. Pass - to read it from stdin.

Remote run directories

SSH and Slurm runs live under ~/.orx on the remote machine by default; change it with --remote-root. OpenResearch keeps each project's three newest runs there and removes older ones, except their TensorBoard logs. Pass --keep-remote-runs true to keep everything.