查看原文
其他

探索 DataLib 的创新技术:高性能计算的存储和I/O软件

常华Andy Andy730 2024-03-16
Source: Rob Farber, DATALIB INNOVATES WITH SOME OF THE MOST SUCCESSFUL STORAGE AND I/O SOFTWARE IN THE DOE COMPLEX, May 12, 2023

“存储世界已经发生了变化,”DataLib项目的首席研究员、高级计算机科学家和阿贡国家实验室的研发负责人Rob Ross观察到。“认识到这一点,百万兆次级计算项目(ECP,Exascale Computing Project)的DataLib努力是为了开发软件,帮助科学家使用存储和大量数据作为其活动的一部分。Ross 解释说:“DataLib 小组成员负责 [美国能源部 (DOE)] 综合体中一些最成功的存储和 I/O 软件,因为他们决定超越传统的检查点并重新启动,并将存储视为超越传统文件系统的服务。存储是[高性能计算(HPC)]的支柱。这种新的思维方式反映在对DataLib的许多ECP依赖中。DataLib 包含三组用户:应用程序、设施和软件团队。

“存储世界已经发生了变化。认识到这一点,ECP的DataLib努力开发软件,帮助科学家使用存储和大量数据作为其活动的一部分。DataLib 组成员负责 DOE 综合体中一些最成功的存储和 I/O 软件,因为他们决定超越传统的检查点并重新启动,并将存储视为超越传统文件系统的服务。存储是 HPC 的支柱。这种新的思维方式反映在DataLib上的许多ECP依赖中。”— Rob Ross

该团队的出色业绩记录包括 Darshan 项目,这是一个用于观察应用程序 I/O 模式的轻量级表征工具,以及 Mochi 工具套件,这是一个用于为 HPC 平台构建高性能分布式数据服务的工具包。Darshan在2018年获得了R&D 100奖,Mochi在2021年获得了R&D 100奖。该团队还致力于并行NetCDF(PnetCDF),该模型在气候和天气应用中得到了大量使用。

“该小组采取的前瞻性方法,”Ross 反映道,“对这些存储和 I/O 软件项目的成功以及它们为 HPC 和国家安全社区带来的好处产生了重大影响。影响包括:[1]

  1. 支持和扩展科学家可以用来在其工作的所有不同平台上访问和共享数据的软件包;
  2. 使用工具揭示科学家如何使用他们的数据,从而提供信息来解决设施问题并更好地配置未来的系统;
  3. 使能源部高级科学计算研究(ASCR)计划内的研究人员能够通过DataLib工具构建全新的专业数据服务,以取代太难使用或太慢的工具。

存储即数据服务的演变

“当我们在 2015 年提出 DataLib 工作时,”Ross 回忆道,“我们注意到我们的工作集中在并行文件系统和 I/O 中间件上,这意味着我们主要针对用户关于存储和 I/O 的请求。我们的团队认识到,我们可以通过将数据服务来解决存储问题来拓宽我们的方法,然后组织可以使用它根据需要管理各种不同类型的数据,并且通常考虑到特定目的。”

他继续说道:“存储与数据利用率和硬件密切相关,这两者都变得越来越复杂。为了满足这一需求,我们意识到必须提高对应用程序如何与存储系统交互以及用户如何有效地使用现有工具的认识。面对日益增加的复杂性,我们必须让用户更容易开发新工具,这些工具可以更好地满足他们的应用程序需求,并可以更好地映射到硬件。数据服务可以适应当前和未来的需求。”

基础设施的社区模型

咨询和研究齐头并进。Ross指出,自2000年以来,该团队一直在该领域工作并跟踪应用程序很长时间。他观察到,“我们不断与研究团队合作,了解他们的问题(既帮助他们又帮助我们),并利用这些互动来推动未来的研究和软件工作。一个例子是Mochi,其动机是认识到需要新的数据服务和帮助开发这些服务的工具集。根据Ross的说法,“传统上,创建这些服务花费的时间太长了。HPC社区不能等待十年的下一个Lustre。”

“我们不断与研究团队合作,了解他们的问题(帮助他们和我们),并利用这些互动来推动未来的研究和软件工作。Mochi就是一个例子,其动机是认识到需要新的数据服务和一套工具来帮助开发这些服务。传统上,创建这些服务花费的时间太长。HPC 社区不能等待十年的下一个 Lustre。”— Rob Ross

