# QPLMTS_Vapour
基于QPLMTS算法的边缘计算场景下的任务调度器
## QPLMTS算法
一种融合 Q-Learning、优先级列表与线性加权法的调度长度、服务成本多目标协同优化任务调度算法。
面向静态DAG任务集,将边缘计算场景下的任务调度问题分为**任务排序、节点绑定**两阶段,具体步骤如下:
1. 以任务排序、节点绑定为两个阶段,基于 Upward Rank 评估任务的紧要程度
2. 引入时间差分的强化学习机制进行任务优先级排序
3. 采用 β 权重因子对各优化目标加权打分
## QPLMTS_Vapour调度器
### 运行环境
- 语言环境:Python3.6+
- 依赖环境:(Python)matplotlib、sympy、pymysql、numpy、tqdm;(Other)Daggen
### 运行方法
- 为QPL类生成对象
- 采用数据集发生器/边缘计算系统API初始化DAG任务数据、边缘节点数据
- 运行QPLMTS算法核心模块,产生调度结果
- 执行实验分析模块,分析调度结果
### 主要函数与功能
#### 数据预处理区
1. **数据集发生器:** ReadDataSet_Auto(Scale=任务集规模,EdgeNum=边缘节点数,fat=任务链宽度)
- 基于Daggen产生对应规模(Scale)、链宽度(fat)的静态DAG任务集
- 产生边缘节点集
#### QPLMTS算法核心区
2. **Upward Rank值计算模块:** CalUR()
- 基于任务计算量、任务间通信成本,计算所有任务的Upward Rank值
- 递归结构+LRU_Cache高效计算
3. **调度Q表产生模块:** Q_Process(IterCount=Q表迭代次数)
- 以任务Upward Rank为Q-Learning Reward,产生调度Q表
- 给出Reward变化过程记录表
4. **任务分发次序产生模块:** CalCTPS(CurrentTask=入口任务)
- 根据最大Q值原则,基于收敛的调度Q表,计算任务分发次序CTPS
5. **边缘节点绑定模块:** AllocateNode(CTPS=任务分发次序,a1=MakeSpan的β权重因子,a2=ServiceCost的β权重因子)
- 基于CTPS,针对每个任务进行节点打分,依次遍历所有任务,产生边缘节点-任务绑定表
- 边缘节点-任务绑定表数据上行MySQL
#### 一体化调度区
6. **QPLMTS算法一步调度模块:** QPLMTS(a1=MakeSpan的β权重因子,a2=ServiceCost的β权重因子,IterCount=Q表迭代次数)
- 直接产生一次QPLMTS调度结果
7. **HEFT算法一步调度模块:** HEFT()
- 直接产生一次HEFT(经典算法)调度结果
#### 实验分析区
8. **学习率实验模块:** ParaOpt_LearningRate(IterCount=Q表迭代次数)
- 执行学习率参数设计实验,产生学习率图表
9. **β权重因子实验模块:** ParaOpt_Weight(IterCount=Q表迭代次数,Accuracy=β权重因子变化步长)
- 执行β权重因子参数设计实验,产生β权重因子图表
10. **Q表迭代次数实验模块:** ParaOpt_Q(Scale=任务集规模列表,Curve=是否绘制稳定性曲线,IterCount=Q表迭代次数)
- 执行Q表迭代次数实验,产生Q表迭代次数图表
#### 功能模块
11. **MySQL操作模块:** __InputMysql(mode=数据模式,List=数据列表)
12. **更新结果模块:** UpdateResult(List=数据列表)
13. **最早完成时间计算模块:** __ETFT(Task=任务,Edge=边缘节点)、__ETIT(Task=任务,Edge=边缘节点)、__EEAT(Edge=边缘节点)
14. **服务成本计算模块:** __Cost(Task=任务,Edge=边缘节点)
## 特别鸣谢&引用
Daggen:一个静态DAG任务集产生器,引自https://github.com/frs69wq/daggen
没有合适的资源?快使用搜索试试~ 我知道了~
基于QPLMTS算法的边缘计算任务调度器源码+可执行程序.zip
共8个文件
c:2个
py:1个
md:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 148 浏览量
2024-04-10
00:22:34
上传
评论
收藏 34KB ZIP 举报
温馨提示
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于QPLMTS算法的边缘计算任务调度器源码+可执行程序.zip 基于QPLMTS算法的边缘计算任务调度器源码+可执行程序.zip 基于QPLMTS算法的边缘计算任务调度器源码+可执行程序.zip 基于QPLMTS算法的边缘计算任务调度器源码+可执行程序.zip 基于QPLMTS算法的边缘计算任务调度器源码+可执行程序.zip 基于QPLMTS算法的边缘计算任务调度器源码+可执行程序.zip 基于QPLMTS算法的边缘计算任务调度器源码+可执行程序.zip 基于QPLMTS算法的边缘计算任务调度器源码+可执行程序.zip 基于QPLMTS算法的边缘计算任务调度器源码+可执行程序.zip 基于QPLMTS算法的边缘计算任务调度器源码+可执行程序.zip 基于QPLMTS算法的边缘计算任务调度器源码+可执行程序.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于QPLMTS算法的边缘计算任务调度器源码+可执行程序.zip (8个子文件)
code_20105
daggen.exe 35KB
QPL.py 18KB
daggen_commons.c 13KB
daggen 31KB
.gitignore 2KB
daggen_commons.h 2KB
daggen.c 8KB
README.md 3KB
共 8 条
- 1
资源评论
土豆片片
- 粉丝: 1838
- 资源: 5654
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功