A command line interface for running cloud jobs
Project description
o-o
o‑o is a command line interface for running jobs on ephemeral cloud instances with tracked inputs and outputs. Building data or MLOps pipelines is as simple as stringing together multiple commands, as easily as running locally, but with the power of cloud compute and storage.
Highlights
- Easily run any command in any language in cloud compute environments
- Flexible. Define your own run environments with docker images and machine types
- Traceable. Trace all inputs to the commands that produced them
- You control your data. Data and source code is stored in your managed buckets
- Support for Scaleway and Google Cloud (more to come...)
Getting Started
Follow the installation instructions to configure
o-o. Once setup, define environments and datastores in an .ooconfig file:
project: test-project
environments:
- name: scaleway
provider: scaleway
image: docker.io/debian:stable-slim
machinetype: STARDUST1-S
region: fr-par-1
- name: gcp
provider: gcp
image: docker.io/debian:stable-slim
machinetype: e2-highcpu-2
region: northamerica-northeast1-b
- name: scaleway-l4
provider: scaleway
image: docker.io/nvidia/cuda:11.0.3-base-ubuntu20.04
machinetype: L4-1-24G
region: fr-par-1
datastores:
- name: my-datastore
provider: scaleway
bucket: o-o-data
region: fr-par
Lets start with a simple example that creates a data.txt file containing
"Hello World" (under the hood, o-o will start and configure our scaleway
environment, execute our command, copy output files to our datastore, and
finally, delete the Scaleway instance).
$ o-o run --environment scaleway --message "create data.txt" -- \
'echo "Hello World" > o://output/data.txt'
We completed our first run! o-o run --list displays the run's id (in this
case ntus965ryy) and message:
$ o-o run --list
ntus965ryy create data.txt
You are free to run commands in any configured environment. Let's run a second
command in our gcp environment that uses the output of ntus965ryy
as input, and simply prints the contents of data.txt:
$ o-o run --environment gcp --message "print data.txt" -- \
cat o://ntus965ryy/data.txt
Hello World
$ o-o run --list
ntus965ryy create data.txt
cxdbx8am38 print data.txt
GPUs are also available with properly configured environments. The
scaleway-l4 environment we configured above supports GPU workloads:
$ o-o run --environment scaleway-l4 --message "try gpu environment" -- nvidia-smi
Sat Feb 1 10:00:00 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.195.03 Driver Version: 570.195.03 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA L4 Off | 00000000:01:00.0 Off | 0 |
| N/A 36C P0 27W / 72W | 0MiB / 23034MiB | 2% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
And that's the basics. Find out more in the documentation
and with o-o --help.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file o_o-0.6.0.tar.gz.
File metadata
- Download URL: o_o-0.6.0.tar.gz
- Upload date:
- Size: 34.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9a1c9ee5bb90834cc95a190a57fccf7bc1b4ed1df0df37e5741de9b25c8a224
|
|
| MD5 |
bd048db370e8b3c3aefc201be32a33cd
|
|
| BLAKE2b-256 |
e4646985c63bab2ea927097032fe78dbf68202b5b1e0609eb802ddac7b253467
|
File details
Details for the file o_o-0.6.0-py3-none-any.whl.
File metadata
- Download URL: o_o-0.6.0-py3-none-any.whl
- Upload date:
- Size: 37.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6cc9c64c753eb5b1e142dda3c4f325021fca982d1c52603f478db21c257682a
|
|
| MD5 |
6e3caa692ad8a215a2913d1deed7ec23
|
|
| BLAKE2b-256 |
f1dd0e03989a53b9ab6b14f8623e1a8d712510d674ffc5875b7ae4bce3fb5a22
|