Skip to main content

rotastellar-distributed

Distributed Computing for Space Infrastructure

Federated learning, model partitioning, gradient synchronization, and mesh networking for orbital compute clusters.

Installation

pip install rotastellar-distributed

With framework support:

pip install rotastellar-distributed[pytorch]
pip install rotastellar-distributed[tensorflow]

Quick Start

Federated Learning

from rotastellar_distributed import (
    FederatedClient,
    GradientAggregator,
    AggregationStrategy,
    CompressionConfig,
    CompressionType
)

# Configure gradient compression for limited bandwidth
compression = CompressionConfig(
    compression_type=CompressionType.TOP_K,
    sparsity=0.99,  # Keep top 1% of gradients
    error_feedback=True
)

# Create federated client
client = FederatedClient(
    node_id="sat-001",
    compression=compression
)

# Compress gradients before transmission
gradients = model.get_gradients()
compressed = client.compress(gradients)
print(f"Compression ratio: {compressed.compression_ratio:.1f}x")

# Server-side aggregation
aggregator = GradientAggregator(strategy=AggregationStrategy.FEDAVG)
aggregated = aggregator.aggregate([grad1, grad2, grad3], weights=[0.4, 0.3, 0.3])

Model Partitioning

from rotastellar_distributed import (
    ModelProfile,
    PartitionOptimizer,
    NodeConfig,
    NodeType
)

# Profile your model
profile = ModelProfile(
    layers=[
        {"name": "embedding", "params_mb": 100, "flops": 1e9},
        {"name": "transformer_1", "params_mb": 200, "flops": 5e9},
        {"name": "transformer_2", "params_mb": 200, "flops": 5e9},
        {"name": "output", "params_mb": 50, "flops": 1e8},
    ]
)

# Define available nodes
nodes = [
    NodeConfig(node_id="sat-001", node_type=NodeType.SATELLITE, memory_gb=8, compute_tflops=2.0),
    NodeConfig(node_id="sat-002", node_type=NodeType.SATELLITE, memory_gb=8, compute_tflops=2.0),
    NodeConfig(node_id="ground-001", node_type=NodeType.GROUND, memory_gb=32, compute_tflops=10.0),
]

# Optimize partitioning
optimizer = PartitionOptimizer()
plan = optimizer.optimize(profile, nodes)
print(f"Partition plan: {plan.assignments}")
print(f"Estimated latency: {plan.estimated_latency_ms:.1f} ms")

Synchronization Scheduling

from rotastellar_distributed import SyncScheduler, GroundStation
from rotastellar import Position

# Define ground stations
stations = [
    GroundStation(
        name="KSC",
        position=Position(28.5729, -80.6490, 0.0),
        uplink_mbps=100.0,
        downlink_mbps=200.0
    ),
    GroundStation(
        name="Svalbard",
        position=Position(78.2297, 15.3975, 0.0),
        uplink_mbps=150.0,
        downlink_mbps=300.0
    ),
]

# Create scheduler
scheduler = SyncScheduler(ground_stations=stations)

# Get optimal sync windows
windows = scheduler.get_sync_windows(
    satellite_id="sat-001",
    duration_hours=24
)
for window in windows:
    print(f"Station: {window.station.name}")
    print(f"Start: {window.start_time}, Duration: {window.duration_seconds}s")
    print(f"Data capacity: {window.data_capacity_mb:.1f} MB")

Space Mesh Networking

from rotastellar_distributed import SpaceMesh, MeshNode
from rotastellar import Position

# Create mesh network
mesh = SpaceMesh()

# Add nodes
mesh.add_node(MeshNode(node_id="sat-001", position=Position(45.0, -122.0, 550.0)))
mesh.add_node(MeshNode(node_id="sat-002", position=Position(46.0, -120.0, 550.0)))
mesh.add_node(MeshNode(node_id="sat-003", position=Position(44.0, -118.0, 550.0)))

# Add inter-satellite links
mesh.add_link("sat-001", "sat-002", bandwidth_mbps=1000.0, latency_ms=2.0)
mesh.add_link("sat-002", "sat-003", bandwidth_mbps=1000.0, latency_ms=2.5)

# Find optimal route
route = mesh.find_route("sat-001", "sat-003")
print(f"Route: {' -> '.join(route.hops)}")
print(f"Total latency: {route.total_latency_ms:.1f} ms")

Features

  • Federated Learning — Privacy-preserving distributed training across orbital nodes
  • Gradient Compression — TopK, random sparsification, quantization for bandwidth-limited links
  • Model Partitioning — Intelligent layer placement across heterogeneous nodes
  • Sync Scheduling — Optimal ground station contact windows for data synchronization
  • Mesh Networking — Dynamic routing for inter-satellite communication

Links

Author

Created by Subhadip Mitra at RotaStellar.

License

MIT License — Copyright (c) 2026 RotaStellar

Metadata

Release files for rotastellar-distributed 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rotastellar-distributed 0.1.1
File Size Uploaded
rotastellar_distributed-0.1.1.tar.gz 20.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rotastellar-distributed 0.1.1
File Interpreter ABI Platform
rotastellar_distributed-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 43.9 kB

Release files / rotastellar_distributed-0.1.1.tar.gz

Download URL rotastellar_distributed-0.1.1.tar.gz
Size 20.2 kB
Tags Source
SHA-256 checksum
How to use checksums
900482f67654b006538f916052a9f635f6c120756576d1b4e394a4016b17fab9
BLAKE2b-256 checksum
How to use checksums
c017a30b58b94b014431488cc4dfe6fb24c259ecbe63483c97aa481764570c66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / rotastellar_distributed-0.1.1-py3-none-any.whl

Download URL rotastellar_distributed-0.1.1-py3-none-any.whl
Size 23.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b0d7c1bc5385abdecf753f786cc2a3cd5927f424a364ccb511881baf21da2cd0
BLAKE2b-256 checksum
How to use checksums
a3915e7f6f69c64d723d4c4d01501c4deef7cc25f465355eb9c046385ace6fdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page