目录

SORA-DPA

SORA-DPA 是面向 openEuler 的用户态资源管控 Agent。项目围绕 Intent 先验与 SLO 契约、快慢路径和经验复用、主动调度探测、可验证动作与标准化 ResourceSkill 建立闭环;智能体提出候选,可信执行器实测、验证并恢复,内核快路径负责逐任务调度。

适用场景是延迟敏感服务与后台 CPU 任务共享资源。实验使用真实 gpt-6.1-sol 和 deepseek-flash,支持 EEVDF 时间片、cgroup CPU 权重以及 SORA-IntentSCX 候选。模型服务不进入内核调度热路径,也无需训练新的基础模型。中文 Qt 控制台使用 Python 的 PySide6 库。

决赛材料与目录

README.md
src/
  sora_agent/          契约、规划、执行、Skills、证据与经验
  native/              C/eBPF 调度器、加载器和确定性负载
  experiments/         协议、运行器、采集、分析与复现工具源码
  ui/                  中文 Qt 控制台
docs/
  操作系统开源创新大赛项目说明书(最终).pdf
  项目创新说明.pdf
  成员分工及主要贡献说明.pdf
  人工智能及第三方工具使用声明_打印.pdf
tests/
  test_*.py            单元、回归与集成测试
  ui/                  界面测试
  results/             验证数据、正式结果及校验清单
demo/
  start.sh             启动真实历史证据的 Qt 展示
  verify.sh            检查提交证据哈希
  artifacts/           内核能力说明与制品索引
presentation/
  决赛现场演示PPT/
  决赛演示视频/
作品原创承诺书.pdf

根目录还保留 pyproject.toml、CMakeLists.txt、Makefile、configs/ 等构建配置。源码集中在 src/,测试代码与验证数据放在 tests/。

架构与主要功能

  1. 语义目标与快慢路径。 Intent/SLO Contract 描述业务目标、资源约束、有效期和回退条件。UncertaintyGate 与同硬件域经验模块支持进程内经验复用和慢路径规划。
  2. 主动探测。 保留 Safe-EVI Top-2 历史模块,最多从三个候选中选择两个真实短测。决赛参数实验使用统一运行时,每例至多选择一个参数候选,记录观测、试探、恢复和提交。不同配置的证据单独报告。
  3. 可验证执行。 标准 Skill 生命周期、结构化动作验证、证据租约、探索预算、资源读回与恢复守护形成执行边界。ActionGraph 当前用于动作验证和离线协议;在线运行采用 EpisodeEngine 与 SchedulerActivation。
  4. 内核快路径。 SORA-IntentSCX 通过 per-cgroup hint、epoch、TTL、置信度与心跳检查,将任务派发到三类 DSQ。无效提示使用默认路径,调度器卸载后由内核恢复默认调度。
  5. 真实证据与界面。 Qt 展示系统概览、实验与案例、模型决策、结果对比、证据审计和实验启动入口。历史实验与当前主机遥测分别标识。

系统环境与依赖

目标为 openEuler 24.03 LTS SP4、x86_64、Python 3.12。已验证的服务器内核为 6.6.0-osagentx-scx-cgv2+。必须检查实际内核具备 sched_ext、BPF/BTF、cgroup v2 与目标参数接口,不能只依据发行版名称判断。

原生构建依赖 Clang/LLVM、CMake 3.20+、bpftool、libbpf、libelf、zlib 和匹配的内核头文件。实验使用 Redis 与自研固定到达客户端及 CPU batch 负载。Python 运行依赖 PyYAML,可选分析依赖 NumPy/Matplotlib,测试依赖 pytest/Ruff,界面依赖 PySide6。实际版本与许可证见 第三方说明 和 configs/dependencies.lock.yaml;历史锁定清单不代表所有环境均采用相同版本。

uname -r
test -r /sys/kernel/sched_ext/state
test -r /sys/kernel/btf/vmlinux
test -r /sys/fs/cgroup/cgroup.controllers

安装与构建

在仓库根目录执行;建议使用独立 Python 环境。普通查看和测试不要求整个 GUI 以 root 运行。

python -m pip install -e '.[analysis,test,ui]'
cmake -S . -B build/openEuler \
  -DSORA_KERNEL_SOURCE=/path/to/matching/linux \
  -DSORA_SCX_TOOLCHAIN_ROOT=/path/to/scx/toolchain
cmake --build build/openEuler --parallel 4
ctest --test-dir build/openEuler --output-on-failure

原生程序输出到 build/openEuler/native/sched_ext/ 和 build/openEuler/native/workloads/。构建依赖使用仓库外目录,不提交内核 RPM、生成的 BPF 头文件或第三方项目源码。

运行与演示

bash demo/verify.sh
bash demo/start.sh
# 指定解释器或其他实验目录
SORA_UI_PYTHON=/path/to/python bash src/ui/start.sh --data-root /path/to/experiment

demo/start.sh 默认只读展示仓库内的实验结果,启动展示时不调用模型或修改内核。新实验通过 GUI 的启动页或现有 CLI 明确选择输入。

PYTHONPATH=src python -m experiments.runners.parameter_campaign --help
PYTHONPATH=src python -m experiments.demo.sora_live_demo --help

复现多核批次采用 --profile multicore_4h --physical-cores 4,5 --candidate-space expanded --skip-phase-supplement,并显式提供 --reference、全新 --root 和原生 --binaries。协议实现见 src/experiments/protocols/parameter_tuning.py,批次配置见 tests/results/multicore_20261007/campaign/plan.json。复现时按目标机设置核布局、二进制路径和运行截止时间。真实模型认证来自私有环境或私有 auth.json,不存入仓库。

测试与验证材料

make check PYTHON=python
make test PYTHON=python

默认测试使用 src 导入路径,实验数据目录不参与 pytest 收集。Linux root 原生集成使用 SORA_NATIVE_INTEGRATION=1 启用;平台不满足时显示 skip。

  • 最新多核证据:195 个实际完成案例,其中资格 3、开发 96、四核主验证 72、五核描述性 24。
  • 历史结果:初赛性能结果与同轨迹模块回放,按各自实验协议独立统计。
  • 本机回归记录:Python 测试、静态检查及 Qt 界面验证。

四核主验证固定到 4 个独立物理核,每个条件 12 个配对块。GPT 与 DeepSeek 相对默认 EEVDF 的配对综合损失中位降幅为 36.25% 与 51.93%,原八项比较 Holm 校正后的两项 p 值均为 0.00390625。结论是该场景下的全程综合损失改善;全局请求 P99 仍约 3.26–3.27 ms。逐案例数据包含全部六个对照条件。

已知限制

  • 五核每条件 4 次,仅作描述性分析;没有六核、跨机器、NUMA 或大规模泛化证据。
  • 真实模型请求时延计入全程结果;各机制的独立作用尚未通过逐项消融验证。
  • 目标内核的部分 SCX 路径不能兑现有限 cpu.max 配额,执行器会检查相关能力并拒绝不支持的配置。
  • 经验模块是同硬件域进程内复用;周期采样无法检测所有采样间短暂变化。网络、安全、内存与 I/O 后端尚非完整交付能力。
  • UI 与部分参数能力依赖目标平台;原生构建、功能测试和性能实验的环境信息分别记录在对应验证材料中。
关于
121.1 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号