外联极为重要。DataLib 团队利用社区模型将他们积累的所有知识提供给供应商、设施和用户。“社区模式补充了我们的努力,”Ross观察到。“为了使我们的研究团队有效,他们需要一只脚参与部署和应用,另一只脚在应用研究和开发中。这为美国能源部、科学办公室和开放的 HPC 社区(包括学术和商业)提供了显著的好处。很简单,如果无法从存储中访问数据,则无法快速计算。Ross还指出,通过社区模式可以实现显著的安全优势,鉴于全球互联网接入无处不在,这一需求变得越来越紧迫。这种方法反映在其他关键的基础设施工作中,如文章“PETSc 社区是基础设施”中所述。

此外,该团队还调查了他们的用户,为Mochi举行了季度会议,在ECP年会上举办了会议,并在Argonne极端规模计算培训计划和高性能计算,网络,存储和分析国际会议上组织了全天活动,以分享他们在DataLib工具和更广泛的HPC I/O主题方面的专业知识。此外,该团队还在需要时与用户一对一会面,例如使用 E3SM。

通过示例用例了解 DataLib

DataLib 前瞻性项目可以按用例大致分类,包括文件系统、替代数据模型、原位数据分析、了解工作流性能的数据监控(例如 Darshan)以及构建分布式数据服务的工具包(例如 Mochi)。例如,该团队有条不紊地评估 ECP 中 HDF5(分层数据格式版本 5, Hierarchical Data Format)的使用,并正在构建针对关键用例的新内部 HDF5 后端。

用户级文件系统

文件系统通常是大多数人在考虑存储时首先谈论的事情。通过消除可以序列化存储访问和用户空间的 POSIX 文件系统瓶颈,实现了非凡的性能优势。

最引人注目的努力之一是分布式异步对象存储(DAOS, Distributed Asynchronous Object Store)软件,该软件将用作Aurora Exascale超级计算机上的主要存储机制。虽然 DataLib 团队在 DAOS 的开发中没有发挥核心作用,但该团队正在努力与 DAOS 集成和合作(图 2),这是一个拥有许多合作者的广泛开源项目。

由于这个开源项目的努力,DAOS 软件已经在 HPC 硬件上提供了创纪录的性能。

DataLib团队正在研究DAOS软件,可以通过两种方式访问它:

  1. DAOS 支持通过 (libdfs) 用户空间库从应用程序直接访问存储。HDF5、MPI-IO 和 TensorFlow 等关键 HPC 工具利用了此功能。例如,在 2022 年 ISC 高性能会议上报告的结果表明,在将大型 AI 数据集加载到 TensorFlow 中时,DAOS 的性能优于 Lustre。[2]
  2. DAOS 还支持通过用户空间文件系统挂载点访问数据的传统 HPC 工作负载,这是通过拦截库启用的。在用户空间中运行文件系统可消除大量的操作系统开销,包括内核系统调用不可避免的上下文切换开销,以及 管理内部内核文件系统和块缓存所需的内部操作系统开销。注3]

图2.Aurora DAOS概述

与 POSIX 不同,DAOS 在数据和元数据中实现了另一种宽松的一致性模型,允许 HPC 代码利用可用的并发性。此并发性通过节点本地和嵌入式存储设备在硬件中实现。在内部,DAOS 使用键值架构,避免了许多 POSIX 限制,并通过其低延迟、内置数据保护和端到端数据完整性将 DAOS 与其他存储解决方案区分开来,同时提供更高的单客户端性能。

重要的是,键值架构使 DAOS 完全分布式,没有单点元数据瓶颈,并使节点可以完全控制每个数据集对元数据更新方式的控制。这种高度可扩展的方法特别有利于对小文件、小 I/O 和/或每秒元数据操作数 (IOP/s) 性能至关重要的工作负载。键值方法还可以很好地映射到云,这意味着应用程序代码可以很容易地移动到新平台(包括在云中运行的 HPC 应用程序),并应用于各种不同的问题。

DataLib 团队还与其他文件系统合作,例如 GekkoFS 突发缓冲区临时文件系统和 UnifyFS,因为他们使用 DataLib 组件来构建他们的产品。该团队正在努力改进ROMIO以加快使用UnifyFS的Frontier突发缓冲区硬件上的MPI-IO和HDF5支持。

