关于 MPI-IO,你该知道的
在高性能计算中,经常会用到 MPI 或者 MPI-IO,那 MPI 和 MPI-IO 到底是什么呢?
MPI(Message Passing Interface),是开发者们在高性能计算程序中,用于在参与计算的不同 CPU、或服务器节点之间进行消息传递的一组规范或接口,通过这组接口,能帮助开发工程师们在不同的计算平台上快速编写可跨平台移植的并行计算程序,提升开发效率。基于 MPI 的规范和接口,业界有不同的 MPI 实现,如 OpenMPI 等。在高性能计算的世界中,除了计算,还必须有数据读写的支撑,所以除了 MPI,还需要有一组跨计算平台的、可移植的、并行数据读写接口,这就是 MPI-IO 设计的初衷:让 IO 能够像消息传递(MPI)那样,通过标准的接口实现并行的数据读写访问。
说到 IO 接口,我们可以用下图来描述高性能计算程序是如何通过系统接口来访问数据的:
整个 IO 软件栈为用户和开发工程师们提供了标准的编程接口,以便大家在不需要关心底层存储硬件细节的情况下,通过标准的方式访问数据。
基础 IO 接口
整个 IO 栈中的最底层的接口是 POSIX 接口,它涉及最基本的文件操作,如 open、close、read、write、stat 等。POSIX HPC IO 扩展的设计目的,是提高 POSIX 在大规模 HPC 环境中的性能,有意思的是,在大规模 HPC 环境中,对数据访问的性能要求有时会超过对数据一致性的要求。例如,相对于 POSIX 相当严格的一致性语义而言,HPC IO 扩展对一致性的要求会显得放松一些。一般来说,大多数普通应用程序的 API 都是在 POSIX 语义之上构建的。
在整个 IO 栈中,最底层的是文件系统本身。文件系统管理着应用程序如何对硬件资源进行访问,同时,文件系统实现了 POSIX API 所需的功能。文件系统有两个极为关键的角色:
组织和维护文件命名空间
存储文件内容及文件的附加属性
在 HPC 环境中,我们通常可能会用到网络文件系统(NFS)和并行文件系统。NFS 必须解决的两个问题是:
NFS Server 如何协调多个客户端共享访问数据
在横向扩展的存储系统中,协调多个服务器的文件操作
标准的 NFS Server 通常只提供相当有限的并行访问能力,即单个客户端通过单一访问入口来访问数据,因此在 HPC 中使用并行 IO 策略时,难以提供足够高的性能。因此,在大型并行计算应用中,通常不使用 NFS 来进行数据访问。并行文件系统通常将单个文件数据分布在多个存储服务器上,而运行在多个计算节点上的并行应用程序的多个任务,经常对单个文件同时发起并发访问请求。并行文件存储系统可以通过并行的多个 IO 访问请求,为单个文件提供高水平的读/写带宽。
MPI-IO 中间件
在 HPC 系统中,IO 软件栈的中间件通常由 MPI-IO 的软件类库提供。应用程序可以通过使用 MPI-IO 提供的缓存和数据过滤技术,来整体提升数据访问性能,例如,ROMIO 就是 MPI-IO 标准中比较常见的实现。
上层 IO 库
IO 栈中还包括更高级别的一些类库,这些类库的 API 有助于工程师以更灵活的方式表达科学模拟计算,例如多维数据、标签和标记、非连续数据和分类数据。高性能计算程序的读写操作基于 MPI-IO 层之上,可以充分利用 MPI-IO 对数据读写的优化特性。这些上层 IO 类库甚至可以实现数据的可视化和简单的分析功能,同时能够在不同平台上实现移植,从而让这些高性能应用程序可以快速地在不同平台上运行。HDF5 和 NetCDF 是目前使用较多的上层 IO 类库。在过去几年中,也有不少 HPC 用户开始选择 PnetCDF 和 ADIOS 来编写并行 IO 程序。
上面介绍的类库和接口都使用共享文件系统的方式实现并行 IO,允许多个进程写入同一逻辑文件。
简单而言,MPI-IO 利用了 MPI 的消息传递机制,基于 POSIX 语义,提供了一套为高性能计算访问数据的接口规范,不同的 MPI-IO 类库提供了不同的 MPI-IO 实现,而 MPI-IO 的实现的核心,是底层文件系统中各种 POSIX 语义的支持。YRCloudFile 对 POSIX 语义的全面支持,也可以为不同的 MPI-IO 类库提供对底层文件系统的访问,从而支持高性能计算的各种应用。
关于焱融科技
焱融科技是一家以软件定义存储技术为核心竞争力的高新技术企业,在分布式存储等关键技术上拥有自主知识产权,是高性能文件存储和容器存储的领导者。焱融科技核心产品 YRCloudFile 在全球 IO500 性能测试中,进入世界前六。同时,YRCloudFile 是国内首个进入 CNCF Landscape 的容器存储产品。焱融科技针对各行业业务特性,打造个性化行业解决方案,提供一站式的产品与服务。焱融科技系列产品已服务于人工智能、金融、政府、制造业、互联网等行业的众多客户。了解更多焱融科技信息,请访问官网www.yanrongyun.com。
版权声明: 本文为 InfoQ 作者【焱融科技】的原创文章。
原文链接:【http://xie.infoq.cn/article/44a8f3c02d2982a241afa9a0a】。
本文遵守【CC BY-NC-ND】协议,转载请保留原文出处及本版权声明。
评论