# TaskOffloading **Repository Path**: he-guodong15923/task-offloading ## Basic Information - **Project Name**: TaskOffloading - **Description**: No description available - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-02-01 - **Last Updated**: 2024-02-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 计算卸载模块(*TaskOffloading*) ### 1 介绍 - 基于**边缘智能网关**的**计算卸载模块** - 模块**轻便灵活,耦合度低**,可看做**双路输入、单路输出的黑盒**,作为**微服务**部署于*docker*中,**随取随用** - **使用*redis*数据库**实现**任务特征数据存储(*TFDB*)**,**使用*MQTT*协议**从**算力网络图模块(*CNet*)读取网络性能数据**,**使用*gRPC*协议**向**任务缓存模块(*Client*)发送计算卸载决策** - 使用**图论算法**实现了**计算卸载的决策** ### 2 原理 - 输入网络数据 - 计算卸载模块需要读取网络性能数据与计算任务数据 - 网络性能数据:包括每个计算节点的性能数据(**计算资源、存储资源与网络资源余量等**),计算卸载模块**定时**从本地的*ComNet*模块**读取并覆盖**本地的监控信息 - 计算任务数据:包括计算任务的特征数据(**计算量、输入数据大小、截止期限等**),每当有**经过活动物体检测模块的计算任务**到达计算卸载模块时,计算卸载模块根据任务类型,从**计算任务特征数据库**读取计算任务的特征信息 - 执行计算卸载决策 - 使用计算卸载模块中的**时延矩阵函数**,计算每组计算任务与计算节点间的最低处理时延 - 使用计算卸载模块中的**卸载决策函数**,对计算任务与计算节点的匹配进行决策 - 计算卸载决策结果回传 - 将计算卸载决策**回传给缓存计算任务的客户端**,由**先前建立的连接**将计算卸载决策结果(**目标节点的IP地址**)发回任务缓存模块(*Client*),*Client*根据*IP*地址,将计算任务的输入数据发送至指定的计算节点 ### 3 算法 $$f(M[W,D,T],N[F,C,E])\rightarrow map(键值对集合)$$ - 时延矩阵函数 $$f_1(M[W,D,T],N[F,C,E])\rightarrow matrix(最优时延矩阵)$$ - 输入:计算任务数据($M$组)、网络性能数据($N$组) - 输出:最优时延矩阵($M\times N$阶) - 函数功能:以**时延最低**作为优化目标,求出每个计算任务分配给每个节点应分配的最佳资源量,并求出此时每个计算任务分配给每个节点的时延 - 卸载决策函数 $$f_2(matrix)\rightarrow map(键值对集合)$$ - 输入:网络性能数据($N$组)、最优时延矩阵($N\times N$阶) - 输出:计算卸载决策结果(键值对) - 函数功能:将最佳资源量矩阵看作一个**加权二部图的邻接矩阵**,使用**图论算法**求出最优的计算卸载决策 ### 4 贡献 - *Fork* 本仓库 - 新建 *to_xxx* 分支 - 提交代码 - 新建 *Pull Request*