静园5号院科研讲座: SUNY杨元元教授谈体系结构在云计算中的应用
2019年8月19日,纽约州立大学石溪分校杨元元教授受邀访问北京大学前沿计算研究中心,并在静园五院做了题为“The Role of Computer Architecture in Emerging Cloud Computing and Edge Computing Paradigms”的主题报告。报告由中心执行主任陈宝权教授主持,听众包括北京大学信息科学技术学院的师生,以及清华大学、中国科学院计算所等单位的科研人员及学生。
杨元元教授报告现场
本次报告中,杨教授分别结合其在云计算、边缘计算两个方面的研究成果,讲述了计算机系统结构在云计算、边缘计算等新兴的计算方式中所起到的作用,简明扼要地解释了在软件算法日益发展的今天,如何从系统结构角度切入解决硬件条件上的瓶颈,以更好地支持软件的发展,提高计算性能。
当今系统结构研究面临的挑战与机遇
近年来,随着人工智能与大数据技术的发展,大量计算密集型的应用涌现,对硬件算力不断提出更高的要求。然而,从硬件方面来看,CMOS 技术发展迟缓,摩尔定律(Moore's Law)以及登纳德缩放定律(Dennard Scaling)已经逐渐失去作用,我们已经不能再单纯依靠电子技术的改进来获得足够的算力提升。因此,为了使硬件算力能够满足软件层面的需求,人们不断寻求新的加速方法。
专用机,如 GPU 等,是其中一条发展方向。虽然高度的专有化使得其针对特定工作的效率大大提高,但较高的操作门槛、工作的专有性以及过高的制造成本使其不能很好地胜任许多通用的工作。在集成电路方面,人们也在探索三维电路等新技术,进一步提高硬件的条件。此外,人们还尝试摆脱现有的数字电路技术,采用量子计算等更加贴近物理学的方法来提高运算能力。
系统结构现状
近年来,计算机体系结构也取得了一些突破,创造了许多新的机会,由最开始的单机单核,逐步转变为云端、边缘计算,所注重的也不再仅仅是性能表现,还兼顾安全性、隐私性以及耗能。人们也在探索有别于冯诺依曼架构的,数据驱动的新型系统结构来适应计算需求,对传统计算技术栈进行重新构思和革新。存储技术、大型模拟和建模技术也有长足的发展。在这种背景下,云计算、边缘计算等新兴的并行计算方式被认为拥有广阔的发展空间和应用前景。因此,我们需要优化的系统结构来适应发展需求以充分发挥软件的潜能。
系统结构在云计算中的作用——以数据中心为例
数据中心(Data Center)是指一种对网络服务器进行集中管理的专业设施,可以被视作互联网的引擎,是云服务的重要基础。数据中心中存在着成千上万的服务器,他们由交换网络连接在一起,以多播(Multicast)作为主要传输方式。相较于单播的一致性(Uniform),多播是不一致的,这就会导致传统的多级交换网络传输代价呈指数增长。此外,数据中心中普遍采用服务器冗余技术(Server Redundancy)来保证其正常运转,其原理可以概括为为每一个工作服务器(Active Server)配备一个甚至多个备用服务器(Backup Server),在故障的时候及时切换,以此实现对外服务的不中断。备用服务器保证了服务的鲁棒性,但增大了网络的规模和开销。基于上述背景,为了保证鲁棒的通信质量和足够的安全性,同时拥有合理的消耗,我们就需要对数据中心网络的互连结构(Interconnection)进行合理的规划设计,增加其专用性,使其兼具鲁棒性和性能,而上述服务器冗余便是一个很好的切入点。下面我们以2-redundant(每个主机配备一个备用机)来举例说明。
网络拓扑与一条欧拉回路
在正常工作状态下,我们希望各边缘交换机的负载尽量均衡,以此保证网络的性能。我们可以借助寻找欧拉回路来解决这个问题。我们对网络拓扑以服务器分布图(Server Distribution Graph)的方式建模,将边缘交换机当作结点。每两台交换机之间若存在一对主备服务器,那么就添加一条有向边。需要注意的是,我们要保证所得到的图是 n-regular 的,也就是每个结点的度都是 n,若出现了奇数度的节点,我们便手动添加一条虚拟边来补齐。之后,我们便可以在所得到的分布图上使用欧拉遍历(Euler Traversal)的方式寻找到一条欧拉回路。对回路上的每条边,我们把边的起始点对应的服务器置为工作状态,结束点对应的服务器置为备用状态。这样,当结束遍历时,我们就得到了一个均匀分布的拓扑结构,每个交换机下的输入端(也就是工作服务器数量)都是相等的。以此类推,对于 n-redundant 的状态(n为2的整数次幂),我们只需要两两划分成组,调用一次欧拉遍历即可减小一次规模。通过递归调用的方式不断缩小组的大小,直到与2-redundant 相同。
N-redundant的递归分组
在某台服务器出现故障时,又会出现不均衡状态。在不好的情况下,备用机都位于同一边缘交换机下,就会造成严重的拥塞。这时候,一个简单的办法是将剩余的服务器对全部主从互换,但这种方法成本过高。此时,我们依旧可以借助寻找到了欧拉回路来进行主从互换,但仅仅需要找到最小子环,将沿途的服务器对主从互换即可。互换后,系统达到均衡,且成本相比全部互换也小了很多。
系统结构在边缘计算中的作用
边缘计算把数据的存储、处理、决策等过程全部放在边缘进行,充分利用边缘设备的计算能力。不需要对云端复杂的维护以及相关设施的搭建,边缘设备之间可以直接通信,大大降低了通信延迟。去中心化的分布模式也促生了多样的应用场景,如体育赛事中多视角实时回放,车流中前方车辆可以分享路况信息等。此外,在没有网络覆盖的情况下,设备之间也可以正常通信。所有这些特点使得边缘计算相较于云计算有着更大的灵活性。
边缘计算存在着许多挑战。边缘设备常常是异态的,拥有不同的数量、计算能力等。由于缺乏统一的中央管理,大多数设备的参与是用户自愿的,且移动性、连接性、资源可用性无法预测,边缘计算充满着不确定性。但从另一个角度来讲,我们身边存在着大量的边缘设备,如笔记本电脑,智能手机,智能手表等,这些设备提供了丰富的计算资源。其中有一些如智能汽车、电脑等天生就有着更强的算力,使得它更适合成为管理者,来协调其他设备的工作,这也使得边缘计算充满了发展潜力。
系统组成
我们注意到,许多边缘应用需要专有化的软硬件,这对常见的通用商用设备来说并不适合,且不统一的软硬件接口极大的增加了应用门槛。因此,我们提出一种利用定制设备的模块化、可拼装的软硬件系统结构。它针对不同的边缘设备,配备一个相应大小的 FPGA 伴板(Companion Board)。FPGA 可以根据需要裁剪不必要的冗余功能,也可根据需求为设备增加必要的功能,像乐高积木一样即插即用,自由拼装。从外部来看,设备仍然是一个统一的整体。在这样的硬件基础上,我们相应的开发适配的的软件协议栈。这样,我们就有了统一的软硬件平台,使得边缘计算的应用开发和管理统一起来,应用部署也被大大的简化。
总结
计算机系统结构在计算机发展过程中举足轻重。如今受制于电子技术发展速度的限制,人们寻求云计算、边缘计算等新型计算方式提升算力。在这些新领域中许多研究问题都围绕系统结构,如耗能、专有化、可扩展性、安全性、可编程性等,从系统结构上的优化可以起到根本性的提升。因此,计算机系统结构在将来仍然是需要关注和研究的根本性角色,对社会发展尤其是计算机科学发展起到重要的推动作用。
陈宝权教授与杨元元教授合影