Accelerating MPI Collectives with Process-in-Process-based Multi-object Techniques
针对HPC中MPI集合通信的性能瓶颈,提出基于Process-in-Process共享内存的PiP-MColl设计,消除系统调用与数据复制开销,在多种消息大小上较主流MPI库性能提升达4.6倍。
2023-05-17 cs.DC
An Optimized Error-controlled MPI Collective Framework Integrated with Lossy Compression
本文提出C-Coll框架,将误差有界有损压缩(定制SZx)集成到MPI集合通信中,在保持数据精度的同时显著降低通信开销,实验表明性能提升1.8至2.7倍。
2024-01-17 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
Fault-Aware Non-Collective Communication Creation and Reparation in MPI
针对MPI标准缺乏完善故障管理、现有ULFM扩展修复需集合执行的局限,提出感知故障的非集合通信器创建与修复方法,集成到现有容错框架后实验验证其具备可扩展性、开销有限,为ULFM类应用提供可行方案。
2023-02-07 cs.DC
Promise-Future Synchronization for Cluster Asynchronous Many-Task Runtimes via MPI One-Sided Communication
University of Kassel(卡塞尔大学)
针对 ItoyoriFBC AMT 运行时中 future 模型限制动态依赖创建的问题,提出 promise-future 模型并实现,支持层次 LU 分解等动态算法,在 16 节点上实现近理想扩展(15.6 倍加速)。
2026-07-02 cs.DC
PGMPI: Automatically Verifying Self-Consistent MPI Performance Guidelines
消息传递接口(MPI)是当前大规模并行系统上进程通信最常用的应用程序编程接口。由于现代并行体系结构的规模和复杂性,MPI库的优化变得越来越困难,因为许多因素都会影响通信性能。为了帮助MPI开发人员和用户,我们提出了一种自动的方法来检查MPI库是否尊重集体通信操作的自我一致的性能准则。我们引入了PGMPI框架,通过基准测试来检测违反性能准则的行为。我们的实验结果表明,PGMPI可以查明不希望的,往往是意外的集体MPI操作的性能下降。我们演示了如何克服几个库的性能问题,通过调整各自的集体MPI调用的算法实现。
2016-09-02 cs.DC
Exploring Performance-Productivity Trade-offs in AMT Runtimes: A Task Bench Study of Itoyori, ItoyoriFBC, HPX, and MPI
University of Kassel(卡塞尔大学);Fulda University of Applied Sciences(富尔达应用技术大学);Los Alamos National Lab (LANL)(洛斯阿拉莫斯国家实验室)
本研究通过任务基准测试比较了AMT运行时在性能与生产力上的权衡,发现MPI在通信轻量任务中效率最高但代码冗长,HPX在负载不平衡时效率稳定但生产力较低,Itoyori在通信密集型任务中表现最佳,而ItoyoriFBC在同步机制上具有表达不规则工作负载的潜力。
2026-03-13 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
Offloading MPI Parallel Prefix Scan (MPI_Scan) with the NetFPGA
使用标准消息传递接口(MPI)编写的并行程序通常依赖于有效执行集体操作的能力。MPI_Scan是MPI中定义的一个集合操作,它实现了并行前缀扫描,在许多并行应用中,前缀扫描是非常有用的原语操作。此操作可能非常耗时。在本文中,我们探讨了使用硬件可编程网络接口卡,利用标准的媒体访问协议卸载MPI_扫描操作到底层网络。我们的工作是基于NetFPGA -一个可编程的网络接口与板载Virtex FPGA和四个以太网接口。我们已经实现了一个网络级的MPI_Scan操作使用NetFPGA在MPI环境中使用。本文比较了性能的MPI在以太网上的一个小的配置,这种实现。
2014-08-21 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
Integrating Blocking and Non-Blocking MPI Primitives with Task-Based Programming Models
在本文中,我们提出了任务感知MPI库(TAMPI),集成了阻塞和非阻塞MPI原语与基于任务的编程模型。TAMPI库利用两个新的运行时API来提高混合应用程序的可编程性和性能。第一个API允许根据外部事件暂停和恢复任务的执行。此API用于提高阻塞MPI通信原语和任务之间的互操作性。当在任务内执行的MPI操作阻塞时,任务运行被暂停,以便运行时系统可以在空闲的核心上调度新任务。一旦被阻塞的MPI操作完成,暂停的任务将再次放在运行时系统的就绪队列中,因此最终它将再次被调度,并且其执行将继续。第二个API延迟与任务完成相关的依赖项的释放,直到某些外部事件完成。此API仅由两个函数组成,一个函数用于将外部事件绑定到正在运行的任务,另一个函数用于通知先前绑定的外部事件的完成。TAMPI利用此API将非阻塞MPI操作与任务绑定在一起,延迟释放它们的任务依赖关系,直到任务执行及其所有绑定的MPI操作都完成。我们的实验表明,增强功能的TAMPI不仅简化了开发的混合MPI+OpenMP应用程序,使用阻塞或非阻塞MPI原语,但他们也自然重叠的计算和通信阶段,提高了应用程序的性能和可扩展性,通过消除人为的依赖性跨通信任务。
2020-05-29 cs.DC
Callback-based Completion Notification using MPI Continuations
异步编程模型(APM)正获得越来越多的关注,允许应用程序将可用的并发性公开给负责协调执行的运行时系统。虽然MPI长期以来一直支持多线程通信和非阻塞操作,但它无法充分支持APM,因为正确有效地处理不同模型中的MPI通信仍然是一个挑战。我们之前已经提出了一个MPI标准的扩展,使用回调提供操作完成通知,即所谓的MPI Continuations。此接口足够灵活,可以容纳各种不同的APM。在本文中,我们提出了一个扩展到前面描述的接口,允许更精细的控制的MPI Continuations接口的行为。然后,我们提出了一些我们的第一次经验,在不同的应用程序,包括NAS并行基准测试,PaRSEC基于任务的运行时系统,并在自适应网格细化求解器称为ExaHyPE的负载平衡计划中使用的接口。我们表明,该接口,实现内部开放MPI,使低延迟,高吞吐量的完成通知,优于在应用程序空间中实现的解决方案。
2021-12-22 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
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
Pipelined Workflow in Hybrid MPI/Pthread runtime for External Memory Graph Construction
从给定的一组边构建图是出现在社会网络分析、支持本体的数据库和其他分析处理中的数据密集型算子。该操作符将边列表表示为压缩稀疏行(CSR)表示(或有时在邻接列表中,或作为集群B树存储)。在这项工作中,我们展示了如何使用流水线处理在Gordon等支持SSD的超级计算机上大规模扩展CSR构建。我们开发了几个抽象和操作的外部存储器和并行边缘列表和整数数组处理,用于建立一个可扩展的算法创建CSR表示。我们的实验表明,该方案是四到六倍的速度比目前可用的实现。此外,我们的计划可以处理高达80亿边缘(128 GB),通过使用外部存储器相比,以前的计划,性能大大降低边缘列表大小26万及以上。
2012-10-31 cs.DB 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
Enabling Practical Transparent Checkpointing for MPI: A Topological Sort Approach
本文提出基于拓扑排序确定安全未来同步点的MPI透明检查点方法,解决低运行时开销问题,并在微基准及含VASP在内的五个实际应用中验证其有效性与可扩展性。
2024-08-05 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
Distributed TensorFlow with MPI
机器学习和数据采掘(MLDM)算法在分析由模拟、实验和移动设备生成的大量数据方面变得越来越重要。随着数据量的增加,分布式存储器系统(例如紧密连接的超级计算机或云计算系统)在设计存储器内和大规模并行MLDM算法中变得重要。然而,大多数开源MLDM软件仅限于顺序执行,少数支持多核/众核执行。在本文中,我们扩展了最近提出的Google TensorFlow,以便使用消息传递接口(MPI)在大规模集群上执行。我们的方法只需要对TensorFlow运行时进行最小的更改-使所提出的实现具有通用性,并且易于为越来越多的TensorFlow用户使用。我们评估我们的实现使用InfiniBand集群和几个众所周知的datasets。我们的评估表明,我们提出的实施的效率。
2017-08-18 cs.DC
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
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
Collective Communication for Distributed LLM Systems: Planning, Runtime Adaptation, and Computation Coordination
School of Software, Beihang University(北京航空航天大学软件学院);State Key Laboratory of Internet Architecture, Tsinghua University(清华大学互联网架构国家重点实验室);Infrawaves(英伟拉维斯)
本文提出以集体为中心的分类法,将分布式LLM系统集体通信进展分为规划、执行适配、计算通信协调三层,探讨相关开放挑战与未来机遇。
2026-08-18 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
MPISE: Symbolic Execution of MPI Programs
消息传递接口(MPI)在并行计算中起着重要的作用。许多并行应用程序都是以MPI程序的形式实现的。现有的MPI程序缺陷检测方法在提供输入和非确定性覆盖方面存在不足,导致缺陷漏诊。在本文中,我们采用符号执行,以确保输入的覆盖率,并提出了一个飞行调度算法,以减少交错探索的非确定性覆盖,同时确保健全性和完整性。我们已经实现了我们的方法作为一个工具,称为MPISE,它可以自动检测MPI程序中的死锁和运行时错误。在基准程序和真实MPI程序上的实验结果表明,MPISE能够有效地发现程序中的错误。此外,我们的工具还提供了诊断信息和重放机制,以帮助理解错误。
2014-09-15 cs.DC cs.PL cs.SE
Practical, Linear-time, Fully Distributed Algorithms for Irregular Gather and Scatter
我们提出了新的,简单的,完全分布式的,实用的算法与线性时间通信成本不规则的收集和分散操作中,处理器的贡献或消耗可能不同的数据量。在具有启动延迟$α$和单位成本$β$的线性成本传输模型中,新算法花费时间$3|{\log_2 p}|α+β\sum_{i\neq r}m_i$,其中$p$是处理器的数量,$m_i$是处理器$i, 0\leq i<p$的数据量,处理器$r, 0\leq r<p$是由算法确定的根处理器。对于固定的、外部给定的根处理器$r$,存在至多$β(M_{d'}-m_{r_{d'}}-\sum_{0\leq j<d'}M_j)$时间步的附加惩罚,其中每个$M_j$是由该算法构造的具有根$r_j$的$2^j$不同处理器的树中的数据总量。最差情况的惩罚小于$β\sum_{i\neq r}m_i$时间步长。该算法具有实现MPI(消息传递接口)的操作有吸引力的属性。使用固定树的标准算法在最坏的情况下花费$|{\log_2 p}|(α+β\sum_{i\neq r} m_i)$时间,或者花费$\sum_{i\neq r}(α+βm_i)$时间。我们已经使用了新的算法,给出原型实现的MPI_Gatherv和MPI_Scatterv集体的MPI,并提出了基准测试结果从一个小型和中型的InfiniBand集群。为了构建实验评价,我们制定了新的性能准则,不规则的集体,可以用来评估相应的定期…
2017-04-12 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
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
RAMP: A Flat Nanosecond Optical Network and MPI Operations for Distributed Deep Learning Systems
University College London(伦敦大学学院)
分布式深度学习(deep learning,简称深度学习)系统对网络性能有很强的依赖性。当前的电子分组交换(EPS)网络架构和技术遭受可变直径拓扑、低对分带宽和影响通信和集体操作的完成时间的超额预订。我们介绍了一个近十亿级,全平分带宽,所有到所有,单跳,全光网络架构与纳秒重新配置称为RAMP,它支持大规模的分布式和并行计算系统(12.8~Tbps的每个节点高达65,536个节点)。首次提出了一种自定义的RAMP-x MPI策略和网络转码器,以无调度和无竞争的方式在光电路交换(OCS)网络上运行MPI集体操作。RAMP在所有MPI操作的完成时间上实现了7.6-171 $\times$的加速,与现实的EPS和OCS同行相比。它还可以在Megatron和DLRM训练时间上分别减少1.3-16 $\times$和7.8-58 $\times$,同时在能耗和成本上分别减少42-53 $\times$和3.3-12.4 $\times$。
2023-02-24 cs.DC cs.LG cs.NI
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
MXNET-MPI: Embedding MPI parallelism in Parameter Server Task Model for scaling Deep Learning
IBM T J Watson Research Center(IBM T J Watson 研究中心);IBM, Hursley Park(IBM 赫斯利园区)
现有的深度学习框架专门使用参数服务器(PS)方法或MPI并行。在本文中,我们讨论了这种方法的缺点,并提出了一个通用的框架,支持PS和MPI编程范式,共存于同一时间。新模型的主要优点是将MPI并行性的扩展优势嵌入到松散耦合的PS任务模型中。除了在云中提供MPI的实际使用模型之外,这样的框架允许在随机梯度下降(SGD)方法中进行参数平均的新颖通信避免算法。我们展示了MPI和PS模型如何协同应用Elastic SGD等算法来提高现有方法的收敛速度。这些新算法直接有助于在集群范围内扩展SGD。此外,我们还优化了框架的关键组成部分,即全局聚合或allreduce使用一个新的概念张量集体。这些将节点上的一组向量视为单个对象,允许现有的单个向量算法直接适用。我们使用大规模ImageNet 1K数据为我们的说法提供了足够的经验证据。我们的框架是建立在MXNET,但设计是通用的,可以适应其他流行的DL基础设施。
2018-01-11 cs.DC cs.LG
(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
Quantifying Overheads in Charm++ and HPX using Task Bench
本研究通过扩展Task Bench基准测试,对比异步多任务系统Charm++、HPX与MPI等主流并行库,量化不同任务分配场景下的开销,分析二者特性及系统可扩展性、通信延迟隐藏能力。
2022-07-21 cs.DC cs.PF
A Locality-Aware Bruck Allgather
集合算法是MPI的重要组成部分,允许应用程序员利用常见分布式操作的底层优化。MPI_Allgather收集数据,这些数据最初分布在所有进程中,因此所有数据都可用于每个进程。对于较小的数据大小,Bruck算法通常用于最小化任何进程所通信的最大消息数。然而,通信的每个步骤的成本取决于源和目的地进程的相对位置,其中非本地消息(诸如节点间消息)比本地消息(诸如节点内消息)成本高得多。本文对Bruck算法进行了局部感知优化,最大限度地减少非局部消息的数量和大小,以提高聚集操作的性能和可扩展性
2022-08-23 cs.DC
PICO: Performance Insights for Collective Operations
Sapienza University of Rome(罗马第一大学);KAUST(阿卜杜拉国王科技大学);ETH Zurich(苏黎世联邦理工学院)
PICO框架通过解耦实验设置与平台执行,提供跨MPI和NCCL的参数选择接口,记录系统配置以实现可重复比较,并通过诊断证据揭示拓扑敏感的算法选择,优化集体操作性能,减少训练时间达44%。
2026-04-11 cs.DC cs.PF
The OpenMP Cluster Programming Model
尽管有各种研究计划和提出的编程模型,但HPC集群中并行编程的有效解决方案仍然依赖于不同编程模型的复杂组合(例如,OpenMP和MPI)、语言(例如,C++和CUDA)和专用运行时(例如,Charm++和Legion)。另一方面,任务并行性已被证明是一个高效和无缝的集群编程模型。本文介绍了OpenMP集群(OMPC),任务并行模型,扩展了集群编程的OpenMP。OMPC利用OpenMP的卸载标准在分布式系统的节点之间分发带注释的代码区域。为了实现这一点,它将基于MPI的数据分发和负载平衡机制隐藏在OpenMP任务依赖关系后面。由于OMPC与OpenMP兼容,它允许应用程序使用相同的编程模型来利用节点内和节点间的并行性,从而简化了开发过程和维护。我们评估OMPC使用任务工作台,一个综合的基准集中在任务并行性,比较其性能与其他分布式运行时。实验结果表明,OMPC可以提供高达1.53倍和2.43倍的性能比Charm++的CCR和可扩展性实验,分别。实验还表明,OMPC性能弱规模的任务台和现实世界的地震成像应用。
2022-08-13 cs.DC
Node-Aware Improvements to Allreduce
\texttt{MPI\_Allreduce}集合操作是许多并行代码库的核心内核,特别是对于每个进程的单个值的约简。常用的allreduce递归加倍算法获得了消息计数的下限,基于节点不可知的性能模型,对小的缩减大小产生了最优性。然而,该算法在节点集之间产生重复的消息。MPICH中的节点感知优化通过每个节点使用单个主进程来移除重复消息,从而在每个节点间步骤产生大量非活动进程。在本文中,我们提出了一种算法,使用每个节点的多个进程,以减少由一个单一的进程,提高性能的allreduce操作,特别是对于小的消息大小的节点间的消息通信的最大数量。
2019-10-21 cs.DC
Efficient and Eventually Consistent Collective Operations
集体操作是在高性能(HPC)和机器/深度学习(ML/ DL)应用中经常使用的并行编程模型的常见特征。在强伸缩性场景中,集体操作可能会对整体应用程序性能产生负面影响:随着核心数量的增加,每个等级的负载减少,而集体操作所花费的时间则会增加。在这篇文章中,我们提出了一种适合ML/ DL计算的最终一致集体的设计,通过减少广播和Reduce中的通信,以及探索Allreduce集体的Stale Synchronous Parallel(SSP)同步模型。此外,我们还使用经常使用的经典/一致的集体操作丰富了GASPI生态系统--例如用于大消息的Allreduce和用于HPC代码的AlltoAll。我们的实现显示出有希望的初步结果与显着的改进,特别是Allreduce和AlltoAll相比,供应商提供的MPI替代品。
2022-03-31 cs.DC cs.PL
GC3: An Optimizing Compiler for GPU Collective Communication
由数百万或数十亿个参数组成的机器学习模型在大型多GPU系统上进行训练和服务。随着模型规模的增长和在更多GPU上执行,这些应用程序中使用的集体通信成为瓶颈。针对特定网络拓扑和应用特定通信模式优化的自定义集合算法可以缓解此瓶颈并帮助这些应用扩展。然而,正确和有效地实现自定义算法是具有挑战性的。本文介绍了一个可编程GPU通信系统GC3。GC3提供了一种用于编写集体通信算法的领域特定语言和一个优化编译器,用于将它们降低到可执行形式,可以在基于解释器的运行时中高效灵活地执行。我们使用GC 3为AllReduce和AllToAll编写了新的集体算法,它们分别比手工优化的实现快$1.9\times$和$1.3\times$。
2022-07-19 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
NCCLbpf: Verified, Composable Policy Execution for GPU Collective Communication
University of California, Santa Cruz(加州大学圣克鲁兹分校)
NCCLbpf通过验证和可组合的策略执行框架,提升GPU集体通信性能,减少停机时间并增强安全性。
2026-03-12 cs.DC cs.OS
Performance Analysis of Irregular Collective Communication with the Crystal Router Algorithm
为了实现亿级性能,重要的是要检测潜在的瓶颈,并确定克服它们的策略。为此,必须对应用程序和系统软件进行分析并进行潜在的改进。欧盟FP7项目Exascale Systemware,Tools & Applications(CRESTA)选择了这种方法来共同设计高级仿真应用程序和系统软件以及开发工具。在本文中,我们提出的协同设计活动的结果集中在模拟代码NEK5000,旨在提高集体通信操作的性能。我们已经分析了算法,形成核心的NEK 5000的通信模块,以评估其可行性,最近的计算机体系结构,然后才开始提高其性能。我们的研究结果表明,晶体路由器算法在稀疏,不规则的集体操作中表现良好的中型和大型处理器的数量,但更大的系统规模的未来将需要改进。我们勾勒出所需的改进,这将使通信算法也有利于其他应用程序,需要实现延迟为主的通信计划与短消息。延迟优化的通信操作也将在CRESTA内正在开发的提供动态负载均衡的运行时系统中使用。
2014-08-05 cs.DC
MCR-DL: Mix-and-Match Communication Runtime for Deep Learning
The Ohio State University(俄亥俄州立大学);Microsoft Corporation(微软公司)
近年来,许多最先进的深度学习(DL)模型的训练需求已经超出了单个处理器的计算和存储能力,并且需要在处理器之间进行分布。训练如此庞大的模型需要高级并行策略来保持效率。然而,这样的分布式DL并行策略需要跨越宽范围的消息大小和规模的集合和点对点通信操作的各种混合。使用高级并行策略的模型的示例包括深度学习推荐模型(DLRM)和专家混合模型(MoE)。通信库的性能在不同的通信操作、规模和消息大小之间存在很大差异。我们建议MCR-DL:一种可扩展的DL通信框架,支持所有点对点和集体操作,同时使用户能够动态混合和匹配给定操作的通信后端,而不会出现死锁。MCR-DL还打包了一个调优套件,用于为给定的输入张量动态选择最佳通信后端。我们选择DeepSpeed-MoE和DLRM作为候选DL模型,并在Lassen HPC系统上的256个V100 GPU上证明了DS-MoE吞吐量提高了31%。此外,我们在密集Megatron-DeepSpeed模型中实现了20%的吞吐量提升,并在32个A100 GPU上使用Theta-GPU HPC系统实现了DLRM吞吐量提升25%。
2023-03-15 cs.DC cs.LG
Efficient All-to-All Collective Communication Schedules for Direct-Connect Topologies
本文针对超级计算机规模直连互连,采用整体方法优化全对全集合通信性能,解决了为任意拓扑开发高效带宽最优调度并适配多种运行时的挑战,并提出一种接近最优性能的新型拓扑。
2024-04-25 cs.DC cs.NI
Enhancing the scalability and load balancing of the parallel selected inversion algorithm via tree-based asynchronous communication
我们开发了一种方法,用于在大规模并行分布式存储器机器上提高最近开发的并行选择反演算法[Jacquelin,Lin和Yang 2014](名为PSelInv)的并行可扩展性。在PSelInv方法中,我们计算稀疏矩阵A的逆的选定元素,该稀疏矩阵A可以分解为A = LU,其中L是下三角形,U是上三角形。更新A-1的这些所选元素需要在由L和U的块循环分布创建的每个列或行通信组内的处理器子集之间进行受限的集体通信。我们描述了这种类型的限制集体通信可以通过使用异步点对点MPI通信功能结合基于二叉树的数据传播方案来实现。由于并行选择反演算法中可能同时发生多个受限的集体通信,因此需要使用启发式算法来防止参与多个集体通信的处理器接收到过多的消息。这种启发式算法使我们能够减少通信负载不平衡,提高所选反演算法的整体可扩展性。例如,当使用6,400个处理器时,我们观察到测试矩阵的加速超过5倍。它还减轻了由非均匀网络拓扑引入的性能变化。
2015-04-18 cs.DC cs.MS