Skip to main content

Execute Python functions on cloud compute with a simple decorator

Project description

Skyward

Cloud accelerators with a single decorator

CI PyPI Python License


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@compute makes 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skyward-0.2.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skyward-0.2.0-py3-none-any.whl (173.3 kB view details)

Uploaded Python 3

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

Hashes for skyward-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6ae70c8832ac99b2ba700c2cd9e84baebae49dea8914011fcb79bce4faf3ff05
MD5 d085eb92604af22192fdff5e1e78e340
BLAKE2b-256 29776eeabf418753c0961ed7027c928e613bf59e8666d7fb89164ba2be322a5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for skyward-0.2.0.tar.gz:

Publisher: publish.yml on gabfssilva/skyward

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for skyward-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e3a3577b06f8efd3273cc45d774344215a4d791577c41f08bec217ac4fc60f59
MD5 3142108e3beeff067f9fceb42e359101
BLAKE2b-256 51bc66d61aea4c400dee36637d2129aa57bdd4e6010dddefff92a648e0128338

See more details on using hashes here.

Provenance

The following attestation bundles were made for skyward-0.2.0-py3-none-any.whl:

Publisher: publish.yml on gabfssilva/skyward

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page