ContinuumBench
收藏资源简介:
ContinuumBench是一个专为云-边连续体设计的联合自动缩放与放置基准测试框架,由意大利国家研究委员会、比萨大学和路易斯大学的研究团队共同开发。该框架基于ECLYPSE模拟器,定义了四个典型场景(EO双流、驾驶V2X、分割推理和工业IoT),并通过受控的评估机制和压力源来隔离不同控制杠杆的影响。数据集创建过程中扩展了ECLYPSE的固定底层模型,加入了任务到达、弹性工作池、间歇性传输、缓冲和失败处理等运行时动态。该基准旨在解决现有评估中因配置隐式假设和指标选择导致的结论依赖性问题,为云-边资源管理控制器提供公平、可重复的比较环境。
ContinuumBench is a joint auto-scaling and placement benchmark framework purpose-built for the cloud-edge continuum, developed by research teams from the National Research Council of Italy, the University of Pisa, and LUISS University. Built on the ECLYPSE simulator, it defines four canonical scenarios: EO dual-stream, vehicular V2X, split inference, and industrial IoT, and isolates the impact of distinct control levers via controlled evaluation mechanisms and stressors. During the dataset curation process, the fixed underlying model of ECLYPSE was extended to incorporate runtime dynamics including task arrival, elastic worker pools, intermittent data transmission, buffering, and failure handling. This benchmark aims to mitigate conclusion dependency issues caused by implicit configuration assumptions and metric selection in existing evaluations, providing a fair and reproducible comparative environment for cloud-edge resource management controllers.
ContinuumBench是一个用于云-边-端连续体(cloud-edge continuum)基准测试的公开工具包,专注于可复现的部署(placement)和自动扩缩容(autoscaling)实验,支持间歇性链路环境。它覆盖云、边缘、物联网和太空等多个层级,用于联合研究部署策略、工作池扩缩容、间歇链路传输以及存储转发行为。
核心特性
- 默认与Eclypse集成:应用图、基础设施图、部署视图、结构路径查找、节点可用性视图、路由成本计时、图更新策略和原生部署策略均直接采用Eclypse的实现。
- 在Eclypse之上增加了基准测试协议逻辑、工作负载队列、临时接触可达性、控制器策略、可靠性和能耗指标、自适应控制器接口以及跨运行分析能力。
安装要求
- 需要Python 3.10+。
- 依赖外部基座Eclypse,固定版本为0.8.1(commit
73806b7)。 - 可通过
pip install -e ".[milp,figures,dev]"安装核心及可选依赖(MILP需要scipy/numpy,绘图需要matplotlib,测试需要pytest)。 - 支持通过
ECLYPSE_HOME环境变量指向已有的Eclypse检出目录,或通过git克隆并切换到指定版本安装。
仓库内容
src/:独立的continuum_benchPython包。configs/:示例基准配置及基于轨迹的变体。tests/:回归测试套件。sweeps/和analysis/:论文发布用的批量实验和分析管道。- 包含基线控制器(平凡、启发式、oracle风格)的实现。
- 提供多级README(
src/README.md、configs/README.md、sweeps/README.md、analysis/README.md等)用于导航。
使用方式
- 运行基准:通过命令行执行,例如
python -m continuum_bench.cli run --config configs/eo_small.yaml --controller separated_loops --seed 0 --out runs/。 - 汇总结果:运行
python -m continuum_bench.cli summarize --run_dir runs/<run_id>重写summary.json。 - 配置示例包括:EO双流(
eo_small.yaml)、驾驶/V2X(driving_small.yaml)、拆分推理(split_inference_small.yaml)、工业物联网(industrial_iot_small.yaml)及其基于轨迹的变体。 - 分析评估使用
evaluation_regime轴:F0(确定性合成基线)、F1(接触/移动感知执行)、F2(校准轨迹执行)。能耗核算和节点故障作为压力覆盖层,不对应独立的评估点。
场景
eo_dual_stream:融合太空流和物联网流,通过分诊路由到快速和批量处理路径。driving_v2x:车辆到边缘的感知、跟踪、规划及卸载敏感执行。split_inference:边缘优先推理,可选云增强。industrial_iot:面向控制的工业流及批量/归档路径。
控制器
文档列出了九种控制器变体(通过--controller指定),分为:
- 仅部署类:
round_robin、best_fit、placement_only:cost_greedy、placement_only:milp。 - 自动扩缩容类:
hpa、keda。 - 联合类:
separated_loops(论文中的联合扩缩容与部署启发式)。 - 基于规则基线:
learned_stub(特征规则)、rl_meta(元规则)。 - 额外支持极端/附加部署基线(
static、no_scaling、all_local、all_edge、all_cloud)。
Eclypse边界
- Eclypse负责基座行为:应用和基础设施资产、符号部署层、资源可行性、结构路径查找、路径资源聚合、路由成本传输延迟、更新策略图变更。
- ContinuumBench仅维护Eclypse未定义的原语:队列和缓冲区动态、临时接触可达性、周期级链路预算核算、随机节点故障场景生成、基于Eclypse声明的功率资产随时间积分计算能耗、奖励记录和离线分析。
- 周期级资源记录提供
resources.reserved(Eclypse部署视图预留)和resources.active_runtime(队列加权的活动运行时需求)两类视图。
复现实验
make smoke:快速端到端检查。make reproduce:完整复现(所有sweeps + 分析 + 图表,约需1 CPU小时)。make test:回归测试,包括固定的头条数字。- 输出写入
runs/main/analysis/grouped_strict.csv和figs/。
扩展机制
- 添加控制器或场景无需编辑运行器:可放置
controllers/extensions_local.py或scenarios/extensions_local.py模块,通过对应的extensions.py钩子按需加载。
验证
- 运行
pytest tests -q,测试套件确定性且快速。Eclypse相关测试在无法导入时会自动跳过。 tests/test_golden_headline.py在本地运行产物存在时固定论文头条数字。
输出文件
每次运行目录包含:
metadata.json:运行元数据。epochs.jsonl:周期级详细记录。decision_trajectory.jsonl:周期级状态、动作、结果和奖励记录。epochs.csv:紧凑的周期级指标。summary.json:延迟、吞吐、SLO、资源利用率、能耗、可靠性、新鲜度、缓冲、抖动、迁移、控制器开销等聚合指标。可靠性报告包含完成、失败和待处理工作,以及完成或失败的核算,防止低完成率伪装成良好延迟结果。




