城里最好的游戏

作者:James Gray

2006 年 10 月,Terra Soft 宣布计划使用索尼 PlayStation 3 (PS3) 构建世界首个超级计算集群,该集群采用 IBM Cell Broadband Engine 和 Linux 操作系统。这个想法源于索尼电脑娱乐公司敲开了 Terra Soft 的大门,他们有兴趣展示 PS3 不仅仅是一个游戏机。在 Terra Soft 总部建造了一个 3,000 平方英尺的超级计算设施,并加入大量传统的修补工作后,该集群正在顺利进行中。Terra Soft 的首席执行官 Kai Staats 称 PS3 集群的建设是“他在这个行业中的[他的]高光时刻”。最近,我们采访了 Kai,以了解 PS3 集群的内幕。

The Best Game in Town

Terra Soft 的 Aaron Johnson(左)和 Kai Staats(右)

LJ:感谢您同意与我们交谈,Kai。请告诉我们,索尼为何找到 Terra Soft 来构建这个集群?

KS:八年来,Terra Soft 一直致力于 Power 架构,为基于 IBM 和 Freescale CPU(例如苹果公司的 PowerPC 产品线)构建的系统提供领先的 Linux 操作系统。这种经验和专业知识让索尼确信 Terra Soft 将提供高质量的最终用户体验和专业的支持。

LJ:您与索尼共同创建的 PS3 集群是一个有趣的应用,它主要作为家庭娱乐设备进行销售。PS3 确实是一台灵活而强大的机器,不是吗?

KS:是的,PS3 兼具两者。我相信我们正在经历一个有趣的范式转变,从过去三十年个人电脑与专用游戏机竞争,到行业内首个提供真正个人电脑功能的游戏机。

索尼认识到,凭借其 Cell 处理器,PS3 不仅仅是另一个图像处理引擎,而是一台功能齐全、功能强大的家用电脑和轻型开发工作站。这是一个巨大的市场差异化因素。

在家中,PS3 优雅地将 CD、DVD、MP3 播放器和家用电脑整合到一个单一的“设备”中。在超级计算领域,PS3 提供了一个廉价、轻量级的计算节点。PS3 的设计目的不是与 Mercury 和 IBM Cell 刀片服务器竞争,而是使个人和实验室能够在有限的预算内为这种新的九核架构开发和优化代码。相同的代码可以无缝迁移到高性能的 Cell 产品。

LJ:我们很想更多地了解 Cell 处理器的重要性。

KS:PS3 基于 Cell Broadband Engine 构建,这是一个由索尼、东芝和 IBM(STI 联盟)设计的九核 CPU。它提供了卓越的前端总线性能。

LJ:Cell 的 1+8 多核处理环境是否像真正的八核处理器一样运行,还是存在显著差异?

KS:第一个核心是 PPU,一个与 IBM 970 兼容的单元。这意味着任何为 Apple G5 或 IBM JS21(例如)设计的 Linux 应用程序都可以在这个核心上无缝运行。额外的八个 SPE(协同处理引擎)提供了八个额外的核心,可以作为 CPU(与 DSP 相比)进行寻址,从而实现独特而强大的单芯片处理环境。通过将代码保留在前端(与降级到北桥(如历史上的多 CPU 配置)相比),性能得到了最大化。

LJ:实现 PS3 集群的关键部分似乎是 Y-HPC,您的集群构建套件。Terra Soft 在这方面的创新是什么?

KS:简而言之,Y-HPC 集群构建套件将节点映像交付到计算节点。但是,围绕这个核心功能的是管理多个、唯一的节点映像和节点“个性”的方法,这些“个性”修改任何给定的节点映像以执行各种指定的任务。节点可以根据个性配置部署为 NFS 服务器、存储服务器或计算节点(例如)。

Y-HPC 集成了完整的命令行语法以及图形用户界面。并且,Y-HPC 可以部署在 x86、x86-64 和 Power(G3、G4、G5、IBM JS20/21、p5 和 Cell)上,包括服务器和节点。此外,Y-HPC 是 IBM、Mercury 和 Sony Cell 的首个也是唯一一个集群构建套件。

