# TODecider **Repository Path**: cpn-platform/todecider ## Basic Information - **Project Name**: TODecider - **Description**: 计算卸载(业务调度+广义算力建模)模块 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-26 - **Last Updated**: 2024-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 计算卸载决策模块(*TODecider*) ### 1 概述 - 基于*go*的计算卸载决策模块 - 基于算力网络图完成**广义算力建模**,得到**时延预测模型**,实现**多类别任务**的时延智能预测 - 基于**图论**的**集中式**计算卸载算法,实现**多任务对多容器的任务卸载** ### 2 原理 #### 2.1 时延预测模型 $$\tau_{proc}^{n}=G\left(\textbf{P},\textbf{S},K\right)\ \left(0\le U_{[\cdot]}\le1,K\ge1,K\in\mathbb{Z}\right)$$ #### 2.2 计算卸载算法 $$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$阶) - 输出:计算卸载决策结果(键值对) ### 3 使用 #### 3.1 语言与依赖 - 编程语言及版本 - `go 1.17`及以上 - 通用依赖下载 ```shell go env -w GOPROXY=https://goproxy.io,direct go env -w GO111MODULE=on go mod tidy ``` #### 3.2 命令行参数 - 找到主程序并运行(`main.go`) ```shell cd src/main go run main.go [-cna] [-ts] [-mc] [-algo] ``` - 命令行参数说明 - `-cna`**默认为`5555`**,是`CNA`模块的`Publisher`的端口 - `-ts`**默认为`6580`**,是面向`TOS`模块的`Server`的端口 - `-mc`**默认为`abc`,可设置为`IP`(`IP`为管控平台的`ip`地址)**,用于解析宿主机真实`ip`地址(**如果值为非`ip`参数,则不执行解析`ip`操作**) - `-algo`**默认为`KM`**,是执行的卸载算法名称 #### 3.3 *.proto*文件编译 ```c // 基本 protoc --proto_path=./protos --go_out=./pb 文件名.proto // grpc protoc --proto_path=./protos --go_out=plugins=grpc:./pb 文件名.proto ```