Execute Python functions on cloud compute with a simple decorator
Project description
Cloud accelerators with a single decorator
Skyward is a Python library for ephemeral accelerator compute. Spin up cloud accelerators, run your code, and tear them down automatically. No infrastructure to manage, no idle costs.
Quick Example
import skyward as sky
@sky.compute
def train(epochs: int) -> dict:
import torch
model = torch.nn.Linear(100, 10).cuda()
optimizer = torch.optim.Adam(model.parameters())
for epoch in range(epochs):
loss = model(torch.randn(32, 100, device="cuda")).sum()
loss.backward()
optimizer.step()
return {"final_loss": loss.item()}
with sky.ComputePool(provider=sky.AWS(), accelerator="T4", image=sky.Image(pip=["torch"])) as pool:
result = train(epochs=100) >> pool
print(result)
Features
- One decorator, any cloud —
@computemakes any function remotely executable. AWS, RunPod, VastAI, and Verda with a unified API. - Operators, not boilerplate —
>>executes on one node,@broadcasts to all,&runs in parallel. No job configs, no YAML. - Ephemeral by default — Instances provision on demand and terminate automatically. Context managers guarantee cleanup.
- Multi-provider support — AWS, RunPod, VastAI, Verda with automatic fallback and cost optimization.
- Distributed training — PyTorch DDP, Keras 3, JAX, TensorFlow, and HuggingFace integration decorators.
- Distributed collections — Dict, set, counter, queue, barrier, and lock replicated across the cluster.
- Spot-aware — Automatic spot instance selection, preemption detection, and replacement. Save 60-90% on compute costs.
Install
uv add skyward
Requirements
- Python 3.12+
- Cloud provider credentials (setup guide)
Documentation
Full documentation at gabfssilva.github.io/skyward.
License
MIT
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 skyward-0.2.0.tar.gz.
File metadata
- Download URL: skyward-0.2.0.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ae70c8832ac99b2ba700c2cd9e84baebae49dea8914011fcb79bce4faf3ff05
|
|
| MD5 |
d085eb92604af22192fdff5e1e78e340
|
|
| BLAKE2b-256 |
29776eeabf418753c0961ed7027c928e613bf59e8666d7fb89164ba2be322a5b
|
Provenance
The following attestation bundles were made for skyward-0.2.0.tar.gz:
Publisher:
publish.yml on gabfssilva/skyward
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skyward-0.2.0.tar.gz -
Subject digest:
6ae70c8832ac99b2ba700c2cd9e84baebae49dea8914011fcb79bce4faf3ff05 - Sigstore transparency entry: 953560754
- Sigstore integration time:
-
Permalink:
gabfssilva/skyward@94247135c3299b51f0e8479279c59e80e737f4e2 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/gabfssilva
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@94247135c3299b51f0e8479279c59e80e737f4e2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file skyward-0.2.0-py3-none-any.whl.
File metadata
- Download URL: skyward-0.2.0-py3-none-any.whl
- Upload date:
- Size: 173.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3a3577b06f8efd3273cc45d774344215a4d791577c41f08bec217ac4fc60f59
|
|
| MD5 |
3142108e3beeff067f9fceb42e359101
|
|
| BLAKE2b-256 |
51bc66d61aea4c400dee36637d2129aa57bdd4e6010dddefff92a648e0128338
|
Provenance
The following attestation bundles were made for skyward-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on gabfssilva/skyward
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skyward-0.2.0-py3-none-any.whl -
Subject digest:
e3a3577b06f8efd3273cc45d774344215a4d791577c41f08bec217ac4fc60f59 - Sigstore transparency entry: 953560755
- Sigstore integration time:
-
Permalink:
gabfssilva/skyward@94247135c3299b51f0e8479279c59e80e737f4e2 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/gabfssilva
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@94247135c3299b51f0e8479279c59e80e737f4e2 -
Trigger Event:
release
-
Statement type: