基于多核处理器的面向时延敏感服务的云基础架构
2011-06-27万志涛
万志涛
(诺基亚西门子中国研究院 北京100015)
在移动网络用户数量不断增加的同时,应用数量也在迅速增长,加之用户对使用体验和网络质量的要求越来越高。从模拟网到数字网,从2G到3G再向LTE的演进过程也顺应这种需求增长的趋势。归根结底,计算能力的相应提升是基础性的。在现有的移动通信网络中,从无线接入网的设备到IP核心网大都采用相对比较封闭的硬件架构,采购成本和维护成本都比较高。更高的运算能力需求如果能够通过相对比较廉价的硬件设备来提供,对于运营商降低成本是非常有帮助的。
随着微电子技术的发展,通用处理器的功耗逐渐降低,能效比上更接近专用硬件,而开发成本则大大降低。云计算技术的应用使得计算能力的提供和使用不再受地理位置的限制,又进一步促进了价廉通用的硬件平台取代价格较昂贵的专用硬件平台。同时也可能解决基站机房空间受限导致的供电、散热等问题。在这样的背景下,本文给出了通过结合多核处理器和云计算技术,通过架构规划,对代码进行平行优化,设计了时延检测的支撑协议和错误恢复等机制,实现了高性能、低时延的面向时延敏感服务的云计算平台。
1 应用背景和技术现状
1.1 目标应用领域现状
对移动通信网来说,现有硬件设备的升级和性能提升,成本和工作量最大的在无线接入设备,其主体即现有移动通信网中的基站。从升级现有设备的场地问题考虑:首先是站址比较复杂,独立的铁塔,运营商自有建筑物和租用第三方建筑物顶部等;其次是空间受限但基于可靠性的要求,空调设备和备用电源等辅助设备必不可少。随着更高的应用需求的出现,升级这些设备空间、散热、电源都面临挑战,比如在大型的场馆中。从硬件成本的角度考虑,移动通信网络中现有很多设备都是封闭架构,硬件的升级涉及芯片重新选型、硬件重新设计、软件的移植和重新设计等多个方面。现阶段很多这样的设备正在逐渐向基于ATCA和microTCA[1]等开放架构发展,以降低硬件的采购升级、升级成本。但仍然沿用专用处理器的解决方案,相对于新出现的通用多核处理器硬件平台,综合成本仍然有压缩的空间。
1.2 云计算的发展现状
云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给其他设备。云运算概念的基本思想可以追溯到1961年约翰·麦卡锡(John McCarthy)提出的计算机分时共享技术。限于当时条件,这个设想缺乏必要的技术支撑。作为继19世纪80年代大型计算机到客户端-服务器的大转变之后的又一种巨变,云计算增加了新的内涵。用户不再需要了解“云”中基础设施的细节,不必具有相应的专业知识,也无需直接进行控制。云计算描述了一种基于互联网新IT服务增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展而且经常是虚拟化的资源[2]。目前,大部分的云计算基础构架是由通过数据中心传送的可信赖的服务和建立在服务器上的不同层次的虚拟化技术组成的。人们可以在任何提供网络基础设施的地方使用这些服务。“云”通常表现为对所有用户的计算需求的单一访问点[3]。
现有商业化的云计算平台一般都具有面向较为复杂事务性应用的特点。比如Amazon的EC2、Google的App Engine、IBM的Blue Cloud、微软的Azure等。举例来说,一个用户的一次网上缴费可能包括设计用户鉴权认证、查询消费列出清单、电子支付等多个步骤。每个步骤都需要多个数据库查询、修改或更新操作。因为大都涉及同最终用户的交互,对时延不太敏感,秒级或10 s级都可以容忍。
1.3 多核处理器及其发展现状
一般来说,一个芯片上集成2个以上“核”(处理单元)的处理器被称为“多核”(multi-core)处理器,也有将一个芯片上集成2个以上、8个以下同构核的处理器称为“多核”处理器,而将多于8个核(可能异构)的处理器称为“众核”(many-core)处理器[4],本文采用前一种说法。依据核的类型可以将多核处理器划分为同构和异构两种形态。同构多核处理器是指处理器芯片上集成的所有核的结构是完全相同的,各个核心的地位也是等同的。异构多核处理器在一个芯片上集成了多种功能不同的核。如从控制结构角度将核划分为负责管理调度的主核和负责计算的从核。从计算能力的侧重角度将核划分为通用核、DSP核等。另外,也可以根据指令集类型、核间互联方式、高速缓存的共享方式等进行分类。目前,主流的多核处理器大都是将内存控制器、总线控制器、网络接口等集成到一个SoC(system on chip)上。SoC能降低成本、减少功耗并简化硬件设计。尤其是通用指令集多核处理器可以更好地提供COTS(commercial off-the-shelf)的板卡,在硬件成本、开发成本、产品供应保障、代码可移植性和平滑升级能力等方面优势明显。本文所涉及的多核处理器是同构通用指令集多核处理器,这种处理器结构一致,代码实现和移植便利,扩展性好。现在的主流处理器生产商大都已转向多核处理器的生产和研发。其中涵盖了 Power、SPRARC、x86、MIPS、ARM 等架构。MIPS指令集的Tilera、Cavium、Netlogic等生产商已经推出商业应用的多核处理器。其中Tilera已经推出同构64核的Tile64和Tilepro64处理器[5],并针对浮点运算进行了优化设计,适合作为密集运算平台。另外,片上集成了XAUI、XGMII、PCIE 等接口,简化了硬件设计,并有助于减少输入/输出的时延和抖动。相对于Power、SPARC、x86架构的处理器,MIPS架构处理器主频低、功耗低,但计算密度高。
1.4 小结
综上所述,本文所要解决的问题是通过综合成本较低的通用多核处理器取代现有移动网络中的成本较高的专用硬件。通过云计算技术实现移动无线网络中的接入网计算能力的重新分布,以解决基站空间受限的问题,并同时提供能满足高速增长的计算需求扩展能力。
2 整体方案
2.1 硬件平台架构
在目前众多的MIPS指令集同构多核处理器中,浮点和定点运算能力比较平衡的一个多核处理器就是Tilera的Tilepro 64多核处理器。Cavium[6]和Netlogic[7]现有的处理器中浮点运算的能力都比较低。Tilera在MIPS架构内增强了对浮点运算的支持。图1显示了该多核处理器的结构,每个核都具备相同的结构并通过网状的5路高速总线联接起来[5];片上集成了包括 GMII、XGMII、XAUI等在内的MAC和PHY;同时核内还提供了对包头进行预处理的辅助硬件以及内存控制器和PCI-e总线控制器[5],是一个接口比较完善的SoC,外围电路设计相对简单、外围器件较少。
Tilera多核处理器的主频同其他大部分MIPS指令集的处理器类似都比较低,目前Tilepro64的最高主频为866 MHz[5]。相对于x86等指令集的通用处理器来说,除了主频低,限于芯片尺寸、晶体管数、功耗等因素(也是市场定位问题)片内高速缓存也相对小很多。实验数据显示对状态复杂的事务性任务的处理表现不理想,但对于高速网络数据处理能效比和空间占用都比较理想。
2.2 软件架构
软件架构中最关键的部分包括数据的高效快速接收、处理和发送。系统的可用性、可靠性还需要包括时延敏感节点的发现、任务指派、负载平衡、错误恢复等机制共同保证。
操作系统选用经过优化的ZOL(zero overhead linux)[5]。系统进程调度和用户、核心两态转换的开销较少,系统调度性能得到了提升,有利于时延的保证。
考虑到主频低对处理速度的影响,将处理并行化可以减小系统时延。对于复杂但是相对局部的计算来说,比如说矩阵的运算,可以从高度并行化并减少重复计算入手。
其他关键的问题还包括“云”中时延敏感节点的发现,分布式的注册服务和任务指派、负载平衡以及比较关键的时延保证机制。在保证系统时延的基础上,对于因网络异常导致的偶发丢包、错包,可靠性约束要求应有高速的恢复机制。运算节点的故障应尽快发现和隔离。
2.3 数据的封装和传递
相对于现有商业化的云计算应用事务性特点来说,移动网络中的一些关键处理对时延更为敏感,比如说对于无线接入网,数据平面的处理时延要小于5 ms[8],而空中接口的帧处理时延要小于1 ms[9]。同时,数据处理的局部性特征更为明显,对大量的数据处理都是对数据直接进行运算并得出计算结果而不是通过查询其他记录数量很大的数据库完成的,比如快速傅立叶变换(FFT)。如果可以将要处理的数据放在一个或数个数据分组内,由某个特定的计算单元完成计算并返回结果,则对于使用运算能力的设备来说,处理时延则可以缩减至运算加网络往返时延。为减少时延的抖动,最好能将一次需要处理的数据放在一个分组内传送。在分组内还应该指出需要进行的处理类型并提供必要的同被处理数据结构相关的信息。
3 一种基于无线接入网的云计算平台实现
在无线接入网的演化过程中,如图2所示,3G网络的基站部分的硬件可以分为射频拉远模块 (remote radio unit,RRU)和基带处理模块(base band unit,BBU)在一定程度上缓解了布网时设备可用空间的问题,但基带处理模块依旧是由专用硬件完成。只是基带信号的传输通过光纤得到了延伸。本文针对的应用场景就是将基带信号处理交给由多核处理器构成的可以保证时延的分布式、网络化的计算平台实现,也就是时延敏感的云计算平台。新的应用框架如图3所示,BBU只是逻辑上的计算节点,物理实体则由云计算平台构成。
3.2 功能实现
(1)作为服务的计算
计算是最基本的功能需求。因为针对具体的应用,在本文所述的实现当中,直接对基带处理进行优化作为最根本的运算能力,具体的优化方法在§3.3中给出。对于其他类型的运算,可以通过类似的方法进行优化并作为服务提供。服务请求则通过数据包来完成,为减少时延采用UDP的分组进行发送。为了未来注册新的服务方便起见,增加了一个16位的类型字段。
(2)计算节点的发现
对于云计算来说,提供服务的计算机的位置对用户来说是透明的,任务也是透明分配的。现有的云计算结构中一般是通过虚拟机提供可以动态调整但又在某较长时间内由相对稳定节点提供的服务[10]。在本时延敏感的云计算系统中,因为作为统一的计算服务,系统的负载可以同时分布在任何一个节点。可以采用分布式散列表(DHT)等发现机制。在网络规模不太大的情况下,比如一个运营商在一个城市范围内的基带信号处理的私有,可以通过多个注册服务器以动态表更新的方式发布给每一个服务需求者,并动态调整优先级以平衡负载。
(3)负载平衡
负载均衡主要通过任务的散列(Hash)比较均衡地分布负载,将提供服务主机的索引分级管理。按照发送请求的序列号作散列可以保证比较均匀地向不同服务主机发送负载,必要时还可以根据索引值加权来调整服务主机的优先权。
(4)错误恢复
数据在规定的时延未获得返回处理结果时即需要错误恢复,需要重新发起请求。每一个发起的请求由序列号和时间戳(由硬件生成,自硬件启动后的tick数)标识。链接在一个100个队列构成的环上,相邻两个队列表示的时间间隔是10 μs。正常结束的标识将从队列中移除。超过时间阈值仍未返回的将被重新发送到其他服务主机。主机的可用性可以通过周期性的信息往返(keep alive)由注册服务器监控并动态更新。
3.3 针对多核处理器架构的优化
(1)并行化
在多核处理器平台上提高代码的并行性,对于发挥多核处理器的性能至关重要。阿姆达尔定律(Amdahl’s Law)[11]给出了并行系统性能的提升的计算公式:
其中S表示系统性能的提升倍数。Fp表示可以并行化的工作所占比例,Sp表示并行性能提高的倍数。在多核处理器核数确定的情况下,Sp相应也是确定的。对于程序的并行化,应提高Fp使S能得到最大程度的提升。
对于数据块的密集运算,比如矩阵运算的并行化中采用的主要方法是将循环运算压缩到较小的范围并分配到不同的核上。如图4所示将大矩阵的乘法按照目标矩阵值进行并行化。如 Pd0,0、Pd1,0、Pd0,1、Pd1,1的计算可以分到 4 个不同的核上并行完成,同时还进行了相应的优化,可以利用中间结果减少重复计算。根据矩阵规模在实际当中可以取得数十倍的加速比。
(2)处理器架构相关的Cache优化
对于局部性有所扩张的运算,由于多核处理器每个核的高速缓存比较小,故采用了一种动态核分组的方法提高高速缓存的命中率,以提高系统的整体性能、减少时延。在Tilera的架构中,每一个核的L2 Cache可以作为其他核的L3 Cache[12]。而所有核间通信都需要通过Mesh网络,每一跳需要1个时钟周期,而每个核上的交换节点都是一个先进先出队列(FIFO)[13,14],在高数据吞吐量时,核间的位置关系可能影响性能。核间通信的位置关系如图5所示,数据分布在灰色核中的数据进行核间通信的时延同黑色核中核间通信的时延是不同的。通过绑定进程和核(core affinity),可以改善这种情况下系统的性能。
以64核处理器中选取36核为例,基本上的分组方法包括36组(也就是不分组)、9组(每组4核)、6组(每组6核)、4组(每组 9核)、2组(每组 18核)、1组(36核),如图 6所示。
从图7的结果可以看出,核的分组影响Cache的行为,进而影响整个系统的性能。适当调整核的分组可以简单但是显著提高系统性能。
(3)其他优化方法
其他优化方法包括采用图形化的优化工具进行代码级的优化,发现被密集访问数据和频繁执行的指令并进行优化,减少其他系统操作的时间开销。
(4)平台测试结果
针对基带处理的应用,通过优化,可以在铜缆千兆以太网上[15,16]获得如图3~7所示的性能指标。时延同处理器负载关系如图8所示,在CPU负载小于50%的情况下,可以比较稳定地控制在0.2 ms的时延范围内。完全可以满足现有系统亚毫秒级的时延需求并能保证错误恢复时间。
4 结束语
云计算技术试图将计算能力作为公用事业(public utility)提供给用户。分布在不同地址位置的计算实体提供可伸缩、低廉、可靠的计算能力。本文展示了一种可以达到亚秒级时延保证的针对局部数据密集、运算密集型应用云计算平台。它采用MIPS指令集的多核处理器,运用并行化技术进行运算优化以减少执行时间、提高执行效率。并设计实现了支撑云计算的服务注册、任务分配、负载平衡、恢复机制。这个平台的优点是成本低、功耗低、能效比高、易扩展。在针对实际数据的测试中性能稳定,具备取代现有专用硬件在未来移动通信网中广泛部署的潜力。
本文所描述的云计算平台可以从多个角度进一步完善,首先是现有的各方面机制的改进和完善;进一步吸收运算并行优化技术(这是非常活跃的研究领域)的新进展、动态平衡负载、时延保证、服务注册机制的进一步完善。还包括对现有操作系统ZOL(zero overhead linux)在较高负载的情况下表现不理想进行进一步的分析和改进。
1 www.picmag.org
2 Gathering clouds of Xaas,http://www.ibm.com/developer
3 en.wikipedia.org/wiki/Cloud_Computing
4 Borkar S,Dubey P,Kahn K,et al.Platform 2015:Intel processor and platform evolution for the next decade.Intel White Paper,2005
5 www.tilera.com
6 www.caviumnetworks.com
7 www.netlogicmicro.com
8 3GPP,TR25.913.Requirements for evolved UTRA (E-UTRA)and evolved UTRAN (E-UTRAN)
9 http://labs.chinamobile.com/cmri/
10 www.xensource.com
11 AmdahlG M.Validity ofthe single-processorapproach to achieving large scale computing capabilities.In:AFIPS Conference,Atlantic City,NJ,Apr 1967.AFIPS Press,Reston,Va,1967
12 Michael T.The raw processor speci_cation.http://cag.csail.mit.edu/raw/documents/RawSpec99.pdf
13 Albert G S.Raw fabric hardware implementation and characterization.In:Master's Thesis,Department of Electrical Engineering and Computer Science,MIT,June 2006
14 Bell S,Edwards B,Amann J,et al.On-chip interconnection architecture of the tile processor.In:ISSCC 2008
15 Li Wen,Li Yi,Wang Xiaoming.Logic of collision elimination for reducing propagation delays on ethernet and its application simulation.In:8th ZCEMI,Xi'an,China,2007
16 Mainkar V,Trivedi K S.Approximate analysis ofpriority scheduling systems using stochastic reward nets.In:Proc of 13th Int Conf Distributed Computing Systems,Pittsburgh,PA,May 1993