0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何设计并实现面向非易失内存的MPI-IO接口优化

智能计算芯世界 来源:智能计算芯世界 作者:智能计算芯世界 2022-10-09 10:53 次阅读

摘要:在高性能计算环境中,MPI应用多个计算节点同时访问底层存储系统文件时,其I/O开销受到访问模式和外存设备性能的影响。针对MPI应用访问文件的特征,利用非易失内存高带宽、低时延、可字节寻址、数据可持久化等优势,提出面向非易失内存的MPI-IO接口优化方案;对文件数据建立分布式的缓存并维护持久性的元数据、对进程间数据传输策略进行优化,使应用可以有效管理、利用非易失内存设备,保持缓存数据一致有效。

为了实现 对非易失内存的管理与利用、对文件数据缓存的管理与访问,本文设计并实现了面向非易失内存的MPI-IO接口优化(NVMPI-IO)。本文的工作主要包括:

● 修改MPI-IO接口,截取应用对底层共享文件系统的访问,并将其转化为对计算节点内或计算节点之间的非易失缓存的访问;

● 在非易失内存中建立并维护缓存数据,使计算节点之间的缓存一致且有效,使应用失效重启后可以快速地从非易失内存中恢复有效数据;

● 通过多种优化,降低维护、访问缓存的开销;

● 最后给出一个原型系统,并对其进行实验,实验表明,此系统可以有效地管理、应用非易失内存,并使MPI应用获得性能提升。

使用NVMPI-IO,MPI应用无须进行修改,即可通过MPI-IO中间件将非易失内存作为数据缓存,实现对文件缓存的分布式访问,从而减少I/O开销,并减轻共享文件系统的负载;同时,在非易失内存中维护元数据,使程序在崩溃重启后可以快速恢复数据,并继续运行。

MPI应用的文件访问模式

MPI是基于消息传递的并行编程模型,可使多个节点中的多个进程合作完成同一个计算任务,达到并行加速的目的。

MPI被广泛地应用在科学研究与工程仿真中,常见的MPI实现包括Intel MPI、OpenMPI、MPICH等。使用MPI的应用在访问文件时显示出以下访问特征。

● 多个进程同时访问同一文件的不同部分。研究物理模型或工程结构的MPI应用在进行计算前,首先需要准备模型文件,多个进程将同时利用模型文件上的数据进行计算,如每个进程读取多维矩阵的不同部分;进程间按需通信,并将计算结果写回文件的相应位置。

● MPI-IO使用聚合I/O与数据筛选技术,将多个进程需要的大量小粒度数据聚合成少量的大粒度数据,避免了小粒度的文件数据访问。

● MPI标准不对文件数据进行缓存。MPI应用在访问文件时可能对同一文件进行多次读写,且每次读写的位置可能不一致;同时,多个进程对文件的并行访问容易使节点内缓存失效;内存的空间有限,而工程模型的数据量可根据工程的精度呈指数型增大,将大量的文件数据缓存到内存可能影响计算效率;在允许直接输入输出(direct I/O)的文件系统(如XFS、Lustre)中,MPI建议使用直接输入输出,以避免操作系统的缓存。

● MPI应用应周期性地写出检查点(checkpoint)文件。大型工程仿真项目可能需要多个节点同时长时间运行,若其中某个节点出现故障导致作业失败,仿真项目需要重新进行;为了避免过多的重复工作,MPI应用应周期性地输出检查点文件,若作业失败,则从最近的有效检查点开始继续计算。同时,检查点文件可用于仿真的可视化输出。写检查点文件时,进程需要暂停计算任务,或将文件数据复制一份,以避免数据不一致。

● MPI应用多进程对文件进行访问有显著的同步特性。数据库、文件系统等会在任何时间点接收来自多个客户端的数据请求,若有分布式的缓存,则需要随时保证数据的一致性;MPI应用的多个进程在访问同一文件时,多个进程同时访问数据,当这一阶段完成后,进程之间需同步进度后再进行下一阶段的访问。MPI应用多进程的同步避免了写后读等数据不一致的问题,可用于简化缓存的设计。

