【编者按】计算模型的创新带来的是技术的升级换代,而边缘计算的迅速发展也得益于技术的进步。本节总结了推动边缘计算发展的7项核心技术,它们包括网络、隔离技术、体系结构、边缘操作系统、算法执行框架、数据处理平台以及安全和隐私。
本文首发自《计算机研究与发展》庆刊,作者施巍松;由编辑,供行业人士参考。
边缘计算将计算推至靠近数据源的位置,甚至于将整个计算部署于从数据源到云计算中心的传输路径上的节点,这样的计算部署对现有的网络结构提出了 3个新的要求:
服务发现。在边缘计算中,由于计算服务请求者的动态性,计算服务请求者如何知道周边的服务,将是边缘计算在网络层面中的一个核心问题.传统的基于DNS的服务发现机制,主要应对服务静态或者服务地址变化较慢的场景下.当服务变化时,DNS的服务器通常需要一定的时间以完成域名服务的同步,在此期间会造成一定的网络抖动,因此并不适合大范围、动态性的边缘计算场景。
快速配置。在边缘计算中,由于用户和计算设备的动态性的增加,如智能网联车,以及计算设备由于用户开关造成的动态注册和撤销,服务通常也需要跟着进行迁移,而由此将会导致大量的突发网络流量。与云计算中心不同,广域网的网络情况更为复杂,带宽可能存在一定的限制.因此,如何从设备层支持服务的快速配置,是边缘计算中的一个核心问题。
负载均衡。边缘计算中,边缘设备产生大量的数据,同时边缘服务器提供了大量的服务.因此,根据边缘服务器以及网络状况,如何动态地对这些数据进行调度至合适的计算服务提供者,将是边缘计算中的核心问题。
针对以上3个问题,一种最简单的方法是,在所有的中间节点上均部署所有的计算服务,然而这将导致大量的冗余,同时也对边缘计算设备提出了较高的要求。因此,我们以“建立一条从边缘到云的计算路径”为例来说,首当其冲面对的就是如何寻找服务,以完成计算路径的建立。命名数据网络(named data networking,NDN)是一种将数据和服务进行命名和寻址,以P2P和中心化方式相结合进行自组织的一种数据网络。而计算链路的建立,在一定程度上也是数据的关联建立,即数据应该从源到云的传输关系.因此,将NDN引入边缘计算中,通过其建立计算服务的命名并关联数据的流动,从而可以很好地解决计算链路中服务发现的问题。
而随着边缘计算的兴起,尤其是用户移动的情况下,如车载网络,计算服务的迁移相较于基于云计算的模式更为频繁,与之同时也会引起大量的数据迁移,从而对网络层面提供了动态性的需求。软件定义网络(software definednetworking,SDN),于2006年诞生于美国GENI项目资助的斯坦福大学Clean Slate课题,是一种控制面和数据面分离的可编程网络,以及简单网络管理.由于控制面和数据面分离这一特性,网络管理者可以较为快速地进行路由器、交换器的配置,减少网络抖动性,以支持快速的流量迁移,因此可以很好地支持计算服务和数据的迁移。同时,结合NDN和SDN,可以较好地对网络及其上的服务进行组织,并进行管理,从而可以初步实现计算链路的建立和管理问题。
隔离技术是支撑边缘计算稳健发展的研究技术,边缘设备需要通过有效的隔离技术来保证服务的可靠性和服务质量.隔离技术需要考虑2方面:
计算资源的隔离,即应用程序间不能相互干扰;
数据的隔离,即不同应用程序应具有不同的访问权限。
在云计算场景下,由于某一应用程序的崩溃可能带来整个系统的不稳定,造成严重的后果,而在边缘计算下,这一情况变得更加复杂.例如在自动驾驶操作系统中,既需要支持车载娱乐满足用户需求,又需要同时运行自动驾驶任务满足汽车本身驾驶需求,此时,如果车载娱乐的任务干扰了自动驾驶任务,或者影响了整个操作系统的性能,将会引起严重后果,对生命财产安全造成直接损失.隔离技术同时需要考虑第三方程序对用户隐私数据的访问权限问题,例如,车载娱乐程序不应该被允许访问汽车控制总线数据等.目前在云计算场景下主要使用VM虚拟机和Docker容器技术等方式保证资源隔离。边缘计算可汲取云计算发展的经验,研究适合边缘计算场景下的隔离技术。
在云平台上普遍应用的Docker技术可以实现应用在基于0S级虚拟化的隔离环境中运行,Docker的存储驱动程序采用容器内分层镜像的结构,使得应用程序可以作为一个容器快速打包和发布,从而保证了应用程序间的隔离性.Li等人建立了一个基于Docker迁移的有效服务切换系统,利用Docker的分层文件系统支持,提出了一种适合边缘计算的高效容器迁移策略,以减少包括文件系统、二进制内存映象、检查点在内的数据传输的开销.Ha等人提出了一种VM切换技术,实现虚拟机VM的计算任务迁移,支持快速和透明的资源放置,保证将VM虚拟机封装在安全性和可管理行要求较高的应用中.这种多功能原语还提供了动态迁移的功能,对边缘端进行了优化.这种基于VM的隔离技术提高了应用程序的抗干扰性,增加了边缘计算系统的可用性。
无论是如高性能计算一类传统的计算场景,还是如边缘计算一类的新兴计算场景,未来的体系结构应该是通用处理器和异构计算硬件并存的模式。异构硬件牺牲了部分通用计算能力,使用专用加速单元减小了某一类或多类负载的执行时间,并且显著提高了性能功耗比。边缘计算平台通常针对某一类特定的计算场景设计,处理的负载类型较为固定,故目前有很多前沿工作针对特定的计算场景设计边缘计算平台的体系结构.
ShiDianNao首次提出了将人工智能处理器放置在靠近图像传感器的位置,处理器直接从传感器读取数据,避免图像数据在DRAM中的存取带来的能耗开销;同时通过共享卷积神经网络(convolutional neural networks, CNNs) 权值的方法 ,将模型完整放置在SRAM中,避免权值数据在DRAM 中的存取带来的能耗开销;由于计算能效地大幅度提升(60倍),使其可以被应用于移动端设备.EIE:是一个用于稀疏神经网络的高效推理引擎,其通过稀疏矩阵的并行化以及权值共享的方法加速稀疏神 经网络在移动设备的执行能效.Phi-Stack则提出了针对边缘计算的一整套技术桟,其中针对物联网设备设计的PhiPU,使用异构多核的结构并行处理 深度学习任务和普通的计算任务(实时操作系统). In-Situ AI是一个用于物联网场景中深度学习应用的自动增量计算框架和架构,其通过数据诊断,选择最小数据移动的计算模式,将深度学习任务部署 到物联网计算节点.除了专用计算硬件的设计,还有 一类工作探索FPGA在边缘计算场景中的应用. ESE[6]通过FPGA提高了稀疏长短时记忆网络 (long short term memory network,LSTM)在移动设备上的执行能效,用于加速语音识别应用.其通过负载平衡感知的方法对LSTM进行剪枝压缩,并保证硬件的高利用率,同时在多个硬件计算单元中调度 LSTM 数据流;其使用 Xilinx XCKU060 FPGA 进行硬件设计实现,与CPU和GPU相比,其分别实现了 40倍和11. 5倍的能效提升.Biookaghazadeh 等人通过对比FPGA和GPU在运行特定负载时吞 吐量敏感性、结构适应性和计算能效等指标,表明 FPGA更加适合边缘计算场景。
针对边缘计算的计算系统结构设计仍然是一个新兴的领域,仍然具有很多挑战亟待解决,例如如何高效地管理边缘计算异构硬件、如何对这类的系统结构进行公平及全面的评测等.在第三届边缘计算会议(S E C 2 018 )上首次设立了针对边缘计算体系结构的Workshop:ArchEdge,鼓励学术界和工业界对此领域进行探讨和交流。
边缘计算操作系统向下需要管理异构的计算资源,向上需要处理大量的异构数据以及多用的应用负载,其需要负责将复杂的计算任务在边缘计算节点上部署 、调度