How SkyPilot routes training jobs.
The logic behind automatic cost optimization across multiple clouds.
A three-layer processing stack.
Each submission passes through three processing layers before any GPU cycle is bought.
Job Spec Layer
Specify GPU type, dataset location, command, and resource limits in YAML, the Python API, or CLI. SkyPilot converts these inputs into a provider-neutral job spec, which the router checks against each cloud's current capacity and pricing.
Cost Intelligence Layer
SkyPilot polls live spot and on-demand APIs across AWS, GCP, Azure, and Lambda Labs. For each matching instance, the router weighs current price, zone capacity signals, historical interruption rates, and your fallback settings.
One command. SkyPilot handles the rest.
SkyPilot polls pricing APIs every 60 seconds. Ties use zone latency to your dataset bucket. Choose fail fast, wait for spot, or auto-upgrade to on-demand.
$ sky launch --cloud cheapest train_config.yaml
Scanning live pricing across 3 providers...
AWS p4d.24xlarge (spot) $8.23/hr
GCP a2-highgpu-8g (spot) $7.41/hr [selected]
Azure NC96ads-A100 (on-demand) $14.09/hr
Dispatching job to GCP us-central1-a...
Job launched. Run: train-20260601-083441
Automatic migration after reclaim
If a spot instance is reclaimed, SkyPilot saves a checkpoint through your framework's native PyTorch, JAX, or TensorFlow hooks. After the save completes, it requeues the job on the next-cheapest available instance. The job appears resumed, while the provider sees a newly provisioned instance.
Cost attribution per run
Each dispatched run creates a cost record covering provider, instance type, zone, spot versus on-demand, duration, and effective $/GPU-hour. These records aggregate into per-experiment, per-team, and per-model-family dashboard views. SkyPilot reports actual billed amounts, not estimates.
Use the clouds and frameworks your team already uses.
Cloud provider names indicate integration support, not customer endorsement.
Ready to route your first job?
Connect cloud credentials and dispatch in under 10 minutes.