基于上 述的MPI应用的 数 据 访问特征,在计算节点上部署非易失缓存有利于MPI应用的性能提升。利用非易失内存容量大、带宽高、可按字节寻址等特点,在非易失内存上部署缓存层不占用高效的DRAM空间,并将缓慢的文件访问转变为高速的非易失内存访问,可提高MPI应用的性能,同时可减少底层文件系统的负载。

面向非易失内存的MPI-IO接口优化被应用在HPC系统中,其修改MPI-IO模块接口以管理非易失内存的空间及访问形式。NVMPI-IO在MPI运行时初始化,并向操作系统申请NVM空间,当作业结束后释放NVM资源,使NVM资源可供其他应用使用。NVMPI-IO采用简单而有效的方法获得了以下优点。

● NVM设备的非独占使用:NVMPI-IO在运行时,只按需占用NVM的部分空间,其他应用仍可以使用该设备进行其他作业。作业 结 束后,NVMPI-IO立即释放NVM资源,使其可以被更高效地利用。

● 数据一致性:NVMPI-IO随MPI程序的运行而运行,每个MPI进程维护文件的部分缓存数据及相应的元数据;通过维护元数据保证缓存数据的一致性。

● 后台写回:MPI应用周期性地写出checkpoint文件,引起大量的数据写回。NVMPI-IO允许数据的后台写回,可在写回过程同时进行计算任务。

● MPI应用的快速重启:若MPI应用中某个进程失效引起整个程序的崩溃,在NVM设备上仍然存在有效的数据;使用NVMPI-IO,MPI应用重启后,可以在NVM中快速恢复数据,实现快速的重启。

● 高可移植性:MPI可以在不同计算机架构、操作系统上正常工作;NVMPI-IO继承了MPI的高可移植性。同时,NVMPI-IO不修改提供给上层应用的应用程序接口(application programming interface,API),现有的MPI应用不需要做任何修改即可在此系统上运行。

NVMPI-IO部署在HPC系统中,需对HPC系统的软硬件做相应的调整。

NVMPI-IO在传统HPC集群组织中引入NVM设备。在传统HPC集群中,计算节点通过网络与共享的存储系统相连,计算节点从存储系统中获得数据,并对数据进行加工处理;同时,计算节点之间通 过TCP/IP网络或RDMA技术进行通信。如图所示,NVMPI-IO在每个计算节点中部署NVM设备,同时保持共享存储系统的设计不变;节点间通信沿用传统HPC系统中的网络传输,若配备了RDMA网络,则可以使用RDMA直接访问其他节点的非易失内存。

adff44fa-40d9-11ed-96c9-dac502259ad0.png

NVMPI-IO为MPI应用服务,同时也利用了MPI定义的通信过程。一个典型的HPC应用包含多个MPI进程,其中每个进程使用MPI定义的接口与其他进程进行消息传递,使用MPI-IO模块对底层存储系统进行数据访问。本系统保留MPI-IO的聚合I/O与数据筛选优化,这些优化将上层应用需要的小粒度I/O整合成大粒度的I/O,避免了数据的小粒度随机访问。如图所 示,本系统部署在MPI-IO中间件中,截取MPI-IO对文件的系统调用,并 按 需 转发为非易失内存的数据维护、访问。

NVMPI-IO在部署时,首先需要在NVM设备上挂载可以直接访问(direct access,DAX)的文件系统。在NVM设备上挂载DAX文件系统可使应用直接通过指针 访问NVM上的数据。具体地,进程使用内存映射(memory map)技术将文件系统中的文件映射到应用的进程空间中,进程可以通 过 指针直接 修改NVM,而不是修改操作系统的内核缓存(kernel cache)。

此外,NVMPI-IO使用MPI定义的消息传递API与其他节点进行通信,使用POSIX API与底层文件系统进行数据的维护和访问。

审核编辑:彭静

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    7603

    浏览量

    148356
  • 内存
    +关注

    关注

    8

    文章

    2756

    浏览量

    72672
  • 数据缓存
    +关注

    关注

    0

    文章

    21

    浏览量

    6928

原文标题:面向非易失内存的MPI-IO接口优化