虽然 Y-HPC 确实包含一些基本的集群节点监控工具,但它并非旨在取代 Cluster Resources Moab。相反,它的设计目的是与 Torque 和 Moab 集成,以实现完整的构建到运行解决方案。

目前处于 beta v2.0 版本的 Y-HPC 正在交付给主要客户,并部署在我们内部的 PS3 集群上。

LJ:Yellow Dog Linux 如何应用于其他基于 Cell 的系统?

KS:2005 年秋季,Mercury Computer 与 Terra Soft 接洽,为其基于 Cell 的系统开发和维护商业 Linux 操作系统。这首次在 SC2005 西雅图大会上宣布 (www.terrasoftsolutions.com/news/2005/2005-11-15.shtml)。

Mercury 于 2006 年 1 月开始发售预装 Yellow Dog Linux 的 IBM BladeCenter 外形尺寸 Cell 刀片服务器。Terra Soft 继续为 Mercury 基于 Cell 的产品维护和开发 Yellow Dog Linux,并即将支持 PCI 外形尺寸 CAB 和 1U 机架式“披萨盒”节点 (mc.com/products/boards.cfm)。

LJ:您将使用此集群进行生物信息学研究。您能为我们的读者解释一下什么是生物信息学吗?为什么这个特定的集群适合这种应用?

KS:维基百科解释说:“生物信息学和计算生物学这两个术语经常互换使用。然而,生物信息学更恰当地指的是创建和改进算法、计算和统计技术以及理论,以解决生物数据管理和分析提出的或从中获得灵感的正式和实际问题。”

我想补充一点,在更基本的层面上,生物信息学包括比较两个或多个生物体之间的基因序列。例如,当细菌或病毒发生变异时,其一个或多个基因与之前的菌株不同。一旦测序(基因被识别、标记并放入数据库的过程),生物信息学提供了一种比较和更好地理解突变前和突变后基因序列的方法。

Y-Bio 和集群提供了一种每天比较数千个基因序列的方法,此外,能源部和“点教育”研究人员还将引入其他应用程序。

LJ:最初,索尼与您签订合同,基于 PS3 平台构建两个集群:一个名为 E.coli 的测试集群和一个名为 Amoeba 的生产集群。最终是这样实现的吗?

KS:最初的计划是使用“beta” PS3 单元(索尼在硬件发货前提供给游戏开发商的 2U 机架式设备)构建一个测试集群和一个生产集群。去年秋天,索尼决定更愿意使用已发货的 PlayStation 3 单元,即全球零售店中出售的那些。

这项新的工作于 1 月份启动,计划中的 128 个节点中的前 20 个节点在两周多前到达。

前 20 个节点现在已安装在机架上。两周前,我们创建了一个大约 680MB 的精简版 Yellow Dog Linux 节点映像,仅包含功能性、灵活的计算节点的基本要素。我们现在正在更新我们的 Y-HPC 集群构建套件,Cluster Resources 的人员正在应用 Torque 资源管理器和 Moab 集群套件。

LJ:到目前为止,您对集群的体验如何?

KS:唯一的真正挑战是使用新的引导加载程序 (kboot) 和相关的 ramdisk 映像进行网络启动。花了一两个下午的时间进行调整和破坏,然后我们找到了设置的魔力组合,PS3 就作为 NFS 启动的集群节点启动并运行了。

LJ:您能否大致介绍一下,与其他 CPU 相比,九核 Cell 处理器实现了什么样的性能提升?

KS:在我们的 Hack-a-Thon 活动中,我们见证了 Cell 处理器代码性能方面的一些有趣进展。特别是,Mesa 库的性能比在 Intel Woodcrest 上发布的性能提高了 80 倍。IBM 的一些人一直在为 Cell 开发 BLAST,性能提升了 10-20 倍。

