16. Open MPI发展历程

Open MPI 代表了三个先前MPI实现的合并:

  1. LAM/MPI:最初由俄亥俄州立大学超级计算中心开发,后来迁移至圣母大学。

  2. LA-MPI:来自美国能源部洛斯阿拉莫斯国家实验室。

  3. FT-MPI:来自田纳西大学诺克斯维尔分校。2004年底,该大学的一位开发人员返回斯图加特大学,这实际上将他们的团队也纳入了该项目。

这些项目的核心开发者在2003年多次高性能计算会议上不期而遇。每次会议期间,我们在午餐/晚餐桌上的技术讨论越来越深入,最终我们意识到各自实现方案中存在着大量重复工作。虽然每个MPI实现各有侧重方向,但我们都秉持着相同的核心价值理念:

  • 完整的MPI实现

  • 生产级代码 — 必须“开箱即用”

  • 希望探索MPI实现可以做的许多事情,但由于我们受限于错误修复等工作,一直未能有时间/资源去深入研究。

因此,我们决定携手合作并整合资源。在SC2003大会上,我们决定建立一个全新的代码库——摒弃之前实现中所有冗余和遗留代码。取其精华,去其糟粕。源代码树的首次提交是在2003年11月22日;实际开发工作于2004年1月5日正式启动。自那时起,我们每月都会集体会面(至少持续一周),致力于实现一个无与伦比的世界级MPI实现目标。

16.1. Open MPI项目的目标

我们有几个最高级别的目标:

  1. 创建一个免费、开源、经过同行评审、具备生产质量的完整MPI实现。

  2. 提供极高、极具竞争力的性能(延迟、带宽……任选您偏爱的指标)。

  3. 直接让高性能计算(HPC)社区参与外部开发和反馈(供应商、第三方研究人员、用户等)。

  4. 为第三方研究和商业开发提供一个稳定的平台。

  5. 支持多种高性能计算平台和环境。

简而言之,我们希望与高性能计算社区携手合作,共同打造一个能在众多类型系统上使用的世界级MPI实现。

16.2. 社区

将智能研究人员和开发者聚集在一起共同开发一个产品不仅是好主意,更是开源模式的精髓。Open MPI项目最初由多个MPI实现团队发起,事实证明这种模式极其成功;将这一理念扩展到高性能计算开源社区是顺理成章的下一步。

Open MPI所基于的组件架构旨在通过让独立开发者能够将Open MPI作为生产级研究平台使用,从而促进第三方协作。虽然Open MPI是一个相对较大的代码库,但无需学习其全部内容;可能只需了解您正在实现的组件类型接口及部分周边基础设施即可。具体而言,该组件架构的设计允许对MPI功能的主要部分(例如点对点消息传递、集体通信、运行时环境支持等)进行小型离散化实现。