Edge↔Neocloud Continuum Placement: centralize by default, edge when forced
Where on the operator's footprint — tower, aggregation hub, metro PoP, central AI factory — should a given AI workload actually run? The AI-RAN pitch says "an AI factory at every tower"; the physics says lossless RDMA's buffer bill grows linearly with distance and line rate (the longest lossless product ever sold stops at 40 km [2, 4]) and synchronous training collapses ~26× at 1,000 km in the one published simulation study [6]. This repository turns that tension into an executable placement engine: four tier envelopes with the latency-domain physics built in, four gates (fabric, power, latency, gravity), twelve workload profiles — and a verdict matrix where every edgeward placement must name the constraint that forced it.
TL;DR: run edge-placement matrix and three findings fall out. (1) The tower is never the recommended tier — everything it can host, the aggregation hub hosts better; a national fleet of 30,000 GPU-equipped towers (60,000 GPUs) strands ~87% of its provisioned power in 2-GPU quanta and delivers 6.4× less schedulable FP8 per provisioned megawatt than 300 hub pods on a third of the power. (2) Latency is the weakest argument for the edge — 100 ms interactive SLAs clear a 500 km path; what actually forces edge placement is the fronthaul budget (~20 km), data gravity (~81 TB/month per 0.25 Gbps of raw ingest), and sovereignty. (3) The demark discipline: RDMA stays inside the PoP's latency domain; what crosses the carrier WAN is SRv6/EVPN-carried IP — crossing the demark is RPC, never RDMA [2, 24, 27].
Part of the DIMAGGI series on turning GPU capital into usable compute — the placement factor of usable = nominal × network × scheduling × recovery × placement. Full analysis in docs/study.md; all claims trace to REFERENCES.md. Companion repo: airan-neocloud-resiliency — what happens when the network under this matrix fails.
The verdict matrix
Each recommendation names its forcing gate: RAN L1 is forced to the hub by the ~100 µs eCPRI fronthaul budget [11]; the near-RT RIC loop is the only workload an application latency SLA forces below central (to the metro, not the tower); camera and telemetry workloads are forced edgeward by backhaul economics, not latency; sovereign inference pins to the metro PoP — sovereignty is a region pin, not an edge pin. Training never leaves the central factory, and a fantasy 1 MW tower stays blocked: the gates are orthogonal (make test).
Bandwidth cannot buy back distance
Only the bandwidth term of a ring all-reduce can hide behind compute; the 2(n−1) serially chained hops drain at the step boundary, exposed [10]. Quadrupling inter-site bandwidth moves the curve by <1% — Corning's ASTRA-sim study found ≤0.66% from doubling, in simulation [6]. Distance is the axis that matters, and 40 km — the reach of the longest InfiniBand product ever sold, which no AI lab uses [4] — is where lossless fabrics end:
PFC needs ~2× the one-way bandwidth-delay product — a full round trip of line-rate data — as per-port headroom: ~10 MB at 100 G/80 km (Bifrost's computed requirement: 9.5 MB; its testbed reserved 15.5), ~294 MB at 400 G/600 km (286 MB in Bifrost's simulation) — against tens of MB of real switch buffer [2]. Ultra Ethernet makes PFC optional inside the fabric [5]; it does not repeal BDP across the WAN.
Quickstart
pip install edge-continuum-placement # or: pip install -e .
edge-placement matrix # the full verdict table
edge-placement evaluate -w sovereign-inference-70b
edge-placement physics --rate 400 --km 600 # BDP, lossless ceiling, domains
edge-placement fleet # tower fleet vs hub fleet
evaluate -w W -t TIER exits non-zero if the placement is blocked — usable as a CI gate for infrastructure-as-code. Every envelope is overridable in code:
from continuum.place import place
from continuum.tiers import custom, TOWER, METRO_POP, CENTRAL
from continuum.workloads import workload
rural = (TOWER, custom("aggregation-hub", km_to_user=30.0), METRO_POP, CENTRAL)
place(workload("ran-l1-baseband"), rural).recommended # -> 'tower'
That last line is the tower's honest job description: it earns a GPU exactly where geography strands the radio beyond the hub's ~20 km fronthaul reach.
Reproduce
make test # 42 invariant tests, pinned to published data points [2, 6]
make figures # regenerates figures/ (needs matplotlib)
Python 3.10+, stdlib only; matplotlib only for figures. The tests pin the model to Bifrost's measured lossless-headroom points and Corning's overlap behaviors — if a constant drifts from its source, the suite fails.
Series — turning GPU capital into usable compute
- GPU Cluster Networking (network-vs-more-gpus) · GPU Cluster Scheduling (scheduler-vs-more-gpus)
- Compute↔Power Placement (compute-power-placement) — move work across the grid map
- Edge↔Neocloud Placement (this work) — move work down the operator's footprint, gated by physics
- Chaos Fidelity Standard (ai-cluster-chaos-fidelity) · Reliability Economics (reliability-economics) · Governed Autonomy (governed-autonomy)
- AI-RAN ↔ Neocloud Resiliency (airan-neocloud-resiliency) — the companion: survivability of the continuum this repo places onto
Margaret (Maggie) Nanyonga — Founder & Principal Architect, DIMAGGI AI. Governed AI infrastructure: the control, reliability, and audit layer for autonomous systems operating production networks and compute.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file edge_continuum_placement-1.0.0.tar.gz.
File metadata
- Download URL: edge_continuum_placement-1.0.0.tar.gz
- Upload date:
- Size: 23.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e768496f8e927461c3ec04fa8ca00d8ceffcb8679c0c5703142ab021e3d9f308
|
|
| MD5 |
017173d79191ac59447bead9876b1855
|
|
| BLAKE2b-256 |
74c95ce08466eb377edb5715dd7071cbf636b012f16d411f87be6fbbda28de20
|
File details
Details for the file edge_continuum_placement-1.0.0-py3-none-any.whl.
File metadata
- Download URL: edge_continuum_placement-1.0.0-py3-none-any.whl
- Upload date:
- Size: 19.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d1c661120140d7e4e8cc82870d9748493688bb10d0eea1e28085256c8669558
|
|
| MD5 |
9627aacaaa16deeffed76c16ad2eb7b3
|
|
| BLAKE2b-256 |
fc2c54d10b28d1b28c6d3e1f6710867a056eecaa06c5471c09a4e6d5ffdad5f1
|