本赛题聚焦云-边-端异构计算环境中的资源管理与调度问题。给定任务 DAG 及多类型计算资源(云/边/端),任务之间存在依赖约束;在资源速度与跨节点通信带宽不一致的情况下,调度器需要在每一步选择一个就绪任务并将其分配到合适的计算节点,从而尽量降低整体完成时间(makespan)。赛题强调的不仅是“训练一个DRL模型”,更要求参赛者提供一个可复用的训练与评测框架:参赛方法应当能够抽象并封装环境状态、动作空间与合法性约束,支持场景(任务图与资源参数)的生成/加载,提供统一的策略接口以便评测脚本批量调用,并能与外部调度方法(如启发式基线、行为克隆等)进行公平对比。参赛者需要设计清晰的模块边界,使得环境与资源配置可替换、算法可插拔、实验流程可复现。最终,参赛者应输出在验证集上的标准化指标与模型/配置说明,展示其框架的可训练性、可扩展性与工程可用性。
赛题题目:基于深度强化学习的云-边-端异构计算资源管理调度方法(高校赛题)
赛题说明:
本赛题聚焦云-边-端异构计算环境中的资源管理与调度问题。给定任务 DAG 及多类型计算资源(云/边/端),任务之间存在依赖约束;在资源速度与跨节点通信带宽不一致的情况下,调度器需要在每一步选择一个就绪任务并将其分配到合适的计算节点,从而尽量降低整体完成时间(makespan)。赛题强调的不仅是“训练一个DRL模型”,更要求参赛者提供一个可复用的训练与评测框架:参赛方法应当能够抽象并封装环境状态、动作空间与合法性约束,支持场景(任务图与资源参数)的生成/加载,提供统一的策略接口以便评测脚本批量调用,并能与外部调度方法(如启发式基线、行为克隆等)进行公平对比。参赛者需要设计清晰的模块边界,使得环境与资源配置可替换、算法可插拔、实验流程可复现。最终,参赛者应输出在验证集上的标准化指标与模型/配置说明,展示其框架的可训练性、可扩展性与工程可用性。
赛题要求:
基于 openEuler、openKylin、OpenHarmony 等至少一个国内主流开源操作系统开发,鼓励在更多Linux发行版上编译、运行和测试。
参赛者需提交一个可训练的 DRL 调度框架,用于云-边-端异构计算资源管理调度。
框架必须支持将环境与资源参数抽象为可配置组件,便于更换任务规模、资源类型与异构参数。
框架必须提供统一的调度策略接口,使评测脚本能够在同一组验证场景上对不同策略进行公平比较。
评分细则(明确评审角度、标准和分值范围):
功能完整性(40 分) (1)代码可运行:一键完成“训练 + 验证评测 + 产出结果文件”(如 summary.json/表格),且不依赖手工修改关键代码(10 分) (2)模块化/抽象能力:环境、资源配置、场景来源、策略接口(Policy/Scheduler)解耦清晰,能通过配置替换资源规模/异构参数(10 分) (3)插拔接口:参赛者框架支持接入至少一种外部调度方法(如 HEFT、BC 或用户自定义策略),评测脚本可统一调用并输出同一指标(10 分) (4)合法动作处理:对 ready/task mask 等约束有明确实现(如 action masking、非法动作惩罚/过滤),训练与推理阶段行为一致(10 分)
性能优化(35 分) (1)指标表现:在给定验证集上达到更优 mean_ratio = mean(RL_makespan / HEFT_makespan),并给出均值与方差或样本规模说明(15 分) (2)泛化能力:在未参与训练的场景(或不同划分)上性能保持稳定,避免仅对少量场景过拟合(10 分) (3)训练策略有效性:合理设计采样/更新/早停/超参,并能解释选择原因(5 分) (4)工程效率:在合理时间/算力预算下达到性能(5 分)
文档质量(25 分) (1)赛题对齐说明:文档清楚描述“问题建模—环境—动作定义—奖励设计—训练流程—评估指标”的对应关系,且与代码一致(10 分) (2)复现实验说明:给出运行命令/配置文件示例、关键超参、数据划分方式、输出路径、依赖版本(如 PyTorch 版本)(10 分) (3)可读性与结构:目录组织合理、接口原型/类职责明确、图示或伪代码帮助理解框架(5 分)
赛题联系人:
汪老师 wlp@nwpu.edu.cn
参考资料:
Grapheonrl,AasishKumarSharma/grapheonrl-benchmark
DRL-DAG
作品目录结构
技术报告、演示 PPT、演示视频和参赛承诺书将在最终提交前补充至仓库根目录,并与
code/目录并列。进入代码目录
除非特别说明,本文后续所有安装、训练、评测和绘图命令均应在
code/目录中执行:面向云—边—端环境的 DAG 任务调度项目,以最小化 Makespan 为主要优化目标。
支持 HEFT、CPOP、PEFT、GA、MILP 和基于 PPO 的 DRL 调度算法。
环境安装
推荐使用 Python 3.11 和 Conda:
安装基础依赖:
安装 CPU 版本 PyTorch:
使用 NVIDIA GPU 时,请根据本机 CUDA 版本安装对应的 PyTorch。
MILP 需要额外安装 Gurobi,并配置有效许可证:
快速开始
运行 HEFT:
绘制调度甘特图:
结果保存在
results/HEFT/。常用命令
查看帮助
求解单个数据集
可选算法:
其他算法示例:
批量求解
HEFT:
DRL Greedy:
DRL Sampling:
批量结果保存为:
生成数据集
默认生成
EXP01.json至EXP30.json。训练 DRL
使用在线生成的数据训练:
没有可用 GPU 时,将
--device cuda改为--device cpu。分析批量结果
先运行各算法的批量实验,再执行:
绘制训练曲线
绘制调度甘特图
输出目录
单数据集求解通常生成:
算法
数据集字段
tasksresourcesedgesworkloadspeeddata_sizebandwidth更多参数请使用: