如何构建低成本服务器集群前沿技术
当我们需要较高的计算能力时,一般会有两种选择。一个选择是构建一台超级计算机,这需要一个非常庞大的高速服务器机群,非常快的存储阵列和光速的数据连接——所有这些都是非常昂贵的。另一个选择是一种低成本的方法:用低功耗的和廉价的电脑构建一个服务器集群。
本文列出了解决高性能计算需求的4大低成本的典型案例。在这些案例中所使用的集群在研究宇宙初期的射线、研发下一代雷达或是尽可能又快又经济地运行网络测试等方面都提供了近乎实时的处理能力。
1. GPU集群用于天体研究
这是一项很独特的任务:在澳大利亚内陆构建一个高性能计算集群,在这里比较容易探测早期宇宙的演化迹象,因为周围的夜空没有任何射线干扰。
如你所预料的,可以进行这项任务的高性能计算的选择并不多。对于默奇森宽场射电天文望远镜阵列的研究人员来说,电力供应是一个主要问题。该阵列距离最近的居民点有50公里,距最近的市镇有大约300公里。如果要构建一个标准的高性能计算集群需要耗费大量的电力,这是当地的电力设施所无法提供的。
位于澳洲内陆的默奇森宽场射电天文望远镜阵列
于是,默奇森宽场阵列便采用了大约80个GPU(图形处理芯片,Nvidia Tesla S1070)构建了两个服务器集群。所有计算设备只需要使用柴油发电机提供40KW的电力即可。
来自望远镜阵列的高达2.5Tflops的天文学数据需要以3GB/sec的速度进行运算。而由于澳洲内陆没有光纤连接,所以图像处理的工作相当繁重。射电天线捕捉宇宙射线数据,再将这些数据馈送给一个叫相关器的设备,由后者输入GPU。
图像处理主要是利用数学方程式把傅里叶数据转换成真实空间数据,校正电离层失真和测量仪器。
“现在的CPU,比如至强和皓龙都无法在有限的电力条件下提供所需的计算能力,”帮助构建计算集群的研究人员Richard Edgar说。“我们曾考虑过使用低功耗的MIPS处理器,不过这些处理器不能提供所需的计算性能。GPU提供了唯一可能的成功机会,能在较低的功耗下提供极高的计算能力。”
这个集群尚未最后完工,不过测试原型机已搭建完成并开始试运行。Edgar称,如果按Tflops/每瓦的指标来衡量,该集群是目前世界上最快的高性能集群。
2. 美国空军研究实验室的PlayStation 3集群
技术上的一大挑战就是要让计算机能和人一样去做相同的任务。对于空军来说,这就意味着要教会计算机能够识别雷达图像,准确辨认任何异常情况,而且还不能有任何延迟进行实时处理。
美国空军研究实验室信息委员会的首席科学家Richard Linderman称,该实验室的计算需求非常之高。
实验室需要使用特殊的图像“实时剔除大气层造成的失真,”Linderman解释道。实验室还要采用神经形态计算方法“探索让计算机和人脑以同样原理工作的方法——例如强大的目标识别能力,”他说。
Linderman说他在几年前就开始考虑PlayStation芯片了,当时他的团队刚开始研究超级计算机的构建成本。他说,洛斯阿拉莫斯国家实验室的走鹃超级计算机是IBM专为该实验室建造的,成本超过了1亿美元,然而根据已经公开的一些报道,走鹃所使用的Cell芯片实质上就是IBM、索尼和东芝联合设计的、用在PlayStation 3游戏机上的芯片。
Linderman说,PlayStation 3集群的初始建造成本约为33万美元,峰值计算能力可达40Tflops,性价比要比走鹃高出10多倍。美国空军最近重新设计了这一集群,真实可使用更便宜的组件产生更高的计算能力。目前的这一集群大约是GPU和PS3芯片各占一半,峰值性能在500Tflops左右,成本仅为200万美元。
“我们不想在电力上花费太多成本,所以能效是一个重要的衡量因素,”Linderman说。“大多数500Tflops的超级计算机都要耗费数兆瓦的电力;而我们的这一集群只需300KW。这样一来,每年每兆瓦就能节省大约100万美元,这是相当节约的,同时又能让我们获得500万亿次的计算性能。”
3. 麻省理工的插头式电脑集群
对于传统的集群或超级计算机来说,其设计目的是要一次运行众多的应用或“任务”,因此需要有速度非常快的共享内存、高速网络以及高速磁盘访问。
然而在很多时候,一台超级计算机或者HPC集群只有一项任务要运行,比如说运行一次网络测试,而且只需要高速的单精度浮点格式,而不需要双精度数据传输率和共享内存。
麻省理工的研究人员就发现,他们可以利用一个“插头式”电脑构成的集群,以非常低的功率运行网络测试任务。实际上,所谓插头式电脑就是一台迷你的裸服务器。目前比较流行的插头式电脑有出自迈威尔(Marvell)科技的SheevaPlug或GuruPlug,其他还有基于这些平台开发的产品,比如QuadAxis的QuadPlug等。
迈威尔科技研制的插头式电脑SheevePlug
麻省理工的集群利用标准Wi-Fi进行连接,整体功耗仅为100W,帮助设计该集群项目的麻省理工系统管理员Kurt Keville说。
“我们的集群目前最大的拥堵点就是内存、网络带宽和延时,”Keville说。目前,麻省理工将一个任务在无线网络上进行分解,分配给多个独立核心,采用了多路径网络设计。这种设计要求部署较少的全局无线热点,而每个核心要求配置较多的热点。这就是说,可以为特定的零星应用构建多个低成本集群。
麻省理工设计的插头式电脑集群,可用于单一任务处理
该团队还采用这一集群为学生提供低成本、太阳能供电的无线网络。
Keville称,他没有构建通用集群的计划,因为部署更多功能齐全的处理器需要消耗太多的电力,成本也过高。而采用共享内存进行复杂计算任务也行不通,因为插头式电脑缺乏足够的内存,同时处理多个任务时,单个核心的处理速度也跟不上。
4. Sandia国家实验室的无硬件集群
最后一种集群选择方案也可以考虑:那就是根本没有传统的硬件节点。Sandia国家实验室的研究人员Ron Minnich已经研制出了这样一个由上百万个虚拟机组成的集群,他们今年的目标是要将这一系统扩张至1000万个虚拟机。
每个虚拟机由1个在该实验室的雷鸟超级计算机上运行的Linux内核构成。颇有意思的是,雷鸟超级计算机本身就是一个集群,由将近5000台相互连接的戴尔电脑构成。为了创建百万节点的集群,Minnich在每个戴尔节点机上生成250个虚拟机。而要想扩展至千万个节点,他就得在现有的每个戴尔节点机上生成更多的虚拟机。
Minnich和他的团队正利用这个虚拟机集群模拟僵尸网络如何感染计算机,分析互联网如何工作,帮助开发下一代操作系统和安全软件。
他说,这一集群的规模最终将能够和一个小国家的国家网络相匹敌,甚至可以和全美的网络相匹敌,可以虚拟网络攻击或者监视网络攻击。换句话说,他想要在实验室里创建一个网络攻击的虚拟模型。
“一些很紧迫的现实问题,例如气候变化模型的研究、研发新药和研究更有效的能源生产等,都需要越来越多的计算资源,”他说。此外,虚拟化还能在大规模系统的研发中发挥越来越重要的作用,因为它具备可在单一平台上生成多个操作系统的能力。
总而言之,集群计算仍在发展中。麻省理工的Keville预测,在不远的将来,占地面积庞大的巨型超级计算机集群有可能会走向没落。研究人员不会再提前进行批量任务的调度,相反,他们会抓来几个插头式电脑构建自己的计算集群。
“我们需要重新思考科学计算的方法,鉴于新产品的层出不穷和电力成本的居高不下,我们需要为更多的问题寻找更多的答案,”Keville说。