Expose core review materials at repository root
四项核心评审材料已经按顺序放在仓库根目录,无需进入任何子文件夹:
完整开发过程记录、历史实验数据、消融实验日志、参考文献核验记录和自主探索日志保留在 docs/ 及 artifacts/ 中。项目源代码模块 env/、baselines/、policies/、training/、evaluation/、tests/ 和 scripts/ 均位于仓库根目录。
docs/
artifacts/
env/
baselines/
policies/
training/
evaluation/
tests/
scripts/
本项目面向中国研究生操作系统开源创新大赛第 16 题,研究带依赖约束的任务 DAG 在云、边、端异构计算资源上的调度问题。目标是在满足任务前驱关系、通信时延和资源互斥约束的前提下,最小化整体完成时间(makespan)。
项目提供完整的环境建模、HEFT/MILP 基线、MaskablePPO 训练、残差式任务排序、Best-of-N 推理、局部搜索精修、统计检验及 openEuler 跨平台验证流程。
最终提交方案由三个阶段组成:
flowchart LR A[任务 DAG 与异构资源] --> B[Residual Policy] B --> C[Best-of-64 候选初解] C --> D[合法拓扑序重定位] D --> E[best-only LNS] E --> F[最终调度方案]
指标定义为 mean_ratio = RL/LNS makespan ÷ HEFT makespan,小于 1 表示优于 HEFT。
mean_ratio = RL/LNS makespan ÷ HEFT makespan
evaluation/results/autonomous_exploration/direction2_lns/direct_vs_residual_paired_summary.json
evaluation/results/autonomous_exploration/compute_matched_sampling/paired_comparison_summary.json
最终方案相对配对的 Residual Best-of-64 平均降低 0.029925,双侧配对 t 检验 p=2.656851×10^-5。与耗时相近的纯 Best-of-128 相比,最终方案平均降低 0.021158,p=2.072081×10^-6,用于排除“效果仅来自增加采样次数”的混淆因素。
0.029925
p=2.656851×10^-5
0.021158
p=2.072081×10^-6
MILP 精确求解在 7 个可证明最优的小规模场景上给出的平均距离为:HEFT/Optimal=1.106807,Residual/Optimal=1.044188。原始数据见 evaluation/results/milp_optimal_comparison.json。
1.106807
1.044188
evaluation/results/milp_optimal_comparison.json
Word 报告包含原生数学公式、学术三线表、自动目录、页码和完整证据路径。报告审计工具会核对引用文件、实验数字、参考文献与隐私信息。
推荐 Python 3.12。首次使用时安装依赖:
python -m pip install -r requirements.txt
运行完整测试:
python -m pytest tests/ -v
仓库已包含最终模型 training/checkpoints/ppo_mlp_residual.zip,可直接评测,无需重新训练。
training/checkpoints/ppo_mlp_residual.zip
该脚本检查依赖和 checkpoint,必要时训练模型,生成固定验证场景,并使用报告中的 5 个规范种子依次运行 Residual Best-of-64 + 合法拓扑序重定位 + best-only LNS。最后自动执行配对统计,输出报告对应的 mean_ratio=0.920890 ± 0.001729。使用仓库内 checkpoint 时,完整评测通常需要约 4 至 6 分钟。
mean_ratio=0.920890 ± 0.001729
Windows PowerShell:
powershell -ExecutionPolicy Bypass -File scripts/run_final_pipeline.ps1
Linux/openEuler:
bash scripts/run_final_pipeline.sh
输出汇总保存在 evaluation/results/final_pipeline_lns_summary.json,五次逐轮结果保存在 evaluation/results/final_pipeline_lns_repeats/。
evaluation/results/final_pipeline_lns_summary.json
evaluation/results/final_pipeline_lns_repeats/
python evaluation/evaluate_residual_lns.py \ --config training/configs/ppo_mlp_residual.yaml \ --model-path training/checkpoints/ppo_mlp_residual \ --results-path evaluation/results/final_lns_run.json \ --num-samples 64 \ --local-max-passes 3 \ --lns-iterations 64
未指定 --sampling-seed 时使用系统熵种子,因此单次结果会在统计范围内波动。一键脚本固定使用报告中最初由系统熵产生的 5 个规范种子,使任何克隆环境都能复现正式统计,而不是挑选单次最好结果。
--sampling-seed
python training/train_ppo.py --config training/configs/ppo_mlp_residual.yaml
训练配置为 200000 timesteps,归一化观测、relative_heft 奖励和 residual 调度模式均由 YAML 显式控制。
relative_heft
baselines/ HEFT、MILP 精确解与 Hybrid 调度器 configs/ 异构资源配置 env/ DAG 环境、插入式调度、归一化与 ranked/residual 环境 policies/ RL 调度器、GAT 特征提取器、残差策略与 LNS 精修器 training/ 数据集生成、BC/PPO 训练、配置及最终 checkpoint evaluation/ 验证场景、评测脚本、统计检验和原始结果 diagnostics/ 数据集、动作分布、报告真实性与结构审计工具 tests/ 环境、调度一致性、MILP、Residual 和 LNS 回归测试 artifacts/ 经归类保留的诊断日志和中间实验依据 docs/ 技术报告、参考资料、截图及审计结果 scripts/ 一键复现、Word 报告生成和终端截图工具
find_earliest_slot
python diagnostics/technical_report_result_audit.py --report docs/技术报告.md python diagnostics/technical_report_structure_audit.py --report docs/技术报告.docx
当前审计结果:62 个报告引用路径全部存在,全部正式数字核对通过;Word 报告包含 6 个原生公式对象和 14 张合规三线数据表。
完整实验结果索引见 evaluation/results/README.md,过程性产物说明见 artifacts/README.md。
项目已在 Windows 和 openEuler 24.03 LTS-SP4 Docker 容器中验证。openEuler 环境信息、依赖快照、pytest 输出及推理日志保存在:
evaluation/results/openeuler_validation/
evaluation/results/openEuler_pytest_structural_final.log
evaluation/results/structural_generalization/
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
基于深度强化学习的云-边-端异构计算资源管理调度方法
评审快速入口
四项核心评审材料已经按顺序放在仓库根目录,无需进入任何子文件夹:
完整开发过程记录、历史实验数据、消融实验日志、参考文献核验记录和自主探索日志保留在
docs/及artifacts/中。项目源代码模块env/、baselines/、policies/、training/、evaluation/、tests/和scripts/均位于仓库根目录。本项目面向中国研究生操作系统开源创新大赛第 16 题,研究带依赖约束的任务 DAG 在云、边、端异构计算资源上的调度问题。目标是在满足任务前驱关系、通信时延和资源互斥约束的前提下,最小化整体完成时间(makespan)。
项目提供完整的环境建模、HEFT/MILP 基线、MaskablePPO 训练、残差式任务排序、Best-of-N 推理、局部搜索精修、统计检验及 openEuler 跨平台验证流程。
最终方案
最终提交方案由三个阶段组成:
flowchart LR A[任务 DAG 与异构资源] --> B[Residual Policy] B --> C[Best-of-64 候选初解] C --> D[合法拓扑序重定位] D --> E[best-only LNS] E --> F[最终调度方案]核心结果
指标定义为
mean_ratio = RL/LNS makespan ÷ HEFT makespan,小于 1 表示优于 HEFT。evaluation/results/autonomous_exploration/direction2_lns/direct_vs_residual_paired_summary.jsonevaluation/results/autonomous_exploration/compute_matched_sampling/paired_comparison_summary.jsonevaluation/results/autonomous_exploration/direction2_lns/direct_vs_residual_paired_summary.json最终方案相对配对的 Residual Best-of-64 平均降低
0.029925,双侧配对 t 检验p=2.656851×10^-5。与耗时相近的纯 Best-of-128 相比,最终方案平均降低0.021158,p=2.072081×10^-6,用于排除“效果仅来自增加采样次数”的混淆因素。MILP 精确求解在 7 个可证明最优的小规模场景上给出的平均距离为:HEFT/Optimal=
1.106807,Residual/Optimal=1.044188。原始数据见evaluation/results/milp_optimal_comparison.json。技术报告
Word 报告包含原生数学公式、学术三线表、自动目录、页码和完整证据路径。报告审计工具会核对引用文件、实验数字、参考文献与隐私信息。
快速开始
推荐 Python 3.12。首次使用时安装依赖:
运行完整测试:
仓库已包含最终模型
training/checkpoints/ppo_mlp_residual.zip,可直接评测,无需重新训练。一键最终流水线
该脚本检查依赖和 checkpoint,必要时训练模型,生成固定验证场景,并使用报告中的 5 个规范种子依次运行 Residual Best-of-64 + 合法拓扑序重定位 + best-only LNS。最后自动执行配对统计,输出报告对应的
mean_ratio=0.920890 ± 0.001729。使用仓库内 checkpoint 时,完整评测通常需要约 4 至 6 分钟。Windows PowerShell:
Linux/openEuler:
输出汇总保存在
evaluation/results/final_pipeline_lns_summary.json,五次逐轮结果保存在evaluation/results/final_pipeline_lns_repeats/。单次调试 LNS 精修方案
未指定
--sampling-seed时使用系统熵种子,因此单次结果会在统计范围内波动。一键脚本固定使用报告中最初由系统熵产生的 5 个规范种子,使任何克隆环境都能复现正式统计,而不是挑选单次最好结果。重新训练 Residual 模型
训练配置为 200000 timesteps,归一化观测、
relative_heft奖励和 residual 调度模式均由 YAML 显式控制。项目结构
关键设计
find_earliest_slot插入式资源时间线规则。证据与审计
当前审计结果:62 个报告引用路径全部存在,全部正式数字核对通过;Word 报告包含 6 个原生公式对象和 14 张合规三线数据表。
完整实验结果索引见 evaluation/results/README.md,过程性产物说明见 artifacts/README.md。
跨平台验证
项目已在 Windows 和 openEuler 24.03 LTS-SP4 Docker 容器中验证。openEuler 环境信息、依赖快照、pytest 输出及推理日志保存在:
evaluation/results/openeuler_validation/evaluation/results/openEuler_pytest_structural_final.log已知边界
evaluation/results/structural_generalization/。