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.1.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.1.0-py3-none-any.whl (171.2 kB view details)

Uploaded Python 3

File details

Details for the file skyward-0.1.0.tar.gz.

File metadata

  • Download URL: skyward-0.1.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.1.0.tar.gz
Algorithm Hash digest
SHA256 c3602d5b3aa906d8a82a8c7a51bb7ca4456e7703de67f7ec5d0050b81aa4b3bd
MD5 b55dd8379141733841ea5f6eeeab6689
BLAKE2b-256 a1c9ea1c07ee2caf25616f581d2fe98f22276a9b0a52a7a8fdc0811148f9eab8

See more details on using hashes here.

Provenance

The following attestation bundles were made for skyward-0.1.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.1.0-py3-none-any.whl.

File metadata

  • Download URL: skyward-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 171.2 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 71eff288d62bc429773c3a06f1671ab5b7c0219192ffcaead75106b66a1b9e6d
MD5 65adc305f2beff6bc047a3d688c20961
BLAKE2b-256 0678e162517f81aaa9960768084e700139c80b7ec3386d96542f58ba25b2b9c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for skyward-0.1.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