计算机集群系统高速互连技术浅析1. 引言高性能计算机在科研领域和关键业务处理方面占有举足轻重的地位,但是支持这类应用的解决方案,多趋向于专有的昂贵的专有系统,并且整体性能也并不总是灵活的、高效的,可扩展性更是乏善可陈。
计算机群集的出现使这种状况得到了显著的改善,集群系统的使用已经有十几年的历史。
作为最早的群集技术设计师之一, G. Pfister 对群集的定义是,"一种并行或分布式的系统,由全面互连的计算机集合组成,可作为一个统一的计算资源使用"。
[1]在大规模并行计算和机群等高性能计算系统中,处理器之间或计算节点之间的快速互联网络的重要程度并不亚于处理器本身,网络是集群中各个节点相互连接和协同工作的基础。
随着双核处理器的出现、PCI-Express总线的发展、超级计算机的规模越来越大以及数据库集群的发展、金融分析的精确度的增加,制造业、石油、气象、生物等仿真技术的发展等,使得高带宽、低延时、高性能、低价格的网络互联方案变得日益重要。
在实际的集群系统中,通常采用两套彼此独立的网络。
一套是普通百兆以太网,用于系统管理和文件服务等普通网络通信;另一套是高速网,主要负责并行计算的消息传递和数据交换。
在TOP500中,集群的高速网主要有千兆以太网(Gigabyte Ethernet)、10G Ethernet、Quadrics、Myrinet、Infiniband、PathScale的Infinipath、IBM的SP网络、Dolphin SCI、SGI的Numa-Link、Gray的RapidArray 等[2],其中最为广泛使用的高速通信网络有千兆以太网、Myrinet、Infiniband等三种[2]。
下面就这三种网络在带宽、延迟、功能支持和技术优势等方面进行详细的阐述。
2.几种互联技术的比较与分析2.1 千兆以太网千兆以太网是对IEEE 802.3以太网标准的扩展,在基于以太网协议的基础之上,将快速以太网的传输速率(100Mbps)提高了10倍,达到了1 Gbps。
为了能够把网络速度从原先的100Mbps提升到1 Gbps,对物理接口进行一些改动。
为了确保与以太网技术的向后兼容性,千兆以太网遵循了以太网对数据链路层以上部分的规定。
在数据链路层以下,千兆以太网融合了IEEE 802.3/以太网和ANSI X3T11光纤通道两种不同的网络技术,实现了速度上飞跃。
图1所示为三者之间的构成关系。
图1 三种网络技术构成关系图这样,千兆以太网不但能够充分利用光纤通道所提供的高速物理接口技术,而且保留了IEEE 802.3/以太网帧的格式,在技术上可以相互兼容,同时还能够支持全双工或半双工模式(通过CSMA/CD)。
千兆以太网是现在应用最广泛的网络,可用于Linux集群管理,也可用于Linux集群节点间数据交换和通信,但其网络带宽和延迟不如专用网络,只能在节点通信负载不大的应用环境中得到广泛应用。
千兆以太网支持系统到系统之间线速传输,达到约800Mbps的实际数据传送速率,报文收/发时延在60微秒左右。
报文收/发延时(或称为ping pong延时)用报文发出到接受到对方回应之间的时间间隔的一半来计算。
时延包括交换机的时延(收发双向均为10微秒左右)和接收方主机的收发延时(包括TCP/IP协议栈的处理和缓存到缓存的传送,这些均需要通过软件处理)。
千兆以太网的特点是搭建容易,可以以较低的成本满足大部分应用需求。
目前,出现了万兆以太网技术,可以以8G到10Gbps的速度输入输出数据。
并且网交换部件和芯片组的最新技术进步缩短了以太网的传输延迟,一些局域网设备的延迟降低到了300纳秒。
2.2 MyrinetMyrinet是Myricom公司私有的交换式集群互连技术,该技术原来为大容量并行处理器系统设计的。
Myrinet的基本组成部分是16端口矩阵式交换芯片,通过‘胖树’结构组成较大的交换机和交换阵列。
Myrinet交换机和主机适配器的端口速率为2Gbps。
Myrinet GM 为低级报文层支持收发和RDMA操作。
主机端口执行“操作系统旁路”固化微码将协议处理工作从主机CPU卸载下来。
Myrinet 网络的设计目标是要在局域网环境中获得系统域网络的性能。
因此,它采用了MPP 系统中数据包通信和交换技术,在设计时充分考虑了并行系统内部互连网络传输距离近、出错率低的应用环境,使用简化的链路控制协议实现数据传送,减小了数据传输时的协议开销;采用无阻塞的Clos 网络拓扑结构,减少了数据包在网络中的冲突;网络适配器处理机对网络的自动映像和路由选择功能,可以提高网络的可靠性。
Myrinet 网络自从开发成功以来,以其高带宽、低延时和良好的可扩展性,带宽可达200MB/秒,延迟小于10us,成为构造大规模集群系统的理想选择,在历届TOP500中都占有较大份额。
2.3 InfiniBandInfiniBand简称IBA,由Mellanox公司提出,是一种新的I/O总线技术,用于取代目前的PCI总线。
InfiniBand技术是一种开放标准的高带宽、高速网络互联技术。
该技术通过一种交换式通信组织(Switched Communications Fabric)提供了较局部总线技术更高的性能。
InfiniBand总线拓扑结构是基于分组交换点到点连接的fat tree结构,有很好的扩展功能。
它既能以PCB的形式提供芯片与芯片的互联,还能以电缆线的形式提供“out of the box”设备与设备之间的互联。
通过硬件提供了可靠的传输层级的点到点连接,并在线路上支持消息传递和内存映像技术。
可用于连接处理器节点和I/O节点组成系统级网络。
InfiniBand的目标是减小I/O的复杂程度。
InfiniBand体系结构中包含5个基本层,自下向上依次是物理层、数据链路层、网络层、传输层和上层软件应用层,其中前4层是通过硬件完成的[3]。
由于硬件承担了原来由CPU完成的许多I/O通信工作,因此在处理并发的多路通信任务时,不会像其他通信协议那样产生额外开销。
在InfiniBand结构中还单独定义了一个Subnet Manager的概念,用来配置网络单元、错误报告、链接错误排除、机箱管理等。
Infiniband每个单独的链接通道是4根信号线,2根输入、2根输出,每个数据方向是2.5Gb/s的带宽。
目前的DDR方式能够达到单通道单方向5Gb/s带宽,在DDR方式下的双向带宽是10Gb/s。
而且不同的通道之间还可以组合成为一个端口,这样带宽就可以成倍地增长。
在I/O技术层面,InfiniBand 还具有两个非常关键的特性:一是物理层设备低功耗,二是“箱外带宽”(Bandwidth Out of the Box)。
一个InfiniBand结构的铜介质物理层设备(PHY)每一个端口只需要0.25瓦,而一个千兆以太网物理层设备每一个端口需要2瓦的功耗。
Infiniband 完备的通信协议和网络底层的实现技术借鉴了以太局域网、光纤通道存储网络和广域网络的研究经验,因此具有很强的通用性。
从InfiniBand技术的发展前景来看,随着基于QDR(四位数据率) InfiniBand技术的产品推向市场,InfiniBand网卡的单端口带宽将达到40Gbps、80Gbps或120Gbps,相信InfiniBand技术将会变得越来越普及。
2.4 技术优势对比InfiniBand和Myrinet之间有许多类似的方面:都通过内部“胖树”结构用相对小的矩阵式交换芯片来组建较大的独立交换机。
独立交换机通过外部“胖树”结构再联合起来满足更大规模的应用要求。
所有这些交换机均使用“直通”交换技术减少交换时延,RDMA旁路系统内核处理降低时延和CPU使用率。
尽管有很多的相似之处,在主机适配器体系结构上仍然有许多显著差异,如表1中的数据显示。
采用完全“胖树”结构的大型集群需要大量的交换机和繁重的布线工作,例如一个1024个节点的典型集群结构,需要使用了24个交换机节点,每台交换机提供128个端口。
这个配置的每个链路带宽均相同,因此共计有964条交换机互连链路。
InfiniBand、Myrinet都比千兆以太网提供了更好的带宽、时延和CPU使用率。
但是,由于相对小规模的交换矩阵芯片,端口数较多的交换机的内部可能会变得非常复杂。
整个集群需要的交换机数量将很多,交换机之间互连的布线也将非常复杂。
因此,具体选择哪种互连技术将必须根据实际应用的特点在性能和复杂性/成本上作出权衡。
表1 InfiniBand和Myrinet参数对比互联网络的考虑因素主要有延时、带宽、价格、功能支持。
一般来讲,互联系统的价格与延时成反比,而与带宽成正比。
为了节省费用,应该针对不同的应用配置不同的互联系统。
由于各种应用的需求不同,对于互联方式的延时和带宽的要求也不一样。
有些高性能计算的应用需要每个节点之间非常频繁地交换数据,但每次的数据量并不很大,在设计时就需要使用低延时的互联网络,而对带宽的要求则不高。
反之,有些应用节点之间的数据交换不是非常频繁,但每次交换的数据量非常大,则需要考虑使用高带宽的互联网络,对延时要求则不高。
下表中就前面阐述的三种互联技术的特性进行对比。
表2 互联技术特性对比3 结束语Myrinet作为经典的高速网络在TOP500中一直占有较大份额,但在2005年被迅速增长的千兆以太网超过;而Infiniband方兴未艾,从2003年出现以来,每年以大约三倍速度增长,发展势头甚至超过了千兆以太网。
2006年初,2.6.15版本的Linux 核心发布,它包含了一个InfiniBand(IB) SRP存储驱动程序。
增加这个驱动器意味着,Linux 系统能够通过一个IB网络和存储对话。
该驱动程序的推出,将极大鼓舞基于IB系统的Linux 集群的迅速发展。
可以预测,未来几年Infiniband将成为Linux集群高速网络的增长点。