Pathways CLI to easily bring up pathways clusters.
Project description
pwy: Standalone Pathways GKE Cluster CLI Tool
pwy is a lightweight, standalone Python CLI utility designed to generate, apply, and manage interactive Pathways workloads on Google Kubernetes Engine (GKE) using Kubernetes JobSets.
Features
- Automated TPU Topology Calculations: Translates simple TPU resource types (
v6e-4,v6e-16, etc.) into GKE topologies, VM counts, and instance settings. - Spot VM Support: Dynamically injects GKE node selectors and tolerations for running workloads on cost-effective Spot VMs.
- Colocated Python Support: Simplifies distributed checkpointing (e.g. via Orbax) by configuring and enabling colocated host CPU sidecars and proxy endpoints automatically.
- Interactive & Batch Execution: Supports spinning up pathways servers with infinite sleep drivers for interactive debugging, or executing training scripts directly.
- Dry-run Manifest Generation: Preview and inspect the GKE JobSet manifest without applying it to the cluster.
Installation
Install pathways-cli from PyPI using your preferred package manager:
# Using pip
pip install pathways-cli
# Or using uv (recommended for fast tool management)
uv tool install pathways-cli
Usage
Once installed, you can invoke the pwy CLI directly:
1. Provision / Preview a Cluster (pwy up)
Starts a Pathways JobSet or dry-runs the configuration.
pwy up \
--tpu-type v6e-16 \
--gcs-scratch-location gs://my-bucket/pathways-staging \
--num-slices 1 \
--dry-run
Key Options:
--tpu-type: (Required) TPU type (e.g.,v6e-4,v6e-8,v6e-16,v6e-32,v6e-64).--gcs-scratch-location: (Required) GCS scratch path for pathways synchronization.--num-slices: Number of TPU slices to run (default:1).--jax-client-image: Custom client container image (default:python:3.12-slim).--command: Run a custom training/eval script in the client container. If omitted, defaults tosleep infinity(interactive mode).--enable-spot: Add node affinity and toleration settings for Spot VMs.--colocated-python: Enables colocated CPU Python sidecar/init containers on GKE workers and enables external proxy routing.--dry-run: Prints the generated YAML to stdout instead of callingkubectl apply.--name: Name of the Kubernetes JobSet resource (default:pathways-interactive).--namespace: Target Kubernetes namespace (default:default).
2. Teardown a Cluster (pwy down)
Deletes the running Pathways JobSet.
pwy down --name pathways-interactive --namespace default
3. Verification Example
Once the interactive cluster is running, you can verify execution by execing into the client container:
-
Find the client pod name:
POD_NAME=$(kubectl get pods -l jobset.sigs.k8s.io/jobset-name=pathways-interactive -o jsonpath='{.items[?(@.metadata.labels.jobset\\.sigs\\.k8s\\.io/replicatedjob-name=="pwhd")].metadata.name}')
-
Install JAX and Pathways utils:
kubectl exec $POD_NAME -c client -- pip install jax pathwaysutils
-
Run a Python snippet to initialize and list devices:
kubectl exec $POD_NAME -c client -- python3 -c "import pathwaysutils; pathwaysutils.initialize(); import jax; print(jax.devices())"
The command output should print the available virtual TPU devices (e.g., coordinates and memory spaces of the allocated chips).
TPU Type Mappings
pwy handles all resource-limit math and topologies automatically. It supports a wide range of TPU generations, including:
- TPU v6e:
v6e-4up tov6e-256(includingv6e-8-1with 8 chips per VM) - TPU v5p:
v5p-8up tov5p-17920 - TPU v5e (v5LitePod):
v5litepod-8up tov5litepod-256 - TPU v4:
v4-8up tov4-4096 - TPU 7x:
7x-8up to7x-8192
Running Tests
To execute the unit test suite:
uv run pytest
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 pathways_cli-0.1.1.tar.gz.
File metadata
- Download URL: pathways_cli-0.1.1.tar.gz
- Upload date:
- Size: 17.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7ccb9c722960cc3139092e5ac4ecc0cfc499a67b7642b0366d9a09289711d80
|
|
| MD5 |
987686d527cd6c1012cdfb226eec3196
|
|
| BLAKE2b-256 |
6207ed530b968ed2ee000aabfd9a58ffc759ff6f44f1063d280a6e478569626b
|
File details
Details for the file pathways_cli-0.1.1-py3-none-any.whl.
File metadata
- Download URL: pathways_cli-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f13c8accc3c1d8021bcfc3504055fb11402860b31581f61efc7957e3f3ff76bd
|
|
| MD5 |
09c9e8dfbc1d4de537a752504565afe3
|
|
| BLAKE2b-256 |
b3dad236216252e0eb4bbd6e8bf503f90b75e486ef571917e486d4710371bbe7
|