MEC Queue Digital Twin
The MEC Queue Digital Twin (VectorizedMECQueue) models multi-server M/M/c queuing theory dynamics for edge server computing clusters deployed on UAVs or Base Stations.
M/M/c Queuing Dynamics
Each Mobile Edge Computing (MEC) node operates \(c\) parallel CPU/GPU processing cores with individual service rate \(\mu = f_{\text{cpu}} / s_{\text{task}}\) (tasks/sec).
For a aggregate task arrival rate \(\lambda\), server traffic intensity \(\rho\) is defined as:
For queue stability, \(\rho < 1\).
Erlang-C Queue Waiting Probability
The probability \(P_q\) that an offloaded task must wait in the queue before processing follows the Erlang-C formula:
Average Waiting & Execution Delay
The average queuing wait time \(W_q\) and total task response delay \(T_{\text{total}}\) are:
where \(T_{\text{comm}} = D_{\text{task}} / R_{ij}\) is the radio transmission delay over the mmWave link.
Vectorized PyTorch Implementation
VectorizedMECQueue calculates queuing metrics across thousands of MEC servers simultaneously:
import torch
from urbanmarl.models.mec_queue import VectorizedMECQueue
queue_model = VectorizedMECQueue(
num_servers=4,
service_rate=100.0, # tasks per second
device="cuda"
)
# Compute queuing delays for batched arrival rates (B, N_mec)
delays, waiting_times, queue_lengths = queue_model.compute_delays(
arrival_rates=lambda_matrix,
data_rates=transmission_rates,
task_sizes=task_sizes,
)