Matt Davis (mattdavis@us.ibm.com) Linux Power 技术顾问,IBM
在基于 POWER 的系统中开始使用企业版 Linux 级别:中级
64 位 POWER 体系结构是公认的高性能、可靠而且有用的企业平台,它为 UNIX 和 Linux 应用程序开发者提供了新的选择。不管是谁,只要有在其他平台上使用 AIX 或者 Linux 的经验,就可以受益于与世界顶尖的 IBM 硬件 POWER 相结合的开放源代码社区强有力的基础。
从价格适中的 2- 路服务器到垂直扩展的超级计算机再到世界顶级的 JS20 BladeCenter,基于 POWER 的机器具备所有的大小和等级,始终领先于人们对企业级硬件的预期。与动态逻辑分区(Dynamic Logical Partitioning)等创新配置一道,Linux 或 AIX 的可用为应用程序开发和部署提供了一个独特的依赖于 POWER 体系结构性能的平台。本文将为您提供构造大部分代码和 POWER 平台所需要的工具和知识。
Linux 发行版本 可选范围广是 Linux 社区为人们所津津乐道的一个强大之处。POWER 版 Linux 主要由 Red Hat Linux 和 SUSE Linux 这两家企业 Linux 厂商提供。这两种 Linux 发行版本各成体系,各有所长,都提供了 Linux 开发者所期望的完整的工具链、库以及开发工具。本文分别进行了评论。
当前,人们正在对 GNU 编译器集进行重大革新,为 POWER 体系结构而进行性能优化。在即将发行的 3.3 和 3.4 中,GCC 的调度和信号处理将得到改进。另外,针对特定体系结构的优化(比如对 IBM JS20 BladeCenter 中 PPC970 芯片的 VMX/Altivec 支持)将为编译后的代码带来极大的性能优势。不过,SLES8 和 RHEL3 现在使用的都是 GCC 3.2 版本,在这里评述了对这些版本性能的优化。
GCC 3.2 没有为 POWER 处理器进行针对特定体系结构的优化。所以,编译时不建议使用针对特定体系结构的标记,比如 -mpower。可以使用这些选项,但通常不会带来性能上的提高。与 x86 上的 GCC 实现不同,GCC 3.2 中没有包括 -fPIC 标记。为生成动态链接的二进制文件,需要在所有的 Makefile 文件中包含 -fPIC。如果您正从 Intel 上的 Linux 移植代码库(codebase),这尤其关键,因为已有的 Makefile 文件可能没有显式地使用这个标记。
除了要识别出那些没有被当前用于 POWER 体系结构的 GCC 所使用的标记之外,您应该知道那些对 x86 和 POWER 体系结构来说可用的标记。这些标记包括处理重定位、目录(table of contents)大小、浮点选项、位调整等等的编译标记。例如,大 TOC 支持(多于 8K 个条目)需要多个 TOC,由 -mminimal-toc 编译标记指定。要回顾这些标记,请阅读源代码包中的标准 GCC 文档。
为避免出现库不兼容的不愉快情形,POWER 版 Linux 中的 VisualAge 编译器设计为分别去使用每个发行版本包中所带的 glibc,而且它们甚至使用本地 Linux 链接器。渴望性能的应用程序显然需要 POWER 版 Linux 的这一独特功能。
有大量的关于用于 POWER 版 Linux 中的 GCC 和 VisualAge 编译器集编译期优化的文档。在 参考资料 中列出了所有 POWER 版 Linux 开发者都应该放在桌面上的可免费获得的技术资料。
IBM JDK 1.4.1 IBM 已经将开发资源加入到对定制的 JDK 的改进中,可用于 POWER 版 Linux 的 JDK 既有 32 位的也有 64 位的。BHEL3 和 SLES8 的安装包中都有 IBM JDK 1.4.1,可以与 POWER 版 Linux 的 Eclipse 集成开发环境配合使用。
开发工具 很多 Linux 开发者乐于使用传统的开发工具,比如 vi 或 Emacs。自然,这些以及 gdb 等 Linux 中常见的内核级调试工具都是可用的。不过,除了这些工具以外,POWER 版 Linux 的特色是支持 Eclipse IDE 等开发工具。VisualAge 编译器有详细的代码分析选项来确定源代码中的字符排列顺序(endianness)以及 64 位兼容性,并且,舒适的 KDE 和 Gnome 桌面环境让那些习惯于图形界面的开发者非常自如。高性能计算(HPC)以及生命科学(Life Science)开发者将受益于可用的通用应用程序,例如 NCBI 应用程序。IBM 的高级数学和科学库 ESSL 和 P/ESSL 也可以用来辅助 POWER 版 Linux 上的高性能应用程序。随着 Globus Toolkit 等相关解决方案与集群系统管理(Cluster Systems Management, CSM)等集群工具的结合,基于 POWER 版 Linux 的网格计算变得活跃起来。
结束语 POWER 版 Linux 为那些需要使用更为健壮的硬件的应用程序提供了一个高性能环境,同时还提供了全部的硬件和软件资源。在双执行环境中,64 位的应用程序可以与 32 位的应用程序和平共处。IBM iSeries 和 pSeries 系列产品为 Linux 提供了健壮的硬件基础,而这些产品以前是不能用于 Linux 的。Red Hat 和 SUSE 一直致力于让人们可以用上最好的开放源代码发行版本,IBM 则提供为 AIX 开发者所熟悉的领先的中间件解决方案。Eclipse 等新开发工具使转换变得容易,先进的开发环境提供了希望从 Linux 与 IBM iSeries 和 pSeries 服务器的结合中得到的灵活性和性能。
参考资料 - 深入了解 Red Hat Enterprise Linux AS、SUSE SLES8 for IBM iSeries and pSeries 和 TurboLinux。
- POWER 版 Linux 可以使用在 IBM eServer pSeries、IBM eServer iSeries 和 JS20 Blade Center 产品上。在 Linux on POWER 网页中查找所有选项。
- 为您的 Linux 应用开发加油提速 提供 DB2、Rational 和 WebSphere 等 IBM 产品下载 —— 还有文档、文章以及其他信息。您可以跳过这些直接访问 Linux on POWER 下载页。IBM RedBooks on Linux topics 也是极好的信息资源。
- Matt 特别喜欢的两篇 Linux POWER 开发者参考资料包括“Migrating UNIX Applications for Linux on IBM pSeries and iSeries Servers”和“How To Use IBM VisualAge C++ Version 6.0 for Linux on IBM pSeries and iSeries Servers”(都是 PDF 格式)。
- 跨平台的 GNU Compiler Collection (GCC) 支持所有语言,从 C 和 C++ 到 Fortran 再到 Ada —— 还有更多!GCC 的 3.3 和 3.4 版本有很多针对 POWER 体系结构的改进。SUSE Enterprise Server 9 将使用一个名为“hammer”的 3.3 版本分支,其中有很多移植自 3.4 的功能。
- 在 developerWorks Linux 专区 可以找到更多为 Linux 开发者准备的参考资料。
- 在 Developer Bookstore 的 Linux 区,可以找到很多精选的 Linux 书籍。
关于作者 Matt Davis 是 IBM eServer Solutions Enablement 团队中的一名 Linux 技术顾问。作为 pSeries Linux 项目的一名元老,他研究和测试了新近出现的 pSeries Linux 技术,并写了一些报告以总结他的发现。这其中包括针对 POWER 版 Linux 的日志文件系统(Journaling File Systems),用 POWER 版 Linux 进行并行网格计算,以开放源代码来取代 POWER 版 Linux 中的商业软件,以及 Linux 解决方案编目。当他还是得克萨斯州立大学(位于奥斯汀,在那里他获得了两个学位)的一名学生时,他以实习生的身份来到了 IBM。可以通过 mattdavis@us.ibm.com 与他联系。