高性能计算 (HPC)——将计算机聚集成集群以提高计算速度和能力——严重依赖于连接和管理集群中各个节点的软件。Linux 是主要的 HPC 操作系统,许多 HPC 站点通过不同的科学应用、库和其他工具扩展操作系统的功能。
随着 HPC 开始发展,HPC 站点在编译 HPC 软件时存在相当大的重复和冗余变得显而易见,有时不同软件组件之间的依赖关系使安装变得繁琐。OpenHPC 项目是为了响应这些问题而创建的。OpenHPC 是一项基于社区的努力,旨在通过提供文档和构建模块来解决 HPC 环境中的常见任务,HPC 站点可以根据自己的需求组合这些模块。
该项目的使命和愿景是
使命:提供开源 HPC 软件组件和最佳实践的参考集合,降低部署、改进和使用现代 HPC 方法和工具的门槛。
愿景:OpenHPC 组件和最佳实践将通过在一致的环境中扩大对最先进的开源 HPC 方法和工具的访问,并在由全球 HPC 用户、开发人员、研究人员、管理员和供应商组成的协作社区的支持下,实现并加速创新和发现。
OpenHPC 历史
OpenHPC 起始于国际超级计算大会 2015 (ISC'15),在一次关于社区努力构建 HPC 软件仓库和管理框架的优点的 birds of a feather (BoF) 讨论中。在超级计算大会 2015 (SC'15) 上,OpenHPC 1.0 发布,Linux 基金会宣布了 Open HPC 协作项目的技术领导层、创始成员和正式治理结构。
自那时以来,越来越多的 OpenHPC 项目成员 合作定期更新 OpenHPC 的软件包和文档,v1.1.1 版本于 2016 年 6 月在 ISC'16 发布。最新的 v1.3.2 版本于 2017 年 9 月发布。
什么是 OpenHPC?
OpenHPC 提供了一系列 HPC 环境中常见的预构建软件组件,例如配置工具、资源管理器、I/O 库、开发工具和各种科学库。它支持不同的 Linux 发行版和架构,并为 CentOS 7 和 SUSE Linux Enterprise Server (SLES) 12 提供软件包仓库。
该项目的一个关键原则是,没有人被要求安装整个 OpenHPC 堆栈;相反,用户可以选择与他们的 HPC 需求相关的组件。
OpenHPC v1.2 及更高版本包括为 x86_64 和 aarch64(技术预览)构建的版本;v.1.3.2 添加了 CentOS 7.3 和 SLES 12 SP2 构建版本。除了提供的软件包外,OpenHPC 还包括不同配置系统(Warewulf, xCAT)以及不同资源管理器(Slurm, PBS Professional)的安装指南。
软件和文档由 OpenHPC 项目成员和外部合作者在 GitHub 托管的 Git 仓库 中维护。为了确保软件和文档按描述工作,OpenHPC 拥有一个 持续集成系统,该系统使用裸机安装和集成测试套件来验证软件。
OpenHPC 考虑到 HPC 站点通常依赖于多个编译器,这些编译器可能具有部分兼容甚至不兼容的 应用程序二进制接口 (ABI) 和 消息传递接口 (MPI)。通过采用分层构建配置,OpenHPC 为每个所需的编译器/MPI 排列交付独特的软件包构建版本。具有特定编译器和 MPI 依赖关系的软件包在软件包名称中添加了这些依赖关系,方式如下
package-<compiler>-<mpi>-ohpc
通过使用 environment modules 加载相应的编译器和 MPI 族,环境变量将指向用户的编译器和 MPI 选择。
支持的编译器族是不同版本的 GNU 编译器套件 或 Intel 编译器,支持的 MPI 族是 Open MPI, MPICH, MVAPICH2 和 Intel MPI。使用这些选项,生成的软件包名称可能是
fftw-gnu7-openmpi-ohpc
OpenHPC 软件包
OpenHPC 将其软件包划分为不同的功能区域,每个区域都包含多个组件
- 配置:Warewulf, xCAT
- 资源管理:Slurm, Munge, PBS Professional
- 运行时:OpenMP, OCR, Singularity
- 数值/科学库:GSL, FFTW, Metis, PETSc, Trilinos, Hypre, SuperLU, Mumps, OpenBLAS, Scalapack
- I/O 库:HDF5, NETCDF, Adios
- 编译器:GCC, LLVM
- MPI 族:MVAPICH2, Open MPI, MPICH
- 性能工具:PAPI, IMB, mpiP, pdtoolkit, TAU, Scalasca, ScoreP, SIONLib
下一个版本 (1.3.3) 计划于 2017 年 11 月发布。与每个新版本一样,将添加新软件包并更新现有软件包。最新版本始终可以从 openhpc.community/downloads/ 获取。
其他资源
OpenHPC 是一项协作的社区努力,欢迎贡献。如果您想了解有关 OpenHPC 的更多信息以及如何贡献,请访问以下资源
- OpenHPC 网站
- GitHub 网站
- 构建服务和社区软件包仓库
- “使用 OpenHPC 进行集群计算”(学术文章)
- 请访问 OpenHPC 展位 并参加我们在 BoF 于 SC'17 2017 年 11 月 13-16 日
评论已关闭。