LJ:您是否需要对 Linux 内核进行任何特殊修改,以利用 Cell 处理器的多核架构和支持芯片?

KS:我们没有修改特殊的内核接口来访问 Cell 的 SPE,这些接口已经包含在 Linux 内核中一段时间了(我不记得 Cell 支持是什么时候首次添加的)。我们还包括 Cell SDK,它允许您构建、执行、运行和调试利用 Cell SPE 的应用程序。[此问题由 Yellow Dog Linux 首席开发人员 Owen Stampflee 提供支持回答。]

LJ:与使用其他硬件相比,使用 PS3 有什么缺点吗?

KS:PS3 的用户空间 RAM 略低于 256MB,而 IBM 和 Mercury Cell 刀片服务器目前每个 CPU 提供 512MB,在双 Cell(18 核)板上总共共享 1GB RAM,并且 RAM 比我们期望的现代 32 位桌面和 64 位工作站的 RAM 少得多。

这种有限的 RAM 具有约束性,当然,速度不如 RAM 更多时那么快。但是,3.2GHz CPU 和快速前端总线可以很好地弥补这一点,因为桌面非常可用。即使是大型应用程序,例如 OpenOffice.org,也能正常运行。MythTV 令人印象深刻。但是,对于非常大的图像,GIMP 肯定会受到影响。

在优化 Cell SPE 的代码时,无论是否独立于 PS3 或 IBM 实现,都必须重新设计算法本身,以实现流水线化,即代码和数据通过相对较小的缓存的连续、稳定流式传输。此流水线中的停顿会导致性能损失。

这可能需要一个下午的返工,几周或更长时间,具体取决于代码的复杂性。但当成功时,最终结果是惊人的,32 位浮点数可以利用每个 SPE 上的 AltiVec 单元以及八路多核扩展。

LJ:令人印象深刻的是,您正在与大学和国家实验室(例如劳伦斯伯克利、洛斯阿拉莫斯和橡树岭)共同开发和开源一系列生命科学应用程序。您在这方面取得了哪些进展?

KS:我们校园内 3,000 平方英尺服务器机房内的所有设备都免费提供给我们的 HPC 联盟成员 (www.hpc-consortium.net)。目前包括七个 IBM Cell 刀片服务器(用于 Cell 代码开发和优化)以及不断增长的 PS3 集群,这些集群通过 GbE 连接到两台 G5、一个开发箱和一个头节点。通过我们的光纤接入点的专用端口授予访问权限,该端口目前为 10Mb,如果需要,可以在几分钟内扩展到高达 100Mb。

我们预计在不久的将来会收到额外的 Cell pSeries,甚至可能是一些 GPU 系统。

所有联盟技术成员(那些 Cell 开发提案已被接受的成员)都被授予所有内部系统的帐户。

该联盟是一项旨在实现公平竞争环境的实验,它汇集了来自各种编程背景的开发人员,并让他们在相同的硬件上、在相同的列表中进行互动——来自 IBM 的高级程序员与来自大学的新手、能源部实验室和商业员工在 Hack-a-Thon 活动期间进行协作,然后互相帮助进行持续开发。

LJ:除了生物信息学之外,您还将关注哪些其他应用?

KS:当然。在 Hack-a-Thon 活动中,有优化内核、为 Windows 构建 Cell 开发工具集、优化 Mesa(前面提到过)、可视化库等项目。目前正在进行新的项目,将多媒体应用程序引入 Cell、CFD 库和电影渲染。潜力仅受与 Cell 合作的个人和团队的决心以及联盟将努力限制在单个研究领域的限制。

LJ:感谢您分享有关这个创新项目的信息,Kai。祝您好运!

KS:也谢谢您!

James Gray 是 Linux Journal 产品编辑,也是密歇根州立大学环境科学与管理专业的研究生。自 1993 年的 Slack 1.0 以来,他一直是 Linux 爱好者,目前与妻子和小猫住在密歇根州兰辛。

加载 Disqus 评论