PathScale InfiniPath 互连
随着大型集群的应用在学术界逐渐普及,并从科学领域走向商业领域,许多管理员都在寻找提高性能的方法,同时又不显著增加每个节点的成本。有些人可能会专注于 CPU 功率/速度或每个节点的 RAM 容量(相对昂贵的组件)来提高性能。PathScale(最近被 QLogic 收购)正在采取不同的方法,而是专注于释放集群作为一个整体已经包含的计算能力,允许 Intel 和 AMD 制造的“纯种”处理器移动它们能够生成的所有消息。
通过显著增加节点之间的消息流量并减少这些消息的延迟,集群上运行的应用程序能够比以前更快地运行和扩展。而且,性能的提高是通过廉价的 x86 服务器与标准的 InfiniBand 适配器和交换机的组合来实现的。
InfiniPath InfiniBand 集群互连有两种版本:PCI Express,用于在任何主板和任何处理器上进行普遍部署;以及直接连接到 HyperTransport 总线,以实现绝对最低的延迟。本文讨论的是 InfiniPath HyperTransport(或 HTX)产品线。支持 InfiniPath HTX 的服务器可从 25 多家不同的系统供应商处获得,包括 Linux Networx、Angstrom、Microway、Verari 和 Western Scientific。在不久的将来,配备 HTX 插槽的服务器可能会从更大的 Tier-1 计算机系统供应商处获得。目前,Iwill (DK8-HTX) 和 Supermicro (H8QC8-HTe) 正在发售配备 HTX 插槽的主板,Arima、ASUS、MSI 和其他厂商的更多产品也即将推出。InfiniPath 适配器几乎可以与任何 Linux 版本一起使用,并且可以连接到任何供应商的任何 InfiniBand 交换机。此外,对于与其他供应商的 InfiniBand 适配器混合部署的情况,InfiniPath 支持 OpenFabrics(以前称为 OpenIB)软件堆栈(可从 PathScale 网站下载)。
InfiniPath HTX 适配器比任何其他集群互连做得更好的地方在于,它可以接受快速多核处理器每秒生成的数百万条消息,并将它们发送到接收处理器。部分秘诀在于消除了与桥接芯片和 PCI 总线相关的所有延迟,因为流量是通过速度更快的 HyperTransport 总线路由的。在实际测试中,这产生了 2 到 3 倍的延迟改进,而在实际集群应用程序中,每秒消息数增加了 10 倍或更多。
消息传输速率是互连领域中未被颂扬的英雄,通过完全重新设计其适配器,InfiniPath 比下一个最佳方案快了十倍以上。当行业中的其他厂商构建卸载引擎时,即带有嵌入式处理器和独立内存的主机服务器的微型版本,InfiniPath 基于一个非常简单、优雅的设计,该设计不会重复主机处理器的工作。互连适配器卡上的嵌入式处理器速度仅为主机处理器的十分之一左右,因此它们无法跟上这些处理器生成的消息数量。通过保持简单,InfiniPath 避免了在缓存和与卸载引擎相关的其他内务处理上浪费 CPU 周期,而是为最终用户做了实际工作。这种方法的优点在于,它不仅降低了每 MB 传输的 CPU 利用率,而且还在主机系统上占用了更小的内存空间。
延迟提高 2 或 3 倍对消息速率(每秒消息数)产生如此大影响的原因是,低延迟减少了节点在两端等待下一次通信的时间,因此所有处理器都大大减少了浪费在等待消息流量拥堵的适配器上的周期。
这对实际应用程序意味着什么?这将取决于应用程序使用消息的方式、这些消息的大小以及其并行处理的优化程度。在我的测试中,使用一个 17 节点(16 个计算节点和一个主节点)集群,我使用 b_eff 基准测试得到了 5,149.154 MB/秒的结果。相比之下,Daresbury 实验室在 2005 年测试的其他 InfiniBand 集群的结果为 1,553–1,660 MB/秒,任何其他测试集群的最大值为 2,413 MB/秒。所有测试的集群都有 16 个 CPU。
请参阅清单 1,了解 b_eff 基准测试的结果。Daresbury 实验室研究的结果可在 www.cse.clrc.ac.uk/disco/Benchmarks/commodity.2005/mfg_commodity.2005.pdf 第 21 页找到。
清单 1. b_eff 输出
The effective bandwidth is b_eff = 5149.154 MByte/s on 16 processes ( = 321.822 MByte/s * 16 processes) Ping-pong latency: 1.352 microsec Ping-pong bandwidth: 923.862 MByte/s at Lmax= 1.000 MByte (MByte/s=1e6 Byte/s) (MByte=2**20 Byte) system parameters : 16 nodes, 128 MB/node system name : Linux hostname : cbc-01 OS release : 2.6.12-1.1380_FC3smp OS version : #1 SMP Wed Oct 19 21:05:57 EDT 2005 machine : x86_64 Date of measurement: Thu Jan 12 14:20:52 2006
大多数供应商不公布其消息速率,而是公布其峰值带宽和延迟。但是带宽随消息大小而变化,并且只有在消息大小远大于大多数应用程序生成的消息大小时才能达到峰值带宽。对于大多数集群应用程序,互连的实际吞吐量仅为峰值吞吐量的一小部分,因为很少有集群应用程序在节点之间来回传递大型消息。相反,在集群上运行的应用程序会来回传递大量非常小的(8–1,024 字节)消息,因为节点开始和完成处理其整体任务的小部分。
这意味着对于大多数应用程序来说,可以在节点之间同时传递的消息数量(即消息速率)将比互连的峰值带宽更倾向于限制集群的性能。
随着最终用户尝试使用更大的集群来解决更精细的问题,平均消息大小会减小,而消息总数会增加。根据 PathScale 对 WRF 建模应用程序的测试,消息的平均数量从 32 节点应用程序的 46,303 条增加到 512 节点应用程序的 93,472 条,而平均消息大小从 32 节点的 67,219 字节减少到 512 节点的 12,037 字节。这意味着随着节点数量的增加,InfiniPath InfiniBand 适配器将变得更加有效。这在运行其他应用程序的大规模集群的其他测试中也得到了证实。
对于开发人员来说,开发标准的 MPI 应用程序和支持 InfiniPath 的应用程序之间几乎没有区别。所需的软件仅限于一些 Linux 驱动程序和 InfiniPath 软件堆栈。表 1 显示了已使用 InfiniPath 1.2 版本测试过的 Linux 版本。PathScale 还提供 EKOPath Compiler Suite 2.3 版,其中包括高性能 C、C++ 和 Fortran 77/90/95 编译器,以及对 OpenMP 2.0 和 PathScale 特定优化的支持。但是,编译器套件不是开发 InfiniPath 应用程序所必需的,因为 InfiniPath 软件环境也支持 gcc、Intel 和 PGI 编译器。基本软件为高性能 MPI 和 IP 应用程序提供环境。
表 1. InfiniPath 1.2 版本已在以下 AMD Opteron 系统(x86_64)的 Linux 发行版上进行了测试。
Linux 发行版 | 测试版本 |
---|---|
Red Hat Enterprise Linux 4 | 2.6.9 |
CentOS 4.0-4.2 (Rocks 4.0-4.2) | 2.6.9 |
Red Hat Fedora Core 3 | 2.6.11, 2.6.12 |
Red Hat Fedora Core 4 | 2.6.12, 2.6.13, 2.6.14 |
SUSE Professional 9.3 | 2.6.11 |
SUSE Professional 10.0 | 2.6.13 |
优化的 ipath_ether 以太网驱动程序为现有的基于 TCP 和 UDP 的应用程序(以及使用以太网的其他协议)提供高性能网络支持,而无需对应用程序进行修改。OpenIB (Open Fabrics) 驱动程序提供完整的 InfiniBand 和 OpenIB 兼容性。此软件堆栈可在其网站上免费下载。目前支持 IP over IB、verbs、MVAPICH 和 SDP(Sockets Direct Protocol)。
PathScale 提供试用计划——您可以编译并在其 32 节点集群上运行您的应用程序,以查看您可以获得的性能提升。请访问 www.pathscale.com/cbc.php。
此外,您还可以在 AMD 开发者中心的 Emerald 集群上测试您的应用程序,该集群提供 144 个双路双核节点,总共 576 个 2.2GHz Opteron CPU,通过 InfiniPath HTX 适配器和 SilverStorm InfiniBand 交换机连接。
在此集群上进行的测试表明,在超过 500 个处理器的情况下具有出色的可扩展性,包括在 www.topcrunch.org 上发布的 LS-Dyna 三车碰撞结果。请参阅表 2,了解基准测试的前 40 名结果列表。请注意,前十名中唯一的其他集群是每个节点成本更高的 Cray XD1 系统。
表 2. LS-Dyna 三车碰撞结果,发布于 www.topcrunch.org
结果(越低越好) | 制造商 | 集群名称 | 处理器 | 节点 x CPU x 核心 |
---|---|---|---|---|
184 | Cray, Inc. | CRAY XDI/RapidArray | AMD 双核 Opteron 2.2GHZ | 64 x 2 x 2 = 256 |
226 | Cray, Inc. | CRAY XD1/RapidArray | AMD 双核 Opteron2.2GHz | 64 x 2 x 1 = 128 |
239 | Cray, Inc. | CRAY XD1/RapidArray | AMD 双核 Opteron 2.2GHz | 32 x 2 x 2 = 128 |
239 | Rackable Systems/AMD Emerald/PathScale | InfiniPath/SilverStorm InfiniBand 交换机 | AMD 双核 Opteron 2.2GHz | 64 x 2 x 2 = 256 |
244 | Cray, Inc. | CRAY XD1/RapidArray | AMD Opteron 2.4GHz | 64 x 2 x 1 = 128 |
258 | Cray, Inc. | CRAY XD1/RapidArray | AMD 双核 Opteron 2.2GHz | 48 x 2 x 1 = 96 |
258 | Rackable Systems/AMD Emerald/PathScale | Infiniband/SilverStorm InfiniBand 交换机 | AMD 双核 Opteron 2.2GHz | 64 x 1 x 2 = 128 |
268 | Cray, Inc. | CRAY XD1/RapidArray | AMD Opteron 2.4GHz | 48 x 2 x 1 = 96 |
268 | Rackable Systems/AMD Emerald/PathScale | InfiniPath/SilverStorm InfiniBand 交换机 | AMD 双核 Opteron 2.2GHz | 32 x 2 x 2 = 128 |
280 | Cray, Inc. | CRAY XD1/RapidArray | AMD 双核 Opteron 2.2GHz | 24 x 2 x 2 = 96 |
294 | Rackable Systems/AMD Emerald/PathScale | InfiniPath/SilverStorm InfiniBand 交换机 | AMD 双核 Opteron 2.2GHz | 48 x 1 x 2 = 96 |
310 | Galactic Computing (Shenzhen) Ltd. | GT4000/InfiniBand | Intel Xeon 3.6GHz | 64 x 2 x 1 = 128 |
315 | Cray, Inc. | CRAY XD1/RapidArray | AMD 双核 Opteron 2.2GHz | 32 x 2 x 1 = 64 |
327 | Cray, Inc. | CRAY XD1/RapidArray | AMD Opteron 2.4GHz | 32 x 2 x 1 = 64 |
342 | Cray, Inc. | CRAY XD1/RapidArray | AMD 双核 Opteron 2.2GHz | 16 x 2 x 2 = 64 |
373 | Rackable Systems/AMD Emerald/PathScale | InfiniPath/SilverStorm InfiniBand 交换机 | AMD 双核 Opteron 2.2GHz | 32 x 1 x 2 = 64 |
380 | Cray, Inc. | CRAY XD1/RapidArray | AMD Opteron 2.2GHz | 32 x 2 x 1 = 64 |
384 | Cray, Inc. | CRAY XD1/RapidArray | AMD 双核 Opteron 2.2GHz | 24 x 2 x 1 = 48 |
394 | Rackable Systems/AMD Emerald/PathScale | InfiniPath/SilverStorm InfiniBand 交换机 | AMD 双核 Opteron 2.2GHz | 16 x 2 x 2 = 64 |
399 | Cray, Inc. | CRAY XD1/RapidArray | AMD Opteron 2.4GHz | 24 x 2 x 1 = 48 |
405 | Cray, Inc. | CRAY XD1/RapidArray | AMD Opteron 2.2GHz | 32 x 2 x 1 = 64 |
417 | Cray, Inc. | CRAY XD1/RapidArray | AMD 双核 Opteron 2.2GHz | 12 x 2 x 2 = 48 |
418 | Galactic Computing (Shenzhen) Ltd. | GT4000/InfiniBand | Intel Xeon 3.6GHz | 32 x 2 x 1 = 64 |
421 | HP | Itanium 2 CP6000/InfiniBand TopSpin | Intel Itanium 2 1.5GHz | 32 x 2 x 1 = 64 |
429 | Cray, Inc. | CRAY XD1/RapidArray | AMD Opteron 2.2GHz | 32 x 2 x 1 = 64 |
452 | IBM | e326/Myrinet | AMD Opteron 2.4GHz | 32 x 2 x 1 = 64 |
455 | Cray, Inc. | CRAY XD1 RapidArray | AMD Opteron 2.2GHz | 24 x 2 x 1 = 48 |
456 | HP | Itanium 2 Cluster/InfiniBand | Intel Itanium 2 1.5GHz | 32 x 2 x 1 = 64 |
480 | PathScale, Inc. | Microway Navion/PathScale InfiniPath/SilverStorm IB 交换机 | AMD Opteron 2.6GHz | 16 x 2 x 1 = 32 |
492 | Appro/Level 5 Networks | 1122Hi-81/Level 5 Networks - 1Gb 以太网 NIC | AMD 双核 Opteron 2.2GHz | 16 x 2 x 2 = 64 |
519 | HP | Itanium 2 CP6000/InfiniBand TopSpin | Intel Itanium 2 1.5GHz | 24 x 2 x 1 = 48 |
527 | Cray, Inc. | CRAY XD1/RapidArray | AMD 双核 Opteron 2.2GHz | 16 x 2 x 1 = 32 |
529 | HP | Opteron CP4000/TopSpin InfiniBand | AMD Opteron 2.6GHz | 16 x 2 x 1 = 32 |
541 | Cray, Inc. | CRAY XD1/RapidArray | AMD Opteron 2.4GHz | 16 x 2 x 1 = 32 |
569 | Cray, Inc. | CRAY XD1/RapidArray | AMD 双核 Opteron 2.2GHz | 8 x 2 x 2 = 32 |
570 | HP | Itanium 2 Cluster/InfiniBand | Intel Itanium 2 1.5GHz | 24 x 2 x 1 = 48 |
584 | Appro/Rackable/Verari | Rackable 和 Verari Opteron 集群/InfiniCon InfiniBand | AMD Opteron 2GHz | 64 x 1 x 1 = 64 |
586 | IBM | e326/Myrinet | AMD Opteron 2.4GHz | 16 x 2 x 1 = 32 |
591 | 自制 (SKIF program)/United Institute of Informatics Problems | Minsk Opteron 集群/InfiniBand | AMD Opteron 2.2GHz (248) | 35 x 1 x 1 = 35 |
Logan Harbaugh 是位于加利福尼亚州雷丁市的自由撰稿人兼 IT 顾问。他在 IT 领域工作了 20 年,撰写了两本关于网络的书,以及为大多数主要的计算机出版物撰写的文章。