Cloudcast — Multi-Cloud Data Transfer Optimization
Broadcast a dataset from a source cloud region to multiple destinations at minimum total cost. The evolved search_algorithm constructs routing topologies (relay trees, Steiner-like structures) that exploit shared intermediate hops across cloud providers.
Based on the Skyplane/Cloudcast system (NSDI'24).
Setup
Download the dataset (network profiles and evaluation configs):
cd benchmarks/ADRS/cloudcast bash download_dataset.shThis downloads:
profiles/cost.csv— egress cost ($/GB) per region pairprofiles/throughput.csv— measured throughput (bps) per region pairexamples/config/*.json— 5 network configurations used for evaluation (intra-AWS, intra-Azure, intra-GCP, inter-cloud)
Set your API key:
export OPENAI_API_KEY=...
Run
From the repo root:
uv run skydiscover-run \
benchmarks/ADRS/cloudcast/initial_program.py \
benchmarks/ADRS/cloudcast/evaluator.py \
-c benchmarks/ADRS/cloudcast/config.yaml \
-s [your_algorithm] \
-i 100
Files
| File | Description |
|---|---|
initial_program.py |
Baseline search_algorithm function to evolve |
evaluator.py |
Scores programs on total transfer cost across 5 network configs |
config.yaml |
Task-specific config (LLM, evaluator timeout, system prompt) |
simulator.py |
Broadcast cost simulator |
broadcast.py |
BroadCastTopology data structure |
utils.py |
Graph construction from profile CSVs |
download_dataset.sh |
Script to download required data files |