CRAFT: A library for easier application-level Checkpoint/Restart and Automatic Fault Tolerance
为了有效地使用未来几代超级计算机,容错和功耗是高性能计算(HPC)社区预期的两个主要挑战。检查点/重启(Checkpoint/Restart,CR)一直是并且仍然是处理硬故障的最广泛使用的技术。应用程序级的CR是最有效的CR技术在开销效率方面,但它需要大量的实现工作。这项工作提出了我们的C++为基础的库CRAFT(检查点重新启动和自动容错),它有两个目的的实现。首先,它提供了一个可扩展的库,大大简化了应用程序级检查点的实现。最基本和最常用的检查点数据类型已经是CRAFT的一部分,可以直接使用。该库可以很容易地扩展以添加更多的数据类型。为了减少开销,该库提供了一个内置的异步检查点机制,并且还支持用于节点级检查点的可扩展检查点/重启(SCR)库。其次,CRAFT为基于用户级故障缓解(ULFM)的动态进程恢复提供了一个更简单的接口,大大降低了故障检测和通信恢复机制的复杂性和工作量。通过同时使用这两种功能,应用程序可以编写应用程序级检查点,并通过非常有限的编程工作从进程故障中动态恢复。本工作详细介绍了我们图书馆的设计和使用。使用几个基准彻底分析了相关的开销。
2017-08-07 cs.DC
CRUM: Checkpoint-Restart Support for CUDA's Unified Memory
统一虚拟内存(UVM)是最近在最新的NVIDIA GPU上推出的。通过软件和硬件支持,UVM在整个异构节点上提供一致的共享内存,并在适当时迁移数据。旧的CUDA编程风格类似于旧的大内存UNIX应用程序,用于直接加载和卸载内存段。较新的CUDA程序已经开始利用UVM,其原因与UNIX应用程序很久以前切换到假定存在虚拟内存的情况下的优越可编程性相同。因此,UVM的检查点将变得越来越重要,特别是随着NVIDIA CUDA继续获得更广泛的普及:最新列表中的前500台超级计算机中有87台是GPU加速的,目前每年有10台基于GPU的超级计算机。一个新的可扩展的检查点机制,CRUM(统一内存的检查点重启),演示了跨多个计算机节点的混合CUDA/MPI计算。CRUM支持快速、分叉的检查点,它主要与CUDA计算重叠,并将检查点映像存储在稳定存储中。使用CRUM的运行时开销平均为6%,分叉检查点的时间比传统的同步检查点少40倍。
2018-08-01 cs.DC
Optimized Memoryless Fair-Share HPC Resources Scheduling using Transparent Checkpoint-Restart Preemption
超级计算系统中常用的资源管理方法通常包括硬划分、封顶和配额分配。这些方法,尽管它们的“缺点”,有一些已知的严重缺点,包括未优化利用昂贵的设施,偶尔仍然需要动态重新调度和重新分配的资源。因此,这些方法涉及糟糕的供需管理,而不是最终提高系统利用率和生产力的自由市场。在这项工作中,我们提出了新的优化无内存公平共享HPC资源调度使用透明的检查点重启抢占,其中社会福利增加使用免费的成本可互换的专有占有计划。因此,我们在资源分配的公平性方面永久保持现状,同时最大限度地提高所有用户在更长时间内实现更多CPU和CPU小时数的能力,而无需任何非直接成本,处罚或额外的人为干预。
2021-02-25 cs.DC
Transparent Checkpoint-Restart over InfiniBand
InfiniBand广泛用于低延迟、高吞吐量的集群计算。作为分布式检查点的一部分,保存InfiniBand网络的状态一直是研究人员面临的一个长期挑战。由于缺乏解决方案,典型的MPI实现包括自定义检查点重启服务,该服务“拆除”网络,检查每个节点,就好像该节点是一台独立的计算机,然后再次重新连接网络。我们提出了直接支持InfiniBand的透明的、系统启动的检查点重启的第一个示例。新方法独立于任何特定的Linux内核,因此简化了当前使用基于内核的模块(如BLCR)的实践。这种直接方法产生的检查点比使用检查点重启服务更快。这种方法的通用性不仅通过MPI计算的检查点来显示,而且还通过不使用MPI的本机UPC计算(Berkeley Unified Parallel C)来显示。可扩展性通过在128个节点(每个节点16个核心)上检查2,048个MPI进程来显示。此外,还启用了一种经济高效的调试方法,其中将来自基于InfiniBand的生产集群的检查点映像复制到基于以太网的本地集群,在那里可以重新启动检查点映像,并可以将交互式调试器附加到检查点映像。这项工作基于扩展DMTCP(分布式多线程检查点)检查点重启包的插件。
2014-01-30 cs.DC cs.OS
Checkpoint/restart approaches for a thread-based MPI runtime
在大规模运行大规模并行程序时,容错一直是一个重要的话题。从统计数据来看,硬件和软件故障预计会更频繁地发生在收集数百万计算单元的系统上。此外,作业越大,崩溃浪费的计算时间就越多。在本文中,我们描述了我们的MPI运行时所做的工作,使透明和应用程序级的检查点机制。与MPI 4.0用户级故障缓解(ULFM)接口不同,我们的工作仅针对检查点/重启,而忽略了其他功能,如弹性。我们展示了如何现有的检查点方法可以实际应用到基于线程的MPI实现足够的运行时协作。两个主要贡献是在透明C/R期间保持高速网络性能,以及由于专用的用户级调度器支持而超额订阅检查点数据复制。这些技术在MPI基准测试(如IMB,Lulesh和Heatdis)上进行了测量,并讨论了相关的开销和权衡。
2019-06-12 cs.DC
Dependency-Aware Rollback and Checkpoint-Restart for Distributed Task-Based Runtimes
随着大型计算平台中计算节点的增加,节点故障也会相应增加。许多基于应用程序的检查点/重启(C/R)技术已被提出用于MPI应用程序,以减少平均故障间隔时间。然而,即使在采用C/R技术的高度优化的MPI应用程序中,作为恢复的一部分的回滚仍然是主要成本。在消息传递运行时中,通过检查点继续执行(即减少回滚)是可能的,但设计和实现起来极其复杂。我们的工作重点是基于任务的运行时,任务的依赖关系是显式的,消息传递是隐式的。我们看到了减少这种运行时回滚的机会:我们在回滚中探索任务依赖性,我们称之为依赖性感知回滚。我们还设计了一种新的C/R技术,它受任务递归分解的影响,并将其与依赖感知回滚相结合。我们期望依赖感知回滚在节点故障的情况下取消和重新计算更少的任务。我们描述,实施和验证所提出的协议在模拟器中,这证实了这些期望。此外,我们始终观察到更快的整体执行时间的依赖性感知回滚故障的存在下,尽管减少任务取消并不能保证减少整体执行时间。
2017-05-29 cs.DC
Performance Evaluation of an Algorithm-based Asynchronous Checkpoint-Restart Fault Tolerant Application Using Mixed MPI/GPI-2
当前大数据领域最大的挑战之一是缺乏在可接受的时间内处理大量信息的能力。这项工作的目标是通过探索和比较在商品集群架构上实现的分布式计算框架,确定使用典型的大数据工具来解决高性能计算问题是否有用:实验将取决于使用Apache Spark等工具所需的计算时间。这将与“等效的更传统”的方法进行比较,例如在分布式文件系统(如HDFS(Hadoop分布式文件系统))上使用带有MPI的分布式内存模型和创建接口以封装此文件系统功能的本机C库,以及使用GASPI协议的GPI-2实现及其内存检查点库为应用程序提供容错功能。更准确地说,我们选择了K-means算法作为实验,它将在可变大小的数据集上运行,然后我们将比较两种方法的计算运行时间和时间弹性。
2018-05-06 cs.DC
An unsupervised machine-learning checkpoint-restart algorithm using Gaussian mixtures for particle-in-cell simulations
Los Alamos National Laboratory(洛斯阿拉莫斯国家实验室)
提出了一种基于高斯混合粒子(PIC)算法的无监督机器学习检查点重启(CR)有损算法。该算法的特点是一个粒子压缩阶段和粒子重建阶段,在连续的粒子分布函数的构造和重采样,分别。为了保证CR过程的保真度,我们确保在网格上的任何地方都能精确地保留压缩和重建阶段的电荷、动量和能量。我们还确保了粒子重构后高斯定律的保持。其结果是,GM CR算法被证明提供了一个干净的,保守的重启能力,同时可能提供数量级的节省输入/输出的要求。我们证明了该算法使用最近开发的能量和电荷守恒PIC算法的物理问题的兴趣,与压缩因子$\gtrsim75$没有明显的影响的质量重新启动的动态。
2021-03-17 cs.DC cs.LG
Optimizing Checkpoint-Restart Mechanisms for HPC with DMTCP in Containers at NERSC
本文基于NERSC Perlmutter系统,研究了在容器内外使用DMTCP优化HPC检查点-重启机制,展示了其在复杂计算中的高效性、可靠性及跨环境的一致性能。
2024-07-26 cs.DC cs.SE
Towards Transparent Checkpointing with AI-driven Code Generation
Argonne National Laboratory(阿贡国家实验室);University of Chicago(芝加哥大学)
研究使用大型语言模型自动为MPI科学应用生成检查点/重启代码,平均50分钟完成,开销可忽略,恢复效率与人工实现相当。
2026-07-01 cs.DC
System-level Scalable Checkpoint-Restart for Petascale Computing
对于即将到来的兆兆级的容错一直是一个活跃的研究领域。容错策略的组成部分之一是检查点。Petascale级别的检查点是通过一种新的机制来演示的,该机制用于虚拟化InfiniBand UD(不可靠数据报)模式,并用于在每个基于UD的发送上更新远程地址,因为缺乏固定的对等体。请注意,需要InfiniBand UD来支持现代MPI实现。从目前的结果到未来的SSD存储系统的外推提供了证据,目前的方法将保持实用的艾级一代。这种透明的检查点方法使用DMTCP检查点包的框架进行评估。结果显示为HPCG(线性代数),NAMD(分子动力学),和NAS NPB基准。在32,752个CPU内核上测试了多达32,752个MPI进程,演示了在11分钟内使用38 TB内存占用进行计算的检查点操作。将系统开销降低到1%以下。该方法还评估了三个广泛使用的MPI实现。
2016-09-24 cs.DC cs.OS
Use of checkpoint-restart for complex HEP software on traditional architectures and Intel MIC
Northeastern University(东北大学);SLAC National Accelerator Laboratory(SLAC国家加速器实验室);Princeton University(普林斯顿大学)
本文探讨了检查点重启技术在HEP工作流中的应用,测试了CMS软件、Geant4-MT和DMTCP包,分析了单线程和多线程应用在传统架构和Intel MIC上的性能与可扩展性。
2014-01-22 cs.DC cs.NA hep-ex
MANA for MPI: MPI-Agnostic Network-Agnostic Transparent Checkpointing
在高性能计算(HPC)中,并行检查点MPI的容错和负载均衡是一个长期存在的问题。由于需要在所有网络互连上为MPI实现的所有组合提供检查点重启服务,因此问题变得复杂。这项工作提出了MANA(MPI无关的网络无关的透明检查点),一个单一的代码库,支持所有的MPI实现和互连组合。不可知属性意味着可以在一个MPI实现下(可能通过TCP)对MPI应用程序进行检查点,然后在每个节点具有不同数量CPU内核的群集上通过InfiniBand在第二个MPI实现下重新启动。这种技术是基于一种新的“分裂进程”的方法,它使两个独立的程序共存于一个单一的进程与一个单一的地址空间。这项工作克服了两个最广泛采用的透明检查点解决方案,BLCR和DMTCP/InfiniBand,需要单独修改每个MPI实现和/或底层网络API的限制。运行时开销被发现是微不足道的检查点重新启动在一个单一的主机,当比较一个本地MPI计算迁移到一个远程集群对一个普通的MPI计算本地运行在同一个远程集群。
2019-04-20 cs.DC cs.OS
MANA-2.0: A Future-Proof Design for Transparent Checkpointing of MPI at Scale
MANA-2.0是一个可扩展的,面向未来的设计,用于基于MPI的计算的透明检查点。它的网络透明性(“网络不可知”)功能确保MANA-2.0将提供一个可行的,有效的机制,在当前和未来的超级计算机上透明地检查MPI应用程序。MANA-2.0是以前工作的增强,原始MANA插入MPI调用,并且是用于生产部署的正在进行的工作。MANA-2.0实现了一系列新的算法和功能,提高了MANA的可扩展性和可靠性,使数千个MPI进程能够透明地检查点重启。MANA-2.0正在NERSC的Cori超级计算机上使用Cray GNI网络上的Cray MPICH库进行测试,但它被设计为在任意网络上运行的任何标准MPI上工作。选择了两个广泛使用的HPC应用程序来展示MANA-2.0的增强功能:GROMACS,一个具有频繁点对点通信的分子动力学模拟代码,以及VASP,一个具有频繁MPI集体通信的材料科学代码。也许从MANA-2.0中学到的最重要的一课是一系列用于基于库的转换的算法和数据结构,这些算法和数据结构使MANA-2.0上基于MPI的计算能够可靠地经受住检查点重启转换。
2021-12-10 cs.DC
DMTCP: Transparent Checkpointing for Cluster Computations and the Desktop
DMTCP(Distributed MultiThreaded CheckPointing)是一个用于分布式应用程序的透明用户级检查点包。检查点设置和重新启动演示了20多个知名应用程序,包括MATLAB,Python,TightVNC,MPICH 2,OpenMPI和runCMS。RunCMS在内存中以680 MB的图像运行,其中包括540个动态库,并用于CERN大型强子对撞机的CMS实验。DMTCP透明地检查由许多节点、进程和线程组成的一般集群计算;以及典型的桌面应用程序。在128个分布式核心(32个节点)上,检查点和重启时间通常为2秒,运行时开销可以忽略不计。使用分叉检查点时,典型的检查点时间减少到0.2秒。实验结果表明,在中等规模的集群上,随着节点数量的增加,检查点时间几乎保持不变。DMTCP自动考虑fork、exec、ssh、互斥/信号量、TCP/IP套接字、UNIX域套接字、管道、ptys(伪终端)、终端模式、控制终端的所有权、信号处理程序、打开文件描述符、共享打开文件描述符、I/O(包括读取行库)、共享内存(通过mmap)、父子进程关系、pid虚拟化和其他操作系统工件。通过强调无特权的用户空间方法,从2.6.9到当前的2.6.28的Linux内核之间保持了兼容性。由于DMTCP是无特权的,并且不需要特殊的内核模块或内核补丁,因此DMTCP可以作为检查点重启模块在一些更大…
2009-02-24 cs.DC cs.OS
LLM Agents as Resilience Engineers for Scientific Applications
Argonne National Laboratory(阿贡国家实验室);University of Chicago(芝加哥大学)
该研究探究前沿LLM编码智能体能否自动化HPC科学应用的检查点/重启实现,构建含16个MPI应用的基准,采用无人工干预流水线生成41个有效实现,验证其可行性并指出模块化碎片化状态的局限。
2026-10-09 cs.DC
Extending the OpenCHK Model with Advanced Checkpoint Features
有效使用超大规模系统的主要挑战之一是减轻故障的影响。应用程序级别的检查点/重启(CR)方法在生产力、健壮性和性能之间提供了最佳平衡。有许多解决方案在应用程序级别实现CR。它们都提供高级I/O功能,以最大限度地减少CR引入的开销。尽管如此,在可编程性和灵活性方面仍有改进的空间,因为最终用户必须使用低级API手动序列化和重新序列化应用程序状态,修改应用程序流以考虑重新启动,或者每当后端库更改时重写CR代码。在这项工作中,我们提出了一组编译器指令和条款,允许用户以一种简单的方式指定CR操作。我们的方法支持所有CR库提供的通用CR功能。但是,它也可以扩展以支持仅在某些CR库中可用的高级功能,例如差分检查点,HDF 5格式的使用以及使用容错专用线程的可能性。我们的评估结果显示,可编程性有了很大的提高。平均而言,我们分别将FTI、SCR和VeloC的代码行数减少了71%、94%和64%,并且与直接使用后端库相比,使用我们的解决方案没有额外的开销。最后,可移植性得到了增强,因为我们的编程模型允许使用任何后端库而无需更改任何代码。
2020-07-01 cs.DC
To Repair or Not to Repair: Assessing Fault Resilience in MPI Stencil Applications
本文提出基于 User Level Fault Mitigation 扩展和 Legio 框架的故障弹性方法,在 MPI 模板应用中通过仅执行未失败进程以牺牲精度换取快速恢复,实验证明其产出的结果可用于科研。
2024-10-11 cs.DC
Architectural Foundations for Checkpointing and Restoration in Quantum HPC Systems
Kent State University(肯特州立大学);Saint Louis University(圣路易斯大学);University of Florida(佛罗里达大学);University of Central Florida(中佛罗里达大学)
本文提出了一种基于动态电路技术的量子HPC系统检查点与恢复机制,通过控制流和算法状态管理实现容错执行,适用于变分本征求解器等迭代算法。
2026-02-10 cs.DC quant-ph
Energy-efficient localised rollback after failures via data flow analysis
Exascale系统每小时都会出现故障。HPC程序员主要依赖应用程序级检查点和全局回滚来恢复。近年来,减少回滚进程数量的技术已经通过消息日志记录实现。然而,基于日志的方法有弱点,例如依赖于MPI实现中的复杂修改,以及在一般情况下可能需要完全重启的事实。为了解决所有基于日志的机制的局限性,我们返回到仅检查点的机制,但提倡数据流驱动的恢复(DFR),一个根本不同的方法,依赖于分析的数据流的迭代代码,和众所周知的概念的数据流图。我们证明了DFR的MPI模板代码的有效性,以优化回滚,并减少10- 12%的整体能源消耗的空闲节点在本地化回滚。我们还提供了大规模的估计DFR的节能相比,全球回滚,其中模板代码增加为n平方的过程计数n。
2018-06-05 cs.DC