使用案例:原位分析(In-Situ Analysis)

任何HPC系统上的可视化和分析都面临着最后一英里的问题,只有当人们拥有工具来检查和解释在这些功能强大的机器上创建的数据时,资源的潜力才能实现。原位分析和可视化可以在仿真仍在运行时访问超级计算机上的仿真数据(图 3)。这种方法解决了当前HPC系统上存在的计算与存储的二分法,这种二分法在更强大的超级计算机上将逐渐恶化。例如,新的百万兆次级系统将使计算并发性增加大约 5-6 个数量级,而系统内存和 I/O 带宽只会增长 1-2 个数量级。[4] ECP 正在通过提供原位基础设施的 Cinema 等工具解决这一最后一英里问题和计算到存储的二分法。[5]

图3.原位数据分析概述。[6]

使用案例:数据监控

现代存储使用的复杂性要求能够表征和理解 应用程序 I/O 行为。这对于确保有效使用不断发展且日益复杂的 HPC I/O 堆栈至关重要。没有这些信息,应用程序开发人员只能做出有根据的猜测。更准确地说,I/O 分析工具在帮助开发人员驾驭 I/O 堆栈多层的复杂性以及对象存储和突发缓冲区等 HPC 存储范式的复杂性方面非常宝贵。

创建 Darshan I/O 特征描述工具是为了捕获 HPC 工作负载的 I/O 行为的简明视图。它不需要任何代码更改来检测代码,并且运行时影响可以忽略不计,因此 Darshan 通常“只是保持打开”,这解释了为什么它在 HPC 数据中心广泛部署。

作为 2018 年 R&D 100 奖的获得者,Darshan 使用户和系统管理员能够表征单个作业的 I/O 行为,以便用户可以通过表征作业群来做出更好的调优决策,以更好地了解系统范围的 I/O 堆栈使用情况并优化部署。[7] 有关更多信息,请参阅 Darshan 项目网站(尤其是广泛的出版物列表)、2021 年的演讲“使用 Darsshan 了解应用程序 I/O 行为”和论文“通过连续表征了解和改进计算科学存储访问”。

使用案例:分布式数据服务

Mochi 源于认识到 HPC 存储和 I/O 由并行文件系统主导。这就造成了团队必须根据并行文件系统模型调整其存储使用情况的情况。Mochi允许实例化DataLib团队倡导的数据服务模型。

正如 Ross 所解释的那样,“Mochi 旨在通过鼓励开发针对应用程序和工作流需求量身定制的数据服务的模型来改变文件系统的世界观。利用 Mochi 组件的可重用性存在一个机会,因此实际上比使工作流程适应并行文件系统的典型软件开发要少。”

“Mochi 旨在通过鼓励开发针对应用程序和工作流需求量身定制的数据服务的模型来改变文件系统的世界观。利用 Mochi 组件的可重用性存在一个机会,因此实际上软件开发比使工作流程适应并行文件系统的典型软件开发要少。”—— Rob Ross

Ross 将 DeltaFS 描述为 5000×的性能改进,以突出Mochi的价值。这项工作由卡内基梅隆大学和洛斯阿拉莫斯国家实验室的成员进行,他们利用ASCR研发资金为科学家提供更深入的洞察,以支持库存管理计划。《连线》杂志在“这台模拟炸弹的美国超级计算机打破了世界纪录”中强调了这项工作,包括其世界纪录文件创建率。

DeltaFS 是作为数据服务创建的,旨在帮助研究团队了解第一性原理、动能等离子体矢量-细胞内粒子 (VPIC) 等离子体物理代码的结果。该仿真代码经常在Trinity(ATS-1)等先进技术系统[8]上大规模运行。这些模拟通常模拟数万亿个粒子,需要数月的连续运行时间。Ross 指出:“通过对粒子数据进行原位索引,可以比以前的工作流程快 5000 ×识别感兴趣的粒子轨迹。原位可视化用于分析和可视化生成的仿真数据。”

正如论文“Mochi:为高性能计算环境组合数据服务”中所讨论的,Mochi框架为通信,数据存储,并发管理和组成员资格提供了一种方法和工具,用于快速开发分布式数据服务。Mochi 组件提供可远程访问的构建块,这些构建块已针对现代硬件进行了优化。总之,这些工具使团队能够快速构建满足特定应用程序需求的新服务(图 4)。

