PGMPI: Automatically Verifying Self-Consistent MPI Performance Guidelines
消息传递接口(MPI)是当前大规模并行系统上进程通信最常用的应用程序编程接口。由于现代并行体系结构的规模和复杂性,MPI库的优化变得越来越困难,因为许多因素都会影响通信性能。为了帮助MPI开发人员和用户,我们提出了一种自动的方法来检查MPI库是否尊重集体通信操作的自我一致的性能准则。我们引入了PGMPI框架,通过基准测试来检测违反性能准则的行为。我们的实验结果表明,PGMPI可以查明不希望的,往往是意外的集体MPI操作的性能下降。我们演示了如何克服几个库的性能问题,通过调整各自的集体MPI调用的算法实现。
2016-09-02 cs.DC
Improving MPI Collective I/O Performance With Intra-node Request Aggregation
两阶段I/O是实现集体MPI-IO功能的众所周知的策略。它将调用进程之间的I/O请求重新分配为一种最小化文件访问成本的形式。随着现代并行计算机继续发展到亿亿次时代,这种请求重新分配的通信成本可能会迅速压倒集体I/O性能。从在多个计算节点上运行的并行作业中可以观察到这种效果,每个节点上有大量MPI进程。为了降低通信成本,我们提出了一种新的设计,集体I/O通过增加一个额外的通信层,在同一计算节点内的进程之间执行请求聚合。这种方法可以显着减少重新分配I/O请求时节点间的通信拥塞。我们评估的性能,并与原来的两阶段I/O上的Cray XC 40并行计算机与英特尔KNL处理器进行比较。使用I/O模式从两个大规模的生产应用程序和I/O基准,我们显示了性能提高了29倍,当运行16384 MPI进程在256个计算节点。
2019-07-29 cs.DC
A Survey of Potential MPI Complex Collectives: Large-Scale Mining and Analysis of HPC Applications
本文通过 GitHub REST API 大规模自动挖掘 HPC 应用,系统分析潜在 MPI 复杂集合通信的适用广度与类型,为硬件设计和 MPI 开发提供未来卸载方向的依据。
2023-05-31 cs.DC
Decomposing Collectives for Exploiting Multi-lane Communication
许多现代高性能系统通过提供多于单个通信网络和/或通过具有到网络的多个连接来增加累积的节点带宽。用于集体操作的有效算法和实现,例如,MPI必须明确设计用于这种多通道功能。我们讨论了多通道算法的设计模型,特别是给出了一个配方转换成一个多通道算法,可以有效地使用$k$通道同时任何标准的,单端口的,(流水线)通信树算法。我们首先从\emph{self-consistent performance guidelines}的角度来研究这个问题,并给出简单的,\emph{full-lane, mock-up implementations}的MPI广播,减少,扫描,收集,分散,allgather和alltoall操作,只使用类似的操作,给定的MPI库本身的方式,可以利用多通道的能力。这些实现依赖于将通信域分解为节点和通道的通信器,是MPI集合的成熟且易于使用的实现。与预期相反,在许多情况下,在小型36节点双插槽双通道英特尔OmniPath集群上使用不同的MPI库时,模型实现显示出令人惊讶的性能改进,这表明本机MPI库实现存在严重问题。在许多情况下,我们的全通道实现比相应的MPI集合快两倍以上。我们在更大的维也纳科学集群VSC-3上看到了类似的结果。这些实验表明当前库中MPI集合的改进有相当大的空间,包括更有效地使用多通道通信。
2020-01-15 cs.DC
A Bandwidth-saving Optimization for MPI Broadcast Collective Operation
MPI集体操作的效率和可扩展性,特别是广播操作,在高性能计算应用中起着不可或缺的作用。MPICH是当前广泛使用的MPI软件栈之一,它实现了基于点对点操作的广播操作。根据参数,如消息大小和进程计数,库选择使用不同的算法,例如二项式传播,递归加倍交换或环全对全广播(allgather)。然而,由于内部次优环全聚集算法,MPICH的最新版本中的现有广播设计对于大消息(\textit{lmsg})或具有非二次幂处理计数的中等消息(\textit{mmsg-npof2})不提供良好性能。在本文中,本机广播设计MPICH的基础上,我们提出了一种调谐广播方法与带宽节省考虑迎合\textit{lmsg}和\textit{mmsg-npof2}的情况下。在Cray XC 40集群上,针对不同的数据量和节目量,对原生广播设计和调谐广播设计进行了比较。结果表明,在用户级测试中,\textit{lmsg}和\textit{mmsg-npof2}的调谐广播设计性能提高了2%~ 54%.
2016-03-22 cs.DC
A Multilevel Approach to Topology-Aware Collective Operations in Computational Grids
如何有效地实施集体通信业务受到了广泛的关注。最初的努力产生了基于网络通信模型的“最优”树,该模型假设任何两个进程之间的点对点延迟相等。然而,这种假设在大多数实际环境中是违反的,特别是在异构系统中,如SMP集群和广域“计算网格”,结果是集体操作执行次优。作为响应,最近的工作集中在为集体操作创建拓扑感知树,该集体操作最小化跨较慢通道的通信(例如,广域网)。虽然这些努力具有显著的通信优势,但它们都将网络的视图限制在两层。我们提出了一种基于网络的多层视图的策略。通过创建多级拓扑感知树,我们利用了网络中每一级的通信成本差异。我们使用此策略在MPICH-G2中实现了几个MPI集体操作的拓扑感知版本,MPICH-G2是MPI标准的流行MPICH实现的Globus Toolkit[tm]启用版本。利用MPICH-G2提供的拓扑信息,我们在执行过程中自动构建这些多级拓扑感知树。我们目前的结果表明,我们的多级方法的优势,通过比较它的默认(拓扑不知道)的MPICH和拓扑感知的两层实现提供的实现。
2002-06-24 cs.DC
MPI Advance : Open-Source Message Passing Optimizations
本文提出MPI Advance,一个位于MPI之上的开源库集合,通过优化集合通信、邻域集合通信、分区通信和GPU感知通信,提升任何现有MPI库的底层性能。
2023-09-13 cs.DC
Optimizing Irregular Communication with Neighborhood Collectives and Locality-Aware Parallelism
本文基于 MPI 4 持久化邻域集合通信 API,提出局部性感知聚合等不规则通信优化方法,并在 BoomerAMG 的稀疏矩阵-向量乘法中实现最高 1.32 倍加速。
2023-06-02 cs.DC
Lightweight MPI Communicators with Applications to Perfectly Balanced Quicksort
MPI使用通信者的概念来连接进程组。它为通信者提供了非阻塞的集体操作,以重叠通信和计算。灵活的算法需要灵活的通信器。例如,在一个示例中,一个过程可以同时处理不同过程组中的不同子问题,可以创建新的过程组,或者可以改变过程组的成员。根据通信器的数量,通信器创建的时间会大大增加算法的运行时间。此外,一个新的通信器将所有进程作为通信器创建例程阻塞集体操作。我们提出了RBC,基于MPI的通信库,创建基于范围的通信在恒定的时间没有通信。这些RBC通信器支持(非)阻塞点对点通信以及(非)阻塞集体操作。我们的实验表明,该库减少了400多个因素,而集体操作的运行时间保持不变,以创建一个新的通信器的时间。我们提出Janus快速排序,分布式排序算法,避免任何负载不平衡。我们改进了该算法的性能的一个因素,15适度的输入,通过使用红细胞通信。最后,我们讨论了不同的方法,使非阻塞(本地)通信创建轻量级(范围为基础的)通信到MPI。
2018-03-01 cs.DC
ZCCL: Significantly Improving Collective Communication With Error-Bounded Lossy Compression
针对MPI集合通信中消息过大导致性能瓶颈的问题,提出ZCCL,利用误差有界有损压缩减小消息大小,定制fZ-light压缩器并集成到多种集合操作,实验显示性能提升1.9-8.9倍。
2025-02-25 cs.DC
Optimized Broadcast for Deep Learning Workloads on Dense-GPU InfiniBand Clusters: MPI or NCCL?
密集多GPU系统最近在HPC领域获得了很多关注。传统上,MPI运行时主要是为具有大量节点的集群设计的。然而,随着MPI+CUDA应用程序和CUDA-Aware MPI运行时(如MVAPICH 2和OpenMPI)的出现,为这种密集的多GPU节点解决有效的通信方案变得非常重要。这与Caffe和Microsoft CNTK等深度学习框架带来的新应用程序工作负载相结合,由于训练阶段GPU缓冲区的消息通信量非常大,因此会带来额外的设计限制。在这种情况下,已经提出了像NVIDIA NCCL这样的专用库,用于在密集GPU系统上进行基于GPU的集体通信。在本文中,我们提出了一种用于MPI_Bcast集体操作的流水线链(环)设计,以及MVAPICH 2-GDR中的增强集体调优框架,该框架可以实现高效的节点内/节点间多GPU通信。我们为建议的MPI_Bcast方案提供了深入的性能前景,并对NVIDIA NCCL Broadcast和基于NCCL的MPI_Bcast进行了比较分析。与基于NCCL的解决方案相比,MVAPICH 2-GDR的拟议设计分别使节点内和节点间广播延迟提高了14倍和16.6倍。此外,所提出的设计提供了高达7%的改进,基于NCCL的解决方案的数据并行训练的VGG网络上的128个GPU使用Microsoft CNTK。
2017-07-28 cs.DC
Optimal, Non-pipelined Reduce-scatter and Allreduce Algorithms
针对处理器网络中的reduce-scatter集合操作,提出一种在⌈log₂p⌉轮次内完成且各处理器收发归约p-1个元素块的最优算法,结合allgather得allreduce容量最优算法,可用于MPI相关操作,还可作为all-to-all通信模板。
2025-02-13 cs.DC
Extending the Message Passing Interface (MPI) with User-Level Schedules
可组合性是MPI长期持续成功的七个原因之一。通过将MPI的操作与用户级操作组合来扩展MPI,可以提供与MPI的进度引擎和完成通知方法的有用集成。然而,MPI(广义请求)中现有的可扩展性机制并没有得到广泛的利用,并且具有显著的缺点。MPI可以通过预定的通信原语来推广,例如,通过利用现有MPI-3非阻塞集合和即将到来的MPI-4持久和分区API的实现技术。非平凡调度在一些MPI库中内部使用;但最终用户无法访问它们。基于消息的通信模式可以构建为MPI之上的库。这样的库可以具有可比的实现成熟度和潜在的比MPI库代码更高的性能,但不需要MPI实现的深入知识。库可以提供跨MPI实现边界的性能可移植接口。使用相同的进度引擎组合其他用户定义操作的能力使各种通用HPC库受益。我们提出了一个MPI计划的定义:一个用户级的编程模型,适合于创建持久的集体通信组成的新的应用程序特定的序列的用户定义的操作管理的MPI和完全集成的MPI进度和完成通知。提出的API为涉及用户定义操作的可扩展通信计划提供了标准化的途径。我们的方法有可能引入事件驱动的编程到MPI(超越工具接口),虽然连接时间表与事件包括未来的工作。这里描述的早期性能结果是有希望的,并表明强大的重叠潜力。
2019-09-25 cs.DC
Collective Vector Clocks: Low-Overhead Transparent Checkpointing for MPI
针对分布式计算中支持跨进程集合操作的快照获取难题,提出基于集合向量时钟的网络无关透明检查点方案,避免了现有方案的移植成本与额外流量问题,且支持非阻塞集合操作,实验验证其运行时开销低。
2023-10-06 cs.DC
Efficient Embedding of MPI Collectives in MXNET DAGs for scaling Deep Learning
IBM T J Watson Research Center(IBM托马斯·J·沃森研究中心)
高性能计算基础设施(如GPU和CPU集群)的可用性推动了分布式学习系统的发展。深度学习框架将神经网络表示为DAG,并在GPU等计算资源上执行这些DAG。在本文中,我们提出了有效的设计嵌入MPI集体操作到数据并行DAG。不正确的设计很容易导致死锁或程序崩溃。特别是,我们展示了三种设计:漏斗,并发通信和依赖链使用MPI集体与DAG。这些设计通过允许与其他任务的并发执行来自动地实现计算与通信的重叠。我们直接将这些设计实现到MXNET的KVStore API中。这使我们能够直接利用其余的基础设施。使用ImageNet和CIFAR数据集,我们展示了我们设计的潜力。特别是,我们的设计可扩展到256个GPU,ImageNet 1K数据集的历元时间低至50秒。
2018-02-20 cs.DC cs.LG
Concepts in Practice: C++ MPI Bindings for the HPC Ecosystem - From a Standardizable Core to a Composable Interface
Karlsruhe Institute of Technology(卡尔斯鲁厄理工学院)
提出基于C++20概念的MPI绑定分层架构,核心层标准化数据缓冲区与过程包装,上层KaMPIng-v2提供可组合管道语法,并适配GPU库。
2026-10-22 cs.DC
From a Last-Week Add-On to First-Day Practice: Three Years of Integrating MPI Performance Analysis into HPC Education with EduMPI Suite
Fulda University of Applied Sciences(富尔达应用科技大学)
EduMPI Suite 通过自动化与可视化降低 MPI 性能分析门槛,三年实践表明早期引入能提升学生理解与接受度,应贯穿 MPI 教育。
2026-10-26 cs.DC
MPI Benchmarking Revisited: Experimental Design and Reproducibility
消息传递接口(MPI)是当今超级计算机上普遍使用的编程模型。因此,MPI库开发人员正在寻找跨许多不同超级计算机架构的单个MPI函数的最佳性能(最短运行时间)。已经开发了几个MPI基准套件来评估MPI实现的性能。不幸的是,这些基准的结果往往既不能复制,也不能从统计上说是可靠的。为了克服这些问题,我们展示了哪些实验因素对阻塞集体MPI操作的运行时产生影响以及如何控制它们。我们解决了MPI基准测试中的进程和时钟同步问题。最后,我们提出了一种新的实验方法,使我们能够获得可重复的和统计上健全的MPI测量。
2016-05-27 cs.DC
Making Applications Faster by Asynchronous Execution: Slowing Down Processes or Relaxing MPI Collectives
本文研究通过异步执行(如减慢MPI进程或放宽集合操作)加速内存受限并行程序,利用相空间图可视化,在多个超级计算机平台上验证了噪声可被利用以提升性能。
2023-02-24 cs.DC cs.PF
A HPX Communication Benchmark: Distributed FFT using Collectives
本文针对 HPX 运行时的 TCP、MPI 和 LCI 通信后端,利用分布式多维 FFT 应用在 16 节点集群上进行了基准测试,发现 LCI parcelport 在集合通信上表现最佳且比 MPI+X 参考实现快最高达 3 倍,突显了 HPX 消息抽象的潜力。
2025-03-04 cs.DC
Reinit++: Evaluating the Performance of Global-Restart Recovery Methods For MPI Fault Tolerance
由于硬件组件数量的增加,扩展超级计算机的故障率也随之增加。在标准实践中,通过设置检查点数据并在发生故障后重新启动执行以从最新检查点恢复,使应用程序具有弹性。但是,重新部署应用程序会导致系统开销,因为它会拆除和重新启动执行,并可能限制从慢速永久存储中进行检查点检索。在本文中,我们提出了Reinit++,一个新的设计和实现的Reinit方法的全局重启恢复,避免应用程序重新部署。我们广泛地评估了Reinit++与ULFM的领先MPI容错方法的对比,实现全局重启恢复,以及重启应用程序的典型实践,以获得对性能的新见解。对三种不同的HPC代理应用程序进行的实验表明,Reinit++的恢复速度比重新启动快得多,最高可达6倍,或者ULFM,最高可达3倍,并且随着MPI进程数量的增加,它可以出色地扩展。
2021-02-13 cs.DC
Densifying Assumed-sparse Tensors: Improving Memory Efficiency and MPI Collective Performance during Tensor Accumulation for Parallelized Training of Neural Machine Translation Models
Amazon(亚马逊);SURFSara;Dell EMC(戴尔易安信);Intel(英特尔);Uber(优步)
神经机器翻译-使用神经网络翻译人类语言-是一个积极的研究领域,探索新的神经元类型和网络拓扑结构,目标是显着提高机器翻译性能。目前最先进的方法,如多头注意力为基础的Transformer,需要非常大的翻译语料库和许多时代,以产生合理的质量模型。最近尝试在多个节点上并行化官方TensorFlow“Transformer”模型,但由于内存使用过多以及在执行MPI集合时导致内存错误而遇到了障碍。本文描述了对Horovod MPI分布式训练框架的修改,通过将假定的稀疏张量转换为密集张量,并随后用密集梯度降低取代稀疏梯度聚集,来减少Transformer模型的内存使用。其结果是横向扩展能力的大幅提高,仅CPU的扩展测试实现了高达1200个MPI进程(300个节点)的91%弱扩展效率,以及使用Stampede 2超级计算机高达400个MPI进程(200个节点)的65%强扩展效率。
2019-05-10 cs.CL cs.DC cs.LG
Sparbit: a new logarithmic-cost and data locality-aware MPI Allgather algorithm
集体操作被认为是提高exascale就绪和高性能计算应用程序的性能的关键。在本文中,我们专注于消息传递接口(MPI)Allgather多对多的集体,这是最多的调用和耗时的操作。用于此调用的每个MPI算法都受到不同的操作和性能限制,这可能包括仅适用于受限情况,随着进程数量的增长需要线性数量的通信步骤,内存副本和移位以确保正确的数据组织,以及非本地数据交换模式,其中大部分对总操作时间有负面影响。所有这些特征创造了一种环境,在这种环境中,没有算法对所有情况都是最好的,因此这意味着必须仔细选择替代方案来执行调用。考虑到这些方面,我们提出了条纹并行二叉树(Sparbit)算法,它具有最佳的延迟和带宽的时间成本,没有使用限制。它还保持了一个更本地的通信模式,最大限度地减少了由于长距离交流的延迟,允许提取更多的性能从当前系统相比,渐近等效的替代品。在最佳情况下,Sparbit在46.43%的测试用例上超过了传统MPI算法,平均(中位数)改进了34.7%(26.16%),最高达到84.16%。
2021-09-17 cs.DC
Lessons Learned on MPI+Threads Communication
混合MPI+线程编程正在变得越来越突出,但在实践中,与MPI无处不在模型相比,应用程序的执行速度较慢。MPI+线程应用程序的并行效率面临的最关键挑战是MPI_THREAD_MULTIPLE性能缓慢。MPI库最近在这方面取得了重大进展,但要利用它们的功能,用户必须在MPI+线程应用程序中公开通信并行性。最近的研究表明,MPI 4.0为用户提供了新的面向性能的选项,但我们对这些新机制的评估表明,它们带来了一些挑战。另一种设计是MPI端点。在本文中,我们提出了一个比较不同的设计,从MPI的最终用户的角度来看:领域科学家和应用程序开发人员。我们评估的机制,性能以外的指标,如可用性,范围和可移植性。根据经验教训,我们提出了未来的方向。
2022-06-28 cs.DC
MPIgnite: An MPI-Like Language and Prototype Implementation for Apache Spark
基于MPI的横向扩展并行处理是一个有25年历史的标准,在高性能计算社区中,至少还有十年的历史。MapReduce、Hadoop和Spark等较新的框架代表了工业可扩展计算解决方案,这些解决方案因其相对简单的使用、对相关问题的适用性以及利用可扩展分布式资源的能力而得到广泛采用。虽然MPI提供了性能和可移植性,但它缺乏生产力和容错能力。同样,Spark是当前一代MapReduce和数据并行计算基础设施的一个具体示例,它可以实现这些目标,但又缺乏对等通信支持,无法实现轻量级、高度可扩展的对等数据并行代码部分。本文的主要贡献是演示如何将MPI的集体和点对点对等通信概念引入Spark环境。这样做是为了产生性能便携,面向对等和面向组的通信服务,同时保留Spark的基本,理想的属性。考虑了容错和生产率的附加概念。这种方法与将MapReduce框架作为上层中间件添加到传统的MPI实现作为基线基础设施相比。
2017-07-15 cs.DC
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
Static Deadlock Detection in MPI Synchronization Communication
由于静态方法有一定的局限性,所以在MPI程序中经常使用动态方法来检测死锁。为保证基于MPI的重要应用软件的高可靠性,抽象了MPI同步通信模型,并设计了一种静态死锁检测方法。该模型有三种不同复杂程度的形式:顺序模型、单回路模型和嵌套回路模型。序贯模型是所有模型的基础。单回路模型必须用一种特殊的方程组来处理,而嵌套回路模型则是对其他两种模型的扩展。在此基础上,构造了一个标准的基于Java的MPI程序同步通信死锁判定框架。实践表明,该软件框架能在基于MPI的程序运行之前,挖掘出所有的同步通信死锁,优于那些使用动态方法的工具。
2007-09-24 cs.DC
MPI Progress For All
针对MPI通信进度机制定义不明确、阻碍HPC应用性能提升与编程范式集成的问题,本文分析MPI消息实现细节,提出可让用户显式构建管理高效进度引擎的MPI扩展,经验证其复杂度更低、有效性更高。
2024-07-12 cs.DC
Message-Combining Algorithms for Isomorphic, Sparse Collective Communication
同构(稀疏)集体通信是集体通信的一种形式,其中所有涉及的进程都在其他进程的小的、相同结构的邻域中进行通信。同构邻域通过将过程嵌入到规则结构的拓扑中来定义,例如,$d$维环面,其可以对应于底层系统的物理通信网络。同构集体通信对于实现模板和其他规则的稀疏分布式计算很有用,其中所有进程的行为(几乎)对称的假设是合理的。在本文中,我们将展示如何有效的消息组合通信计划同构,稀疏集体通信可以很容易地和有效地计算纯粹的本地计算。我们给计划的\emph{isomorphic \alltoall}和\emph{\allgather}通信,减少了通信轮数,从而从$s$的通信延迟,最多$Nd$,为社区组成的$s$进程的(小)因素$N$取决于结构的邻居和通信系统的能力。使用这些时间表,我们给出了\emph{zero-copy implementations}的同构集体使用MPI及其派生的数据表,以消除显式的,进程本地复制操作。通过对集体通信算法进行基准测试,针对简单的实现和相应的MPI邻域集体,我们记录了我们的实现的延迟显著改善,块大小高达几个字节。我们讨论进一步优化计算更好的时间表,其中一些已经实施和基准。
2016-06-24 cs.DC
Do MPI Derived Datatypes Actually Help? A Single-Node Cross-Implementation Study on Shared-Memory Communication
本文针对MPI派生数据类型(DDT)的实际性能争议,在单节点上跨四种主流MPI实现、三类二维应用开展基准测试,发现DDT无跨场景性能优势,建议同时剖析两种通信方案。
2025-11-17 cs.DC
Scaling All-to-all Operations Across Emerging Many-Core Supercomputers
Sandia National Laboratories(桑迪亚国家实验室);University of New Mexico(新墨西哥大学);Los Alamos National Laboratory(洛斯阿拉莫斯国家实验室)
本文提出新型算法提升新兴多核超级计算机上全到全操作性能,实现3倍速度提升。
2026-01-24 cs.DC
Implicit Actions and Non-blocking Failure Recovery with MPI
科学应用程序长期以来一直将MPI作为在大型分布式系统上执行的首选环境。用户级故障缓解(ULFM)规范扩展了MPI标准,以解决弹性问题,并使MPI应用程序能够在故障后恢复其通信能力。这项工作建立在该领域获得的广泛经验的基础上,以消除当前实践与理想的、更异步的恢复模型之间的差距,在理想的恢复模型中,多个组件的容错活动可以同时进行并重叠。这项工作提出:(1)在向应用程序报告故障时提供所需的一致性(即,使应用程序能够评估计算阶段的成功而不招致不可接受的性能冲击);(2)提出允许应用程序中的故障恢复的有效范围的构建块,使得应用程序中的独立组件可以在不相互干扰的情况下恢复,并且应用程序中的单独的进程组可以独立地或一致地恢复;以及(3)恢复系统一致性所必需的重叠恢复活动(例如,从通信组中驱逐故障进程)与应用恢复活动(例如,从检查点恢复数据集)。
2022-12-16 cs.DC
Enhancing Type Safety in MPI with Rust: A Statically Verified Approach for RSMPI
本文提出基于RSMPI库的MPI类型安全通信框架TypedCommunicator,利用Rust的Equivalence trait在编译时或运行时验证类型兼容性,消除常见MPI错误并保持性能,为并行计算鲁棒性奠定基础。
2025-09-13 cs.DC
A Doubly-pipelined, Dual-root Reduction-to-all Algorithm and Implementation
我们讨论了一个简单的,基于二叉树的集体allreduce(减少到所有,MPI_Allreduce)操作的并行系统组成的$p$适当互连的处理器的算法。该算法可以双重流水线,以利用双向(类似电话)的通信系统的通信能力。为了使算法更加对称,处理器被组织成两个根树,两个根之间的通信。对于每个流水线块,每个非叶处理器采取三个通信步骤,包括从两个孩子接收和发送,以及向根发送和接收。在基于循环的、统一的、线性成本的通信模型中,其中同时发送和接收$n$数据元素对于系统相关常数$α$(通信启动等待时间)和$β$(每个元素的时间)花费时间$α+βn$,通过适当地选择流水线块大小,对$m$元素的向量进行全归约操作的时间是$O(\log p+\sqrt{m\log p})+3βm$。我们比较了MPI中的实现类似的减少,然后广播算法的性能,和本地MPI_Allreduce集体上的现代,小型$36\times 32$处理器集群。通过适当选择流水线块的数量,可以实现比不利用双向通信的流水线算法更好的性能。
2022-01-20 cs.DC
Radiation Hydrodynamics at Scale: Comparing MPI and Asynchronous Many-Task Runtimes with FleCSI
University of Stuttgart(斯图加特大学);Louisiana State University(路易斯安那州立大学)
本文通过FleCSI框架比较MPI与异步多任务运行时在大规模辐射流体动力学计算中的性能,发现HPX后端在部分场景下表现更优。
2026-03-05 cs.DC
Performance Evaluation and Modeling of HPC I/O on Non-Volatile Memory
HPC应用对I/O性能和存储能力提出了很高的要求。新兴的非易失性存储器(NVM)技术为HPC应用提供了低延迟、高带宽和持久性。然而,现有的I/O堆栈是基于基于磁盘存储的假设来设计和优化的。为了有效地使用NVM,我们必须重新检查现有的高性能计算(HPC)I/O子系统,以将NVM适当地集成到其中。硬盘驱动器)不再有效。可以减轻由缓慢存储引起的性能问题;现有的用于缩小存储和CPU之间的性能差距的机制可能是不必要的,并且导致大的开销。因此,要充分了解将NVM引入HPC软件堆栈的影响,需要进行全面的性能研究。在本文中,我们分析和模型的I/O密集型HPC应用程序的NVM作为一个块设备的性能。我们从三个方面研究了性能:(1)NVM对传统页缓存性能的影响;(2)MPI单独I/O和POSIX I/O的性能比较;(3)NVM对集体I/O性能的影响。我们揭示了页面缓存的影响,MPI的个人I/O和POSIX I/O之间的性能差异较小,和NVM上的集体I/O由于不必要的数据洗牌的性能劣势。我们还对MPI集体I/O的性能进行了建模,并研究了数据洗牌,存储性能和I/O访问模式之间的复杂交互。
2017-05-10 cs.DC
Analyzing Persistent Alltoallv RMA Implementations for High-Performance MPI Communication
Tennessee Tech University(田纳西理工大学)
本文设计并评估了基于fence和锁同步的持久化MPI RMA Alltoallv变体,针对大规模消息尺寸优化,实验证明在448进程下运行时间减少38%,并探讨了持久化与非持久化方法的性能差异及适用场景。
2026-04-06 cs.DC
(Poly)Logarithmic Time Construction of Round-optimal $n$-Block Broadcast Schedules for Broadcast and irregular Allgather in MPI
提出一种快速、无通信、并行的轮次最优$n$-块广播调度构造方法,改进了现有顺序构造的时空复杂度,并用于实现MPI中广播与不规则allgather的通信最优算法,显著提升了标准MPI库的性能。
2023-06-26 cs.DC
Orrery: Modeling and Simulation of GPU-direct MPI Communication with SimGrid
Technical University of Munich(慕尼黑工业大学);Leibniz Supercomputing Centre(莱布尼茨超级计算中心);Dresden University of Technology(德累斯顿工业大学);Vienna University of Technology(维也纳工业大学)
该研究提出基于SimGrid SMPI的Orrery拦截层,实现无需物理GPU的GPU感知MPI通信仿真,经微基准测试和雅可比求解器验证,可复现关键通信机制。
2026-10-13 cs.DC cs.PF
Decoupled Strategy for Imbalanced Workloads in MapReduce Frameworks
在这项工作中,我们考虑在以HPC为中心的MapReduce框架中集成MPI单边通信和非阻塞I/O。使用解耦策略,我们的目标是通过允许进程仅使用单侧操作进行通信和同步来重叠算法的Map和Reduce阶段。因此,我们有效地提高了性能的情况下,每个进程的工作负载是出乎意料的不平衡。使用Word-Count实现和来自Purdue MapReduce Benchmarks Suite(PIMA)的大型数据集,我们证明了与使用最先进的MPI集体通信和I/O的参考MapReduce实现相比,我们的方法平均可以提供高达23%的性能提升。
2018-10-09 cs.DC
Parallel Paradigms in Modern HPC: A Comparative Analysis of MPI, OpenMP, and CUDA
本文比较了MPI、OpenMP和CUDA三种HPC并行模型,分析其架构、性能与适用性,指出混合方法在异构环境中效果最佳,选择需依应用、硬件和开发约束而定。
2025-06-18 cs.DC
Early Evaluation of Intel Optane Non-Volatile Memory with HPC I/O Workloads
高性能计算(HPC)应用对存储速度和容量有很高的要求。非易失性存储器是一种很有前途的替代传统存储设备以提高HPC性能的技术。2017年早些时候,英特尔和美光发布了第一款NVM产品-英特尔Optane SSD。Optane比传统的存储设备更快,更耐用。它为缩小DRAM和存储之间的性能差距搭建了一座桥梁。但是,现有的HPC I/O堆栈是否仍然适合像Intel Optane这样的新NVM设备?HPC I/O工作负载如何使用英特尔Optane?在本文中,我们分析的I/O密集型HPC应用程序的Optane作为一个块设备的性能,并试图回答上述问题。我们从三个方面研究了Optane的性能:(1)Optane的基本读写带宽,(2)Optane和HDD之间的性能比较研究,包括检查点工作负载,MPI单独I/O与POSIX I/O,MPI单独I/O与MPI集体I/O,以及(3)Optane对并行文件系统PVFS 2性能的影响。
2018-05-12 cs.DC
NCCLZ: Compression-Enabled GPU Collectives with Decoupled Quantization and Entropy Coding
Stevens Institute of Technology(史蒂文斯理工学院)
NCCLZ通过解耦量化与熵编码,提升多节点GPU工作负载的通信效率,实验显示比NCCL快9.65倍,比现有压缩辅助库提升3.34倍。
2026-09-18 cs.DC
OMB-Py: Python Micro-Benchmarks for Evaluating Performance of MPI Libraries on HPC Systems
The Ohio State University(俄亥俄州立大学)
Python已经成为机器学习(ML)、深度学习(DL)和数据科学(DS)等新兴领域的主导程序设计语言。Python的一个吸引人的特性是它提供了易于使用的编程接口,同时允许库开发人员通过利用高性能计算(HPC)平台提供的计算能力来提高应用程序的性能。高效的通信是在并行系统上扩展应用程序的关键,这通常由HPC硬件上的消息传递接口(MPI)标准和兼容库实现。mpi4py是一个基于Python的通信库,它为Python应用程序提供了一个类似于MPI的接口,允许应用程序开发人员利用包括GPU在内的并行处理元素。然而,目前还没有基准测试套件来评估现代HPC系统上mpi4py(以及一般的Python MPI代码)的通信性能。为了弥合这一差距,我们提出了OMB-Py-开源OSU Micro-Benchmark(OMB)套件的Python扩展-旨在评估Python中基于MPI的并行应用程序的通信性能。据我们所知,OMB-Py是第一个用于并行Python应用程序的通信基准套件。OMB-Py由各种点对点和集体通信基准测试组成,这些测试是为一系列流行的Python库实现的,包括NumPy,CuPy,Numba和PyCUDA。我们的评估表明,与原生MPI库相比,mpi4py引入了一个小的开销。我们计划公开发布OMB-Py,以造福Python HPC社区。
2022-08-24 cs.AI cs.DC cs.LG
DNA sequence alignment: An assignment for OpenMP, MPI, and CUDA/OpenCL
本文介绍一项并行计算课程作业,以多模式精确DNA序列比对的暴力解法为载体,训练学生用OpenMP、MPI及CUDA/OpenCL实现并行化,并覆盖竞态条件、归约、通信和推测计算终止等关键概念。
2024-09-09 cs.DC
gZCCL: Compression-Accelerated Collective Communication Framework for GPU Clusters
本文提出gZCCL框架,通过精度感知设计优化GPU集群上有损压缩集合通信,在512块A100 GPU上实现Allreduce和Scatter性能最高超越NCCL与Cray MPI达4.5倍和28.7倍。
2024-05-06 cs.DC
HiCCL: A Hierarchical Collective Communication Library
HiCCL通过组合式API将集合通信逻辑与网络优化解耦,并利用条带化和流水线优化,在Nvidia、AMD和Intel GPU平台上实现了比GPU感知MPI高17倍的平均吞吐量,同时保持跨平台可移植性。
2024-08-12 cs.DC
Enabling Highly-Scalable Remote Memory Access Programming with MPI-3 One Sided
现代互连提供远程直接存储器访问(RDMA)功能。然而,大多数应用程序依赖于显式的消息传递进行通信,尽管它们有不必要的开销。MPI-3.0标准定义了一个直接利用RDMA网络的编程接口,但它的可扩展性和实用性必须在实践中得到证明。在这项工作中,我们开发了可扩展的无缓冲协议,实现MPI-3.0规范。我们的协议支持扩展到数百万个内核,内存消耗可以忽略不计,同时提供最高的性能和最小的开销。为了武装程序员,我们为所有关键功能提供了一系列性能模型,并通过多达50万个进程的几项应用研究证明了我们的库和模型的可用性。我们表明,我们的设计是可比的,或优于UPC和Fortran Coarrays的延迟,带宽和消息速率。我们还展示了应用程序的性能改进与可比的编程复杂性。
2020-06-30 cs.DC cs.PF
Multithreaded Fine-Grained Asynchronous BSP for Integer Sorting with LCI and OpenMP
Advanced Micro Devices, Inc.(超威半导体公司)
针对BSP模型在非规则负载下的通信瓶颈,提出结合LCI和OpenMP的多线程细粒度异步BSP方法,通过细粒度零拷贝主动消息实现计算通信重叠,在NAS整数排序基准测试中显著优于传统同步MPI实现。
2026-05-25 cs.DC
The ExaNeSt Prototype: Evaluation of Efficient HPC Communication Hardware in an ARM-based Multi-FPGA Rack
本文介绍含256个Xilinx MPSoC的液冷多FPGA机架ExaNeSt Prototype,通过定制低延迟RDMA互连与MPI运行时验证其HPC通信效率和扩展性能。
2023-07-18 cs.DC
Dynamic reconfiguration for malleable applications using RMA
Universitat Jaume I(豪梅一世大学)
本文提出基于RMA的动态重构方法,用于优化可变形应用的数据分布,通过对比传统方法验证其有效性,但高初始化成本影响实际应用。
2026-01-26 cs.DC
Optimal Broadcast Schedules in Logarithmic Time with Applications to Broadcast, All-Broadcast, Reduction and All-Reduction
本文提出最优 O(log p) 时间算法计算并行计算系统中的轮次最优广播调度,并扩展至归约、全广播和全归约,显著改进了先前复杂度并应用于 MPI 集合通信操作。
2024-07-26 cs.DC
Efficient Communications in Training Large Scale Neural Networks
我们考虑的问题,如何减少所需的并行训练的神经网络的通信成本。最先进的方法,批量同步并行随机梯度下降(BSP-SGD),需要许多集体通信操作,如广播的参数或减少子梯度聚合,这对于大的消息迅速主导整体执行时间,并限制并行可扩展性。为了解决这个问题,我们开发了一种新的集体操作技术,称为线性流水线(LP)。它针对BSP-SGD中出现的消息大小进行了调整,并在多GPU系统上有效工作。从理论上讲,LP的成本对$P$是不变的,其中$P$是GPU的数量,而更传统的最小生成树(MST)的成本像$O(\log P)$一样缩放。LP还展示了比当前MPI实现广泛采用的双向交换(BE)技术快2倍的带宽。我们将这些集体BSP-SGD,表明所提出的实现减少了通信瓶颈,在实践中,同时保持有吸引力的收敛性能的BSP-SGD。
2017-04-15 cs.DC
Monitoring Collective Communication Among GPUs
多GPU系统中设备之间的通信在性能和可扩展性方面起着重要作用。为了优化应用程序,程序员需要知道GPU之间发生的通信的类型和数量。虽然先前的工作是在分布式系统上的MPI应用程序和共享存储器系统上的多线程应用程序中收集此信息,但没有识别GPU之间通信的工具。我们之前的工作,ComScribe,提出了一个点对点(P2P)通信检测工具的GPU共享一个共同的主机。在这项工作中,我们扩展ComScribe来识别NVIDIA NCCL库中的集体和P2P通信原语的GPU之间的通信。除了P2P通信之外,集群通信通常用于HPC和AI工作负载,因此监控集群引起的数据移动非常重要。我们的工具提取应用程序中数据传输的大小和频率,并将其可视化为通信矩阵。为了演示该工具的作用,我们提出了通信矩阵和一些统计数据的两个应用程序来自机器翻译和图像分类域。
2021-10-20 cs.DC cs.PF