Skip to the content.

Multi-access MEC: the radio you talk over shapes the placement

What it shows

The same task does not cost the same on the same node depending on how it got there. A cellular smartphone pays 30 ms and a 100 Mbps uplink; a Wi-Fi tablet pays 5 ms and 1300 Mbps. AccessAwareOrchestrator folds that difference into the decision: it scores every allowed candidate as an estimated delay, and the lowest score wins.

For a candidate node the score is the compute delay on that node, plus the access delay of the link the task came in on, plus a queue term. The access delay is the uplink transfer of the device’s own technology (cellular or Wi-Fi), and a cloud candidate pays the WAN hop on top of it. The compute delay is the task length divided by the node’s MIPS per core. The queue term charges one waiting task for its share of the node’s cores, so a busy edge server looks slower than an idle one. The access technology enters only through that first term, but it is enough to move a decision: a cellular device whose slow uplink dominates can find it cheaper to hand the task to a nearby fast laptop on the direct Wi-Fi link, while a Wi-Fi device, whose uplink to the edge is already fast, keeps the edge.

flowchart LR
    Sm["120 smartphones<br/>cellular, 5000 MIPS"] --> Ce["Cellular uplink<br/>100 Mbps, 30 ms"]
    Tb["90 tablets<br/>Wi-Fi, 8000 MIPS"] --> Wi["Wi-Fi uplink<br/>1300 Mbps, 5 ms"]
    Lp["90 laptops<br/>Wi-Fi, 20000 MIPS"] --> Wi
    Ce --> Sc["Score each tier<br/>access + compute + queue / cores"]
    Wi --> Sc
    Sc --> Ed["Edge, 4 DCs<br/>16 cores, 60000 MIPS"]
    Sc --> Mi["Mist devices"]
    Sc --> Cl["Cloud<br/>WAN 20 Mbps, 60 ms"]
    classDef score fill:#cfe8ff,stroke:#333;
    class Sc score;

The scenario

settings/ sets up a multi-access cell:

Run it

From the repository root, after pip install -e .:

python examples/multi_access_mec/multi_access_mec.py

No-install variant:

PYTHONPATH=src python examples/multi_access_mec/multi_access_mec.py

What to look for

The console ends with the per-technology placements and the result row:

AccessAwareOrchestrator - placements by access technology and tier: cellular/edge=4420, cellular/mist=225, wifi/edge=180
ACCESS_AWARE     devices= 300 tasks= 43500 ok= 38900 failed(delay)= 4600 avg_delay=0.107    cloud=   0 edge=42973 mist= 527 wan_usage=0.0       energy=179.5285
Access technology Placements on the edge Placements on the mist
cellular 4420 225
Wi-Fi 180 0

Set cellular_bandwidth to 10 to widen the gap: cellular tasks pay ten times the uplink transfer, more of them fall to a mist node, and the delay-failure count rises while the Wi-Fi tasks are untouched.

Results go to examples/multi_access_mec/output/.

Files

Where to go next