20201119 
最近看了一篇survey，名字叫Mobile Edge Computing: A Survey on Architecture and Computation Offloading.
MEC将计算和存储资源带到移动网络边缘，使其能够在满足严格的延迟要求的同时在用户设备运行高要求的应用程序。survey的核心是研究MEC中面向用户的用途，如计算卸载。
首先文章通过比较MCC和边缘计算，来引入边缘计算这一概念。
MCC和边缘计算的概念比较
首先是服务器的部署，集中云计算的部署是集中式的，边缘计算分布于网络边缘。其次是到用户设备的距离，云计算距离用户远。边缘计算在延迟，稳定性方面的表现优于集中云计算。但是，云计算的计算能力和存储能力丰富，而边缘计算在这两方面受限。
在引入MEC的概念之后，文章把计算卸载的研究分为三个关键领域：
1）计算卸载的决策：根据用户设备的能耗和/或执行延迟，确定卸载是否对用户设备有利。
2) MEC内计算资源的分配：计算卸载需要最小化执行延迟和平衡通信资源和通信链路的负载。
3）移动管理
首先，一些通信上的缩略词：NB, eNB, SCeNB。Node B(NB)基站；看论文的过程中遇到很多eNB，为LTE网络中的基站eNode B(Evolved Node B)演进型的Node B；5G小基站的部署实现用户随时随地享受5G高速优质网络，SCeNB为小基站。
下面从计算卸载开始说起。
offloading decision
一共有三种卸载决策：本地执行，全卸载和部分卸载。
本地执行：计算任务在本地用户设备执行；全卸载：整个任务被卸载至边缘服务器执行；部分卸载：首先将计算任务分成若干个部分，一部分在本地执行，一部分卸载至边缘服务器执行。部分卸载时需要考虑任务的各个部分之间的依赖关系，应用程序的各个部分可以相互独立，也可以相互依赖。（总结之前看过的几篇文章，一般应用的输入和输出部分需要在本地执行）。为了表示任务部分之间之间的依赖关系，引入图论。（component dependency graph, CDG或call graph, CG）
然后是具体决策的选择，将任务卸载问题抽象为优化问题，通过确定优化目标来确定卸载决策。优化目标如下总结：
Offloading summary
明确一下参数：
执行时延
, 任务全部在本地执行的延迟
,任务卸载至边缘服务器的延迟
. 将卸载数据传输至边缘服务器的传输时间
, 任务在MEC的计算时间
, 计算结果的回传时间
. 执行能耗
, 任务在本地执行的能耗
,任务卸载至MEC执行的能耗
,任务上传至MEC执行的能耗
,计算结果回传的
各种优化目标的对比：
Full offloading
最小化执行延迟：
但是呢，有的UE很小，比如说一些传感器，有些还不能充电。电池的快速耗尽在现代网络中造成了巨大的障碍，所以得把能耗也考虑进去。但很多任务还是对时延有极高要求的，所以提出了一个满足时延限制的节能方案。
满足时延限制下最小化能耗：
首先必须明确，这个节能的对象是UE用户设备，节约的是UE的能耗，不是MEC的能耗。
首先引入一个参数
表示延迟的限制。
,
.
，说明优化目标主要是延迟。
Full Offloading Paperwork
Partial Offloading:
对于部分卸载，有两种优化目标方案:
满足时延限制下最小化能耗和能耗和延迟的折衷优化。这一部分没有研究过，看了一下好像涉及到了通信信道的一些问题，打算以后详细看一下paper.
Partial Offloading Paperwork
下面开始说计算资源的分配：
allocation summary
计算资源分配问题也就是，当任务需要卸载出去执行（MEC or CC）的时候，计算资源的分配。这个问题受任务是否能partial offloading的影响。
MEC计算资源分配问题
如上图，UE1是Full offloading，把任务卸载直接全部给eNB1这个计算节点执行；UE2采用partial offloading，任务分成了3块，这三块分别在三个计算节点上执行。
计算资源分配问题的研究可以分为两派：
A. Allocation of Computation Resources at a Single Node
在单个节点的计算资源分配。
Allocation of computation resources according to [98]
举个栗子，在上图的分配策略中：
Step1.UE中的app被卸载到边缘服务器的Scheduler堆栈中。
Step2.Scheduler 检查看一下有没有充足计算资源的计算节点。如果有，那应用就在该节点执行，然后把计算结果传回去。如果无，说明计算资源不足，然后就把这个应用传到云执行。
由于多个计算节点可以在一定程度上减小执行延迟，所以有了下面的研究。
B.Allocation of Computation Resources at Multiple Nodes (Federated Clouds)
和计算卸载的决策一样，有多个计算节点，肯定就要考虑优化目标问题，然后进行计算资源的一个分配决策。
1）最小化计算节点的执行延迟和/或电量消耗
这里是Power Consumption，优化的目标是计算节点，即省的是SCeNB的电；在前面Offloading中是Energy Consumption，优化的目标是UE，省的是用户设备的电。这里刚开始看的时候就混淆了，所以之前越看越懵。。。
An example of allocation of computation resources for individual UEs according to [101]
这里就引入了SCeNBs集群的概念，集群可以避免任务被传到CC(云)上。集群的形成是通过合作博弈的奖励机制。
首先SCeNB为自己周围的UE提供服务，因为这样的通信延迟最短。如果它不能处理任务了，如上图SCeNB1为UE1和UE2提供了计算资源，UE3没资源了。这时，UE3就被送到同一个集群的SCeNB2和SCeNB3执行。
Single node paperwork
2)平衡计算和通信的负载
因为追求最小化计算节点的执行延迟和/或电量消耗，会导致各个节点之间的负载不均匀以及回程超载。所以很多工作在满足时延要求的前提从之下平衡通信和计算的负载。
同理。。通信的问题看不懂，还要继续学习。。。
Mutil nodes paperwork