图4.Mochi应用领域示例

DeltaFS 项目使用这些组件创建了一个分布式文件系统,该系统作为可自定义的服务在用户空间中运行。专用于 DeltaFS 的资源可以通过应用程序工作流进行定制,以提供足够的元数据性能和原位数据索引。通过使用 VPIC 代码执行 2 万亿粒子模拟,在洛斯阿拉莫斯国家实验室的 Trinity 超级计算机上的 130000 多个 CPU 内核上证明了 DeltaFS 的有效性,如“使用 DeltaFS 扩展嵌入式原位索引”中所述,如图 5 所示。

图5.对于百万兆次级应用程序来说,后处理期间的索引变得越来越耗时。目前最先进的方法避免了后处理,但需要额外的资源来现场处理数据。DeltaFS 的原位索引从使用专用资源转变为使用计算节点上的备用资源。结果是查询速度提高了 3+ 个数量级。

推动存储创新的力量

那么,是什么力量在推动这一创新呢?正如 Ross 所解释的那样,“考虑新的应用程序和外部数据源,如 ML 和 AI,混合应用程序,如模拟代码与 AI 耦合、原位可视化等(图 6)。这些与检查点/重新启动非常不同,后者已广为人知,目前正在使用突发缓冲区硬件进行加速。许多技术变革正在推动这种传统存储视图的扩展。现代应用程序需要不同的优化和复杂的数据布局。它们扩展了帮助 HPC 所需的要求范围。

他继续说道:“克服用户惯性很重要,这意味着接受新的观点。教育很重要,社区模式也很重要。人们需要了解 和应用基于云的存储模型成功案例(例如,对象存储、键值、列存储),因为成本模型现在非常不同。用户不能假设您可以在 I/O 操作完成时等待,也不能假设流式处理 I/O 会比随机访问更快。”

Ross最后指出,“Mochi解决了这些问题。研究原型是一场赌博。我们理解这一点,并正在努力克服用户惯性,同时利用技术创新。我们还在努力确定哪些团队适合使用原型。需要回答的大问题是机会是什么,我们如何利用它?”

图6.了解数据服务和Mochi

除了DeltaFS的成功故事之外,Ross还描述了Mochi为DOE科学和计算平台提供数据服务开发的三种方式。

  1. 科学成就:Mochi使许多DOE计算机科学团队和行业能够通过具有可重用组件的深思熟虑的设计方法更快地构建新的数据服务。
  2. 意义和影响:传统上,数据服务需要多年的开发和产品化。Mochi项目正在缩短这一开发周期,从而使团队能够开发专门满足其需求的服务,同时仍然能够实现重要的组件重用。
  3. 技术方法:Mochi 是使用经过验证的远程过程调用、远程直接内存访问和用户级线程构建的。该团队定义了一种尽可能使用通用组件设计服务的方法,该方法通过可重用组件提供许多典型功能,并启用配置和优化的探索性方法,如 DeltaFS 所证明的那样,该方法在获得对重要问题的科学洞察方面具有显着优势。

近期的工作

DataLib 项目一直在与 ECP ExaHDF 团队进行交互,以使日志结构文件系统技术适应非常流行的分层数据格式版本 5 (HDF5)。HDF5 是领先的超级计算设施中广泛使用的并行 I/O 库,调整并行 I/O 性能可使大量应用程序受益。[9] 正如 Byna 等人在“在并行文件系统上调整 HDF5 子归档性能”中所指出的,并行的日志结构文件系统将应用程序数据重新映射到多个文件的布局中,以便在给定文件系统上提供更好的性能。DataLib 团队也一直在扩充 Darshan,以捕获更多关于 HDF 使用的信息,以提高 HDF 的整体性能。

Darshan最初专注于MPI-IO和POSIX。目前,Darshan 可用于在链接时插入应用程序 I/O 检测(对于静态和动态可执行文件)或在运行时使用 LD_PRELOAD(对于动态可执行文件)。从版本 3.2.0 开始,Darshan 支持使用 LD_PRELOAD 方法检测任何动态链接的可执行文件(MPI 或非 MPI)。10] 在运行时,Darshan 将每个进程的文件访问统计信息记录为应用程序执行。在应用程序关闭期间,将收集、聚合、压缩此数据并将其写入日志文件,然后 Darshan 可以对其进行分析。