文章出处:【微信号:AI_Architect,微信公众号:智能计算芯世界】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    GW1N系列安徽性大时代FPGA芯片成员可靠吗

    。”高云半导体全球市场副总裁兼中国区销售总监黄俊先生表示,“GW1N系列器件可满足消费类电子、视频、安防、工业物联网、有线/无线通信等不同市场的智能连接、接口扩展等需求。通过GW1N系列产品,高云半导体可以向用户提供高安全性、单芯片、低成本、小薄封装等优势的最优化
    发表于 08-30 10:18

    如何存储应用程序中使用的性数据?

    我应该用什么API来存储性数据?我使用CYW43907,手册上说它支持外部闪存。我想知道我是否应该使用WiDeDssFlash写来存储数据,或者我是否可以使用WiDeEddCTyWrand保存
    发表于 11-13 15:19

    如何使用Spartan™-3AN性FPGA入门套件下载程序?

    亲爱;我有Spartan™-3AN性FPGA入门套件,我编写了VHDL程序,用于地址分配到与FPGA芯片接口的两个外部ROM。程序有(16位输入端口)和(16位输出端口),问题是
    发表于 08-22 10:31

    Cypress性SRAM技术

    SRAM的性单元基于SONOS技术。他们利用Fowler-Nordheim隧穿(FN隧穿)的优势通过将电荷捕获在夹层氮化物层中来存储数据。FN隧道技术的主要优势在于,它可以大大提高NV耐久性,
    发表于 04-08 14:58

    性MRAM的基础知识汇总

    MRAM是一种性的磁性随机存储器。它拥有静态随机存储器(SRAM)的高速读取写入能力;以及动态随机存储器(DRAM)的高集成度,而且基本上可以无限次地重复写入。
    发表于 12-10 07:20

    性MRAM基础知识汇总

    MRAM是一种性的磁性随机存储器。它拥有静态随机存储器(SRAM)的高速读取写入能力;以及动态随机存储器(DRAM)的高集成度,而且基本上可以无限次地重复写入。
    发表于 12-16 07:21

    0.13μm性FRAM产品的性能

    0.13μm性FRAM产品的增强的耐久性能
    发表于 02-04 07:15

    32抽头I²C线性数字电位器MAX5432资料推荐

    32抽头I²C线性数字电位器MAX5432资料下载内容主要介绍了:MAX5432引脚功能MAX5432功能和特性MAX5432应用范围MAX5432内部方框图MAX5432极限参数MAX5432典型应用电路
    发表于 04-02 06:37

    可重复编程FPGA的应用有哪些?

    可重复编程FPGA的应用有哪些?
    发表于 05-08 08:17

    128抽头线性变化数字电位器MAX5128资料分享

    概述:MAX5128、单路、线性变化数字电位器,能够实现机械电位器的功能,用简单的2线数字接口取代机械调节。MAX5128具有与分立电
    发表于 05-17 07:50

    双路可变电阻器DS3902相关资料下载

    概述:DS3902是一款双路、(NV)、低温度系数的可变数字电阻,提供256级用户选择。DS3902可以在2.4V至5.5V的宽电源范围内工作,通过I²C兼容的串行接口与该器件通
    发表于 05-17 07:29

    性串行FRAM有哪些优势

    宇芯电子本篇文章提供智能电表或智能电子式电表的概述,并且说明在智能电子式电表的设计中用性串行FRAM而不是使用EEPROM的优势。图1显示的是智能电子式电表的简化框图。非易失性存储器是一个电表
    发表于 07-12 07:26

    如何处理存储在性设备中的内存数据集损坏

    保护您的嵌入式软件免受内存损坏本文的目的是提供一种软件方法,解释如何处理存储在性设备(如小型 EEPROM 或闪存)中的内存数据集损坏
    发表于 12-24 07:27

    求助,如何使用性密钥生成CMAC?

    , 0x00, 0x00, 0x00, 0x01};retVal = loadKey(CSEC_KEY_7, testkey, 1, 1);然后,我从 FLASH 进行调试尝试使用加载的
    发表于 04-10 06:34

    内存有写入限制吗?

    我们正在构建一个设备来测量消耗。电路 ACS712 读取那一刻的消耗量,所以,我需要做一个每秒累加的方法。问题:内存有写入限制,所以我需要使用
    发表于 05-30 08:48