集群计算给高性能计算 (HPC) 带来了一场革命

集群问世之前,HPC 由 CDCCraySGIIBM 等大型集中系统主宰。所有用户把这些设备当做集中资源共享,通过集中使用资源降低成本。不过,研究人员发现这种大型系统跟不上运算需求,即使设备运算速度加快,研究人员收到的有效 HPC 时间量也会持续降低。此外,每次新设备出现后,人们都必须重写代码以匹配该设备的架构。而且,在这段时期,个人电脑的性能在悄然提升,速度比 HPC 还快。

出于上述原因,1993 年 Don Bercker 和 Tom Sterling 决定用开源软件联合个人电脑,创建所谓的“个人”HPC 系统来代替大型集中 HPC 系统。设计思路是将 HPC 级的运算能力交到各用户手中。他们的首个系统,使用 16 个 486DX4100 板,绑定通道的 10MB/s 以太网和 Linxu,与当时的 HPC 系统相比,被认为是性价比上的一次飞跃。有了 “Beowulf” 集群——这是当时人们给这一集群取的名称——单个研究人员就能以低得多的价格拥有 HPC 级性能,如果他们愿意,也可以使用这种集中式的 HPC 系统运行大任务,Beowulf 集群也能完成所有传统的 HPC 应用。从这时候起,集群就得到了广泛应用。2008 年 6 月,全球 500 强最快系统中 80%都可被归为集群类。

为什么集群计算在 HPC 中取得这么大的成功呢?HPC 的工作人员们各执己见。我常听到的评价有:

  • 性价比:集群计算的性价比比过去的集中式 HPC 资源好得多。
  • 单个 HPC 资源:这是 Beowulf 集群初始目的之一——为个人提供更多计算功能。
  • 设备适用性:您可以设计设备服从您的代码,无需在每次有新 HPC 系统出现时都修改您的代码。
  • 开源:经典 Beowulf 集群是建立在 Linux 和其他开源工具上的,这就意味着研究人员不用花钱购买软件,还可以根据需要修改工具以便更好地解决问题。
  • 开放标准:人们通常想不到这个原因,但是使用开放标准的系统诸如 x86 服务器、以太网和其他诸如InfiniBand,MPI 等网络协议是集群计算取得成功的关键。开源标准允许您将自己的应用程序写入标准中,并在支持这些标准的系统运行该代码。

集群的结构
HPC 集群系统可以有很多特色,这就是集群最大的特色之一,您可以根据自身的应用需要构建集群。图 1 是经典 “Beowulf” 集群的简图。

 
图 1 – 经典 Beowulf 集群

Outside Network: 外部网络
Master Node: 主节点
Compute Nodes: 计算节点
Storage: 存储器
Computational Network: 计算网络GigE、IB 或 Myrinet)
Management Network: 管理网络


在这个布局图中,集群建在一个专用网络交换机上,这是将集群与外部网络连接起来的主节点。主节点控制操作系统映像和集群管理,同样作为登录节点供用户访问集群。有一组只用于计算的节点,名为为计算节点;此外还有一种节点的共享存储,存储供主节点和计算节点访问(挂载)的集群。基本层一般用 NFS 存储。

所有这些组件可以组成最少 1 个、最多 3 个网络,虽然采用两个网络(两个网络很常见)只是为了方便起见。集群里有多种类型的网络流量,第一种就是专用于集群自身管理的流量;第二种是用于数据传送(也称作消息传送)的计算流量。被很多人遗忘的第三种网络,是存储网络。这个网络承载着集群内的各种存储流量。图 1 中,存储流量可以在计算网络或管理网络中传输,这取决于 I/O 规定和存储的具体详细信息(例如,硬件和文件系统)。

至少需要一个网络。您可以在同一网络上运行 3 种类型的流量。在这种情况下,网络必须是 TCP 的(例如,GbE),因为管理流量通常要与使用 IPMI 的计算节点上的基板管理控制器 (Baseboard Management Controller, BMC) 通信。您也可以将计算流量和存储容流量放在一个网络上,这种方法虽然可以省钱,但会受到应用限制,形成瓶颈,因为所有网络流量都集中在同一个网络中。此外,这个网络必须是基于 TCP 的,最好是 GB 以太网 (GbE)。这时,10 GB 以太网 (10GbE) 的解决方案并不可行。

为了解决这个瓶颈,人们一般会将管理流量放到其 TCP 网络中,并将计算流量放到一个独立网络上,这个独立网络可以是是 TPC 网络或诸如 Myrinet 或 InfiniBand 等其他独立网络。因为运算流量作为可影响系统性能的重要因素,是放在专属网络上的,所以可以改善应用程序的可扩展性和性能。对于较大的集群,很多人会采用高速网络做计算网络,例如 Myrinet 10G 或 InfiniBand。您也可以在管理网络或计算网络上运行存储流量以节省资金,但是有时候,也需要为存储流量开辟一个专用的存储网络。这种做法在 EgE 网络中相当常见,因为 GbE 是比较实惠的集群网络。从另一方面看,高速网络的计算网络流量还有剩余带宽。剩余带宽可用于存储流量,从而无需为存储开辟第三网络,让集群更简单(减少电缆)。
集群组件
上面提供了经典集群计算系统的示意图,图中显示了各种重要组件及其连接方法。但我还想更加深入地介绍各个部件,向大家证明这些它们与其他企业级解决方案没有区别。以下链接介绍的是集群的主要组件,您可以点击这些链接了解各个组件的更多详情。

从概念上讲,集群只包括几个组件。集群的“魔力”在于您如何把他们联合起来,运行 HPC 应用程序,以及如何进行管理

阅读完每个链接之后,您可以查看关于标准 HPCC 配置的情况。