HDF5 仪器(从 Darshan 3.2.0 开始可用)可以提供 HDF5 行为的信息显示,例如在 I/O 中花费的平均时间。图 7 显示了两个示例,演示了 POSIX 和 MPI-IO 集合行为在国家能源研究科学计算中心的 Cori 超级计算机上运行的 60 进程(5 节点)3D 网格应用程序中的运行时。在此示例中,Cori 使用 HDF5 写入了大约 1 GB 的累积 H5D 数据。

图7.平均 I/O 示例。测量的 H5 时间包括在 HDF5 文件和数据集接口中花费的时间。(来源 https://www.mcs.anl.gov/research/projects/darshan/wp-content/uploads/sites/54/2021/10/snyder-nersc-data-seminar.pdf)。

使用 HDF5 插件,Darshan 还可以生成雷达图,这是可视化 HDF5 数据集访问的运行时特征的绝佳方法(图 8)。这些绘图可用于帮助设置和/或优化分块参数,以将访问限制为尽可能少的块。

图8.使用HDF5插件,Darshan可以生成雷达图。(来源 https://www.mcs.anl.gov/research/projects/darshan/wp-content/uploads/sites/54/2021/10/snyder-nersc-data-seminar.pdf)。

使用劳伦斯伯克利国家实验室开发的Drishti工具的输出,用户还可以通过检测I/O瓶颈的根本原因,将I/O瓶颈映射到可操作的项目,并指导最终用户调整I/O性能,从Darshan日志中获取有意义的信息。

有关示例问题的更多信息和建议,请参阅 Bez 等人的“Drishti:在 I/O 优化之旅中指导最终用户”和同名的配套演示文稿。

社区回应

总体而言,Ross指出,“社区的反应非常出色。特别是Mochi的吸收令人兴奋。从图9中列出的机构数量可以看出Mochi的采用程度。

图9.社区接受的程度

总结

正如 Ross 所说,“存储是 HPC 的支柱”,这种对存储的新思维方式反映在 DataLib 团队的获奖工作中,旨在推进在 HPC 环境中使用和理解 I/O 的最新技术。此外,该团队正在使用Drishti(由LBL的Jean Luca Bez开发)等工具,以帮助指导用户优化I/O行为。

这项研究得到了百万兆次级计算项目(17-SC-20-SC)的支持,该项目是美国能源部科学办公室和国家核安全管理局的联合项目,负责提供有能力的百万兆次级生态系统,包括软件、应用程序和硬件技术,以支持国家的百万兆次级计算任务。 

Rob Farber 是一位全球技术顾问和作家,在 HPC 和开发机器学习技术方面拥有广泛的背景,他将其应用于国家实验室和商业组织。

[1] https://www.exascaleproject.org/helping-scientists-create-and-use-very-large-volumes-of-data-in-ecp-activities/
[2] https://www.youtube.com/watch?v=TfJf0ayqNto
[3] https://link.springer.com/chapter/10.1007/978-3-030-48842-0_3
[4] https://www.exascaleproject.org/supporting-scientific-discovery-and-data-analysis-in-the-exascale-era/
[5] https://www.exascaleproject.org/highlight/visualization-and-analysis-with-cinema-in-the-exascale-era/
[6] This is a combination of figures from:
Dorier, Matthieu, et al. “Colza: Enabling elastic in situ visualization for high-performance computing simulations.” 2022 IEEE International Parallel and Distributed Processing Symposium (IPDPS). IEEE, 2022.
Ramesh, Srinivasan, Hank Childs, and Allen Malony. “Serviz: A shared in situ visualization service.” 2022 SC22: International Conference for High Performance Computing, Networking, Storage and Analysis (SC). IEEE Computer Society, 2022.
[7] https://www.mcs.anl.gov/research/projects/darshan/wp-content/uploads/sites/54/2021/10/snyder-nersc-data-seminar.pdf
[8] https://www.lanl.gov/projects/trinity/_assets/docs/atcc-policy.pdf
[9] https://escholarship.org/content/qt6fs7s3jb/qt6fs7s3jb.pdf
[10] https://www.mcs.anl.gov/research/projects/darshan/wp-content/uploads/sites/54/2021/10/snyder-nersc-data-seminar.pdf
继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存