Delete best.pt
这是一个面向云-边-异构计算资源调度的项目,核心目标是把 STG 工作流数据转换成可用于调度实验的 JSON 任务图,再用统一接口评测 HEFT、CP-SAT 和基于深度强化学习的 MHG-PPO 调度器。
stg_to_json_dataset/
stg_to_json_benchmarks/
schedulers/
solve()
mgh_ppo/
evaluate_schedulers.py
data.py
env.py
model.py
ppo.py
teacher.py
rollout.py
train.py
evaluate.py
pipeline.py
stg_to_json_converter.py
schema(simplified).json
heterogeneous_nodes_scc_mb.json
heft_solver.py
cp_sat_solver.py
milp_solver.py
milp_solver_gurobi.py
base.py
heft_adapter.py
cpsat_adapter.py
drl_adapter.py
stg_to_json_dataset/stg_to_json_converter.py
stg_to_json_dataset/heterogeneous_nodes_scc_mb.json
mgh_ppo
dataset_root
nodes
python -m mgh_ppo.pipeline --config mgh_ppo/smoke.yaml --mode all python -m mgh_ppo.pipeline --config mgh_ppo/bc_ppo_10h.yaml --mode all
常用模式:
prepare
train
evaluate
all
python evaluate_schedulers.py --dataset dataset --nodes stg_to_json_dataset/heterogeneous_nodes_scc_mb.json --output-root results/scheduler_evaluation
支持输入:
dataset/
mgh_ppo/outputs/<run_id>/
best.pt
results.xlsx
summary.json
training_log.csv
artifacts/
_work/
results/scheduler_evaluation/
all_results.json
details/
scheduler_makespan_results.xlsx
项目常用依赖包括:
torch
numpy
PyYAML
pandas
openpyxl
pytest
pulp
gurobipy
ortools
mgh_ppo/requirements.txt 里列的是核心运行依赖,调度基线和导出报表还需要额外的包。
mgh_ppo/requirements.txt
makespan
runtime_sec
status
README.md
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
MHG-PPO Workflow Scheduling Project
这是一个面向云-边-异构计算资源调度的项目,核心目标是把 STG 工作流数据转换成可用于调度实验的 JSON 任务图,再用统一接口评测 HEFT、CP-SAT 和基于深度强化学习的 MHG-PPO 调度器。
演示视频
项目主线
stg_to_json_dataset/:把 STG 基准转换成结构化 JSON 工作流数据,并提供节点配置。stg_to_json_benchmarks/:传统调度基线实现,包括 HEFT、CP-SAT、MILP 等。schedulers/:统一调度器适配层,把不同方法包装成同一solve()接口。mgh_ppo/:MHG-PPO 训练、评估、环境、模型、教师策略和数据划分。evaluate_schedulers.py:批量评测脚本,统一跑多个调度器并导出结果。目录说明
mgh_ppo/data.py:场景加载、数据划分、哈希与样本管理。env.py:调度环境、合法动作、奖励和结果验证。model.py:GNN Actor-Critic 模型。ppo.py:PPO 训练与 checkpoint 管理。teacher.py:HEFT 教师、行为克隆数据与专家轨迹。rollout.py:并行环境交互与采样。train.py:训练循环。evaluate.py:评估、质量门槛与 Excel 报表。pipeline.py:准备、训练、评估的一体化入口。stg_to_json_dataset/stg_to_json_converter.py:STG 到 JSON 的转换器。schema(simplified).json:工作流 JSON 结构示意。heterogeneous_nodes_scc_mb.json:节点配置样例。stg_to_json_benchmarks/heft_solver.py:HEFT 基线。cp_sat_solver.py:CP-SAT 基线。milp_solver.py/milp_solver_gurobi.py:MILP 基线。schedulers/base.py:统一调度器抽象接口。heft_adapter.py:HEFT 适配器。cpsat_adapter.py:CP-SAT 适配器。drl_adapter.py:加载训练好的 MHG-PPO 模型做推理。数据流
stg_to_json_dataset/stg_to_json_converter.py把 STG 数据集转换成 JSON 工作流。stg_to_json_dataset/heterogeneous_nodes_scc_mb.json这类节点配置定义异构资源。mgh_ppo根据dataset_root和nodes划分训练、验证、测试、OOD 集合。主要入口
1. 训练与评估 MHG-PPO
常用模式:
prepare:只生成教师轨迹。train:只训练。evaluate:只评估已有 checkpoint。all:准备 + 训练 + 评估。2. 统一评测多个调度器
支持输入:
dataset/根目录典型输出
MHG-PPO 输出
mgh_ppo/outputs/<run_id>/best.ptresults.xlsxsummary.jsontraining_log.csvartifacts/或_work/统一调度评测输出
results/scheduler_evaluation/all_results.jsondetails/scheduler_makespan_results.xlsx依赖
项目常用依赖包括:
torchnumpyPyYAMLpandasopenpyxlpytestpulp或gurobipy(仅 MILP 相关)ortools(仅 CP-SAT 相关)mgh_ppo/requirements.txt里列的是核心运行依赖,调度基线和导出报表还需要额外的包。运行前提
dataset/。stg_to_json_dataset/heterogeneous_nodes_scc_mb.json。evaluate_schedulers.py中的 DRL 评测默认会加载一个已训练好的best.pt,路径需要和实际输出对齐。结果解释
makespan越小越好。runtime_sec是调度器求解或推理耗时。status用来区分成功、无解、超时和异常。备注
README.md只覆盖各自模块,这个文件是整个项目的总说明。