The Use of MPI and OpenMP Technologies for Subsequence Similarity Search in Very Large Time Series on Computer Cluster System with Nodes Based on the Intel Xeon Phi Knights Landing Many-core Processor
如今,子序列相似性搜索是需要在广泛的时间序列挖掘应用:气候建模,金融预测,医学研究等,在大多数这些应用中,动态时间规整(DTW)的相似性度量使用,因为DTW是经验证实的最佳相似性度量大多数学科领域之一。由于DTW测度具有关于t的二次计算复杂性,查询子序列的长度,已经开发了许多用于各种众核架构的并行算法,即FPGA,GPU和Intel MIC。在这篇文章中,我们提出了一个新的并行算法,在非常大的时间序列的子序列相似性搜索的计算机集群系统的节点的基础上,英特尔至强融核骑士登陆(KNL)众核处理器。计算在两个级别上并行化,如下所示:通过MPI在所有集群节点的级别,并通过一个集群节点内的OpenMP。该算法涉及额外的数据结构和冗余计算,这使得有效利用Phi KNL上的向量计算能力成为可能。在真实数据集和合成数据集上的实验结果表明,该算法具有良好的可扩展性。
2018-12-26 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
SafeMPI - Extending MPI for Byzantine Error Detection on Parallel Clusters
现代高性能计算在很大程度上依赖于使用以集群形式排列在一起的商用处理器。这些集群由通过高速互连连接在一起的各个节点(通常是现成的单处理器或双处理器机器)组成。使用集群计算有很多好处,但由于涉及的组件数量太多,也容易出现故障。已经提出了许多有效的解决方案来帮助集群中的故障恢复,它们的一个显著缺点是它们支持的故障模型。该领域的大部分工作都集中在检测和纠正故障停止错误上。我们提出了一个系统,也将检测更一般的错误模型,如拜占庭错误,从而允许现有的故障恢复方法来正确处理它们。
2005-05-31 cs.DC
Methods for Partitioning Data to Improve Parallel Execution Time for Sorting on Heterogeneous Clusters
本文的目的是介绍一般的技术,以优化排序的并行执行时间的分布式体系结构与处理器的各种速度。这样的应用程序需要一个分区步骤。对于均匀相关的处理器(处理器的速度是由一个恒定的因素),我们开发了一个恒定的时间技术掌握处理器的负载和执行时间在异构环境中,也是一种技术来处理未知的成本函数。对于非一致相关的处理器,我们使用一种基于动态规划的技术。大多数情况下,解决方案都是O(p)(p是处理器的数量),与问题大小n无关。因此,关于我们处理的问题有一个小的开销,但是它固有地受到分区之后的代码部分的时间复杂度的限制。
2006-07-10 cs.DC cs.PF
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
A Creativity Survey of Parallel Sorting Algorithm
排序是计算机科学领域中最基本的问题之一。随着众核处理器的迅速发展,在众核体系结构上设计高效的并行排序算法显得尤为重要。本文对现代硬件上的并行存储器排序方法进行了研究,综述了其研究现状和进展。对目标论文和参考文献的研究问题、研究方法和测量方法进行分类。最后,对本文的研究工作进行了总结,并列出了未研究的方向和创新之处。关键词:排序算法,并行算法,并行优化,CPU,GPU,存储层次结构
2022-02-17 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
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
MPI Collectives for Multi-core Clusters: Optimized Performance of the Hybrid MPI+MPI Parallel Codes
集群中多核/众核处理器的出现倡导混合并行编程,其将用于节点间并行的消息传递接口(MPI)与用于节点上并行的共享存储器模型相结合。与传统的MPI + OpenMP混合方法相比,一种新的、但很有前途的MPI + MPI-3共享内存扩展(MPI+MPI)混合方法正受到越来越多的关注。我们描述了一种算法的集体操作(与allgather和广播作为具体的例子)的混合MPI+MPI的上下文中,以尽量减少内存消耗和内存副本。使用这种方法,只有一个内存副本由节点上的进程维护和共享。这允许删除在纯MPI上下文中调用集合时MPI进程之间所需的复制数据的不必要的节点上副本。我们比较了混合MPI+MPI和传统MPI的集体方法,并讨论了保证数据完整性所需的同步。我们的方法的性能已在Cray XC 40系统(Cray MPI)和NEC集群(OpenMPI)上进行了验证,表明它实现了可比或更好的性能allgather操作。我们进一步验证了我们的方法与标准的计算内核,即分布式矩阵乘法,和贝叶斯概率矩阵分解代码。
2020-07-14 cs.DC
Parallelized Kendall's Tau Coefficient Computation via SIMD Vectorized Sorting On Many-Integrated-Core Processors
Georgia Institute of Technology(佐治亚理工学院)
成对关联度量是数据分析中的一个重要操作。Kendall的tau系数是一种广泛使用的相关系数,用于识别有序变量之间的非线性关系。本文研究了一种基于Intel Xeon Phis的单指令多数据(SIMD)向量化排序并行算法,该算法利用多个处理核和512位SIMD向量指令,加速所有对Kendall的tau系数计算。为了促进工作负载平衡和克服片上存储器的限制,我们提出了一个通用的框架,对称所有对计算之间的作业标识符和坐标空间的可证明双射函数。性能评估表明,我们的算法在一个5110 P Phi实现了两个数量级的加速比16线程的MATLAB和三个数量级的加速比顺序R,都运行在高端CPU。此外,我们的算法表现出相当好的分布式计算的可扩展性方面的Phis的数量。源代码和数据集可在http://lightpcc.sourceforge.net上公开获取。
2017-04-12 cs.AI cs.DC
Lightweight MPI Communicators with Applications to Perfectly Balanced Quicksort
MPI使用通信者的概念来连接进程组。它为通信者提供了非阻塞的集体操作,以重叠通信和计算。灵活的算法需要灵活的通信器。例如,在一个示例中,一个过程可以同时处理不同过程组中的不同子问题,可以创建新的过程组,或者可以改变过程组的成员。根据通信器的数量,通信器创建的时间会大大增加算法的运行时间。此外,一个新的通信器将所有进程作为通信器创建例程阻塞集体操作。我们提出了RBC,基于MPI的通信库,创建基于范围的通信在恒定的时间没有通信。这些RBC通信器支持(非)阻塞点对点通信以及(非)阻塞集体操作。我们的实验表明,该库减少了400多个因素,而集体操作的运行时间保持不变,以创建一个新的通信器的时间。我们提出Janus快速排序,分布式排序算法,避免任何负载不平衡。我们改进了该算法的性能的一个因素,15适度的输入,通过使用红细胞通信。最后,我们讨论了不同的方法,使非阻塞(本地)通信创建轻量级(范围为基础的)通信到MPI。
2018-03-01 cs.DC
A Load-Balanced Parallel and Distributed Sorting Algorithm Implemented with PGX.D
排序一直是科学研究中最具挑战性的问题之一。虽然许多技术和算法已经提出了有效的并行排序实现的理论,然而,实现所需的性能在不同类型的架构与大量的处理器仍然是一个具有挑战性的问题。最大限度地提高应用程序的并行性水平,可以通过最小化由于负载不平衡和等待时间,由于内存延迟的开销。在本文中,我们提出了一个分布式排序算法实现PGX.D,一个快速的分布式图形处理系统,它优于Spark的分布式排序实现约2倍-3倍,通过隐藏通信延迟和最大限度地减少不必要的开销。此外,它表明,建议的PGX.D排序方法处理数据集包含许多重复的数据录入有效,并始终保持平衡的工作负载为不同的输入数据分布类型。
2017-01-14 cs.DC
Parallel Programming Model for the Epiphany Many-Core Coprocessor Using Threaded MPI
Adapteva Epiphany众核架构包括具有最少非核功能的低功耗RISC内核的2D平铺网格片上网络(NoC)。它为整数和浮点计算以及并行可扩展性提供了高计算能效。然而,尽管有有趣的架构特性,一个令人信服的编程模型还没有提出日期。本文展示了一个有效的并行编程模型的Epiphany架构的消息传递接口(MPI)标准的基础上。使用MPI利用了Epiphany架构和传统的并行分布式串行核心集群之间的相似性。我们的方法使MPI代码执行的RISC阵列处理器上的修改很少,并实现高性能。我们报告了四种算法(密集矩阵-矩阵乘法、N体粒子相互作用、五点2D模板更新和2D FFT)的线程MPI实现的基准测试结果,并强调了快速核间通信对架构的重要性。
2015-06-17 cs.DC
Integer sorting on multicores: some (experiments and) observations
对于在多核/GPU上对整数进行排序,已经有许多提议,包括基数排序及其变体或利用特定多核架构的专用硬件特征的其他方法。还使用了基于比较的算法。基于网络的算法也已经与主要示例Batcher的双调排序算法一起使用。虽然后一种方法在理论上是“低效的”,但如果要排序的键很少,它可以导致更好的运行时间,因为它具有低开销并且易于实现。在这项工作中,我们进行了实验研究,整数排序的多核处理器上使用不仅多线程,但也多处理并行编程方法。我们的实现在Open MPI,MulticoreBSP和BSPlib下工作。我们已经实现了串行和并行基数排序的各种基数,也有一些以前很少探索或未探索的变种的双调排序和奇偶换位排序。我们提供我们的观察性能评估使用MBSP模型的算法实现在多个平台和架构和多个编程库。如果我们可以得出任何结论的话,那就是通过考虑架构相关的特征(如多个存储层次结构的结构和特征)来对其性能进行建模是困难的,并且通常是不成功或不可靠的。然而,我们仍然可以得出一些非常简单的结论,使用传统的架构无关的并行建模。
2017-08-30 cs.DC
A study of integer sorting on multicores
多核和GPU上的并行排序可以通过多种方法来实现,包括基于分布的方法的变体,例如基数排序,面向比较的算法,例如确定性规则采样和随机采样并行排序,以及基于网络的算法,例如Batcher的双调排序算法。在这项工作中,我们提出了一个多核处理器上的整数排序的实验研究。我们已经实现了串行和并行基数排序的各种基数,确定性规则过采样和随机过采样并行排序,也有一些以前很少探索或未探索的变种的bitonic排序和奇偶换位排序。该研究使用多线程和多处理并行编程库,C语言实现在Open MPI,MulticoreBSP和BSPlib下使用相同的源代码。一个次要的目标是试图模拟这些算法实现的性能下的多存储器BSP(多存储器BSP)模型。我们首先提供一些一般的高层次的观察这些实现的性能。如果我们可以得出任何结论的话,那就是通过考虑架构相关的特征(例如多个存储层次结构的结构和特性)来准确预测性能是困难的,并且通常是站不住脚的。在某种程度上,这受到编程工作中使用的高级库所带来的开销的影响。然而,我们仍然可以得出一些可靠的结论和理由,这些实现的性能使用MBSP模型,从而使MBSP有用和可用。
2018-08-29 cs.DC
Performance metrics in a hybrid MPI-OpenMP based molecular dynamics simulation with short-range interactions
我们讨论了分子动力学(MD)中的计算瓶颈,并描述了并行计算密集型任务的挑战。我们提出了一种混合算法,使用MPI(消息传递接口)与OpenMP线程的并行化的广义MD计算方案的系统与短程原子间的相互作用。该算法进行了讨论的背景下,纳米压痕的铬膜与碳压头使用嵌入原子法潜在的铬-铬相互作用和Morse潜在的铬-碳相互作用。我们研究了一系列MPIthread组合的算法的性能,并发现性能强烈依赖于多核处理器中的计算任务和负载共享。该算法的MPI和我们的混合方案的规模差,观察到优于纯消息传递方案,尽管在集群中利用相同数量的处理器或核心。我们的算法实现的速度相比,取得了良好的标准MD包。
2015-07-25 cond-mat.mtrl-sci cs.DC physics.comp-ph
Scalable Unix Commands for Parallel Processors: A High-Performance Implementation
我们描述了一系列MPI应用程序,我们称之为并行Unix命令。这些命令是常见Unix用户命令(如ls、ps和find)的自然并行版本,以及一些专用于并行环境的类似命令。我们描述了这些程序的设计和实现,并提出了一些性能的256节点的Linux集群上的结果。并行Unix命令是开源的,可以免费使用。
2001-08-27 cs.DC
Implementing OpenSHMEM for the Adapteva Epiphany RISC Array Processor
高能效的Adapteva Epiphany架构在具有快速片上网络(NoC)的RISC内核的物理紧凑型2D阵列中展示了巨大的众核可扩展性。通过能够执行MIMD的完全发散的核,核和网络的物理拓扑和存储器映射能力很好地转化为分区全局地址空间(PGAS)并行编程模型。在对使用线程MPI的双侧通信的使用进行调查之后,正在探索使用SHMEM的单侧通信。在这里,我们提出了正在进行的工作上的OpenSHMEM 1.2实现的主显节架构的发展。
2016-04-14 cs.DC
BSP Sorting: An experimental Study
批量同步并行计算模型已被用于架构无关的设计和分析的并行算法,其性能表示不仅在问题的大小n,但也在并行机的性能。在本文中,确定性和随机BSP排序算法的实现的性能进行了检查。确定性算法使用确定性规则过采样和并行样本排序,并增强以最佳渐近效率透明地处理重复密钥。随机算法是基于样本排序的,并使用过采样和确定性算法引入的思想。由此产生的随机化设计,然而,不同于传统的基于并行样本排序的算法,也增加了透明地处理重复的密钥与最佳的渐近效率,从而消除了需要标记所有输入密钥和加倍的通信/计算时间。这两种算法被证明是平衡的工作负载之间的处理器和使用和精确调整过采样的BSP分析允许结合透明的重复键处理,确保定期和平衡的通信。
2014-08-28 cs.DC
$k$-ported vs. $k$-lane Broadcast, Scatter, and Alltoall Algorithms
在$k$端口的消息传递系统中,处理器可以同时从$k$其它处理器接收$k$不同的消息,并且向$k$其它处理器发送$k$不同的消息,所述其它处理器可以与从其接收消息的处理器不同或者可以不不同。现代集群系统可能不具备这种能力。相反,通过让节点上的$k$处理器同时发送和接收至多一个消息,由$n$处理器组成的计算节点可以同时发送和接收来自其他节点的$k$消息。我们提出的问题,如何设计好的算法,这$k$通道模型,可能是通过适应算法设计的传统$k$移植模型。我们讨论并比较了用于广播、分散和all-to-all集体操作的许多(非最优)$k$通道算法(如在例如,MPI),并在具有双OmniPath网络(对应于$k=2$)的小型$36\times 32$节点集群上进行实验性评估。结果是初步的。
2020-08-27 cs.DC
MPI_XSTAR: MPI-based Parallelization of the XSTAR Photoionization Program
我们描述了一个程序的并行实施多个运行的XSTAR,光电离代码,用于预测电离气体的物理性质,从其发射和/或吸收线。并行化程序MPI_XSTAR已被开发和实现的C++语言使用消息传递接口(MPI)协议,一个传统的标准的并行计算。我们已经基准并行多处理执行的XSTAR,使用MPI_XSTAR,对串行执行的XSTAR,在并行化加速和计算资源效率。我们的经验表明,并行执行运行速度明显快于串行执行,然而,在计算资源使用方面的效率随着在并行计算中使用的处理器的数量的增加而降低。
2017-11-28 astro-ph.HE astro-ph.IM cs.DC
Practical Massively Parallel Sorting
以前的并行排序算法不能扩展到最大的可用机器,因为它们要么有禁止通信量或禁止关键路线长度。我们描述的算法是一个可行的妥协,并克服这一差距,在理论和实践中。该算法是已知算法样本排序和多路归并排序的多级推广。特别是,我们的样本排序变体被证明是非常可扩展的。我们开发的一些工具可能是独立的兴趣-一个简单,实用,灵活的排序算法,用于对数时间内工作的小输入,一个近似线性时间的最佳算法,用于解决约束装箱问题,以及一个用于数据传输的算法,保证每个处理器上的消息启动数量很少。
2015-02-25 cs.DC cs.DS
Performance Analysis and Optimization of a Hybrid Distributed Reverse Time Migration Application
处理地震数据的应用程序采用可扩展的并行系统来产生及时的结果。为了充分利用新兴的处理器体系结构,应用程序将需要在节点内采用线程并行,并在节点之间传递消息。如今,MPI+OpenMP是此任务的首选编程模型。然而,为集群调优混合程序是困难的。性能工具可以帮助用户识别瓶颈并发现改进的机会。这张海报描述了我们应用Rice University的HPCToolkit和硬件性能计数器来深入了解在多核处理器集群上执行反向时间迁移(RTM)的MPI+OpenMP代码的经验。这些工具为我们提供了对域分解策略的有效性、线程并行性的使用以及单个内核中功能单元利用率的深入了解。通过应用从工具中获得的见解,我们能够将RTM代码的性能提高约30%。
2016-03-12 cs.DC
Efficient Multidimensional Data Redistribution for Resizable Parallel Computations
在集群超级计算机上运行的传统并行处理器仅支持静态调度,其中分配给应用程序的处理器数量在作业的执行过程中保持固定。这导致空闲系统资源的利用不足,从而降低了整体系统吞吐量。在我们的研究中,我们已经开发了一个原型框架称为ReSHAPE,它支持在分布式内存平台上执行的并行MPI应用程序的动态编译。ReSHAPE中的MySQL库支持释放和获取处理器,并有效地将应用程序状态重新分发到一组新的处理器。在本文中,我们推导出一个算法重新分配二维块循环数组从$P$到$Q$处理器,组织为2-D处理器网格。如果$P_r \leq Q_r$和$P_c \leq Q_c$,则该算法确保用于数据重新分配的无竞争通信调度。在其他情况下,该算法在通信调度上实现循环行和列移位,以最小化节点争用。
2007-06-14 cs.DC
Parallel FFTW on RISC-V: A Comparative Study including OpenMP, MPI, and HPX
本文在 64 核 RISC-V 与 x86-64 上对比 FFTW 的 MPI、OpenMP 并行扩展及 HPX-FFT 内存优化,揭示 8 倍性能差距与不同规划策略影响。
2025-06-10 cs.DC cs.ET
Fast parallel multidimensional FFT using advanced MPI
我们提出了一种新的方法进行全球重新分配的多维阵列必不可少的并行快速傅立叶(或类似)变换。传统方法使用连续存储器缓冲器的标准全对全集体通信,因此需要在重新分配和变换步骤之间混合的本地数据重新对齐步骤。相反,我们的方法利用子阵列datashees和广义的所有到所有的分散/收集从MPI-2标准的通信不连续的内存缓冲区,有效地消除了本地数据重新排列的需要。尽管广义的所有对所有的通信不连续的数据通常较慢,我们的建议节省了本地工作。对于一系列强和弱缩放测试,我们发现我们的方法的整体性能与MPI-FFTW,P3 DFFT和2DECOMP&FFT等成熟的库相当,并且通常更好。我们提供了紧凑的例程实现在尽可能高的水平使用MPI绑定的C程序设计语言。这些例程适用于在任意笛卡尔处理器网格(1D板,2D铅笔,甚至更高维分解)上分解的多维数组的任何两个方向上的任何全局重新分布。高级实现使代码易于阅读、维护和最终扩展。我们的方法可以在MPI实现内部数据类型处理引擎的优化,为未来的加速。
2018-04-25 cs.DC cs.MS
Comparative evaluation of bandwidth-bound applications on the Intel Xeon CPU MAX Series
本文评估了英特尔至强 MAX CPU 系列在带宽敏感型 HPC 应用上的性能,并与 Ice Lake 和 Milan-X 对比,揭示了瓶颈从带宽向通信延迟的转移,实现了 2.0 至 4.3 倍加速。
2023-09-16 cs.DC cs.PF
Parallel Algorithms for Generating Random Networks with Given Degree Sequences
随机网络被广泛用于复杂过程的建模和分析。已经提出了许多数学模型来捕获各种现实世界的网络。这些模型中最重要的一个方面是度分布。Chung-Lu(CL)模型是一种随机网络模型,它可以产生任意度分布的网络。我们今天处理的复杂系统比以往任何时候都更大,更多样化。生成任意给定度分布的、由数十亿个节点和边组成的随机网络已经成为一种必要,这需要高效的并行算法。提出了一种基于MPI的分布式内存并行算法,用于生成CL模型下的海量随机网络,该算法以高概率占用$O(\frac{m+n}{P}+P)$时间和每处理器占用$O(n)$空间,其中$n$、$m$和$P$分别为节点数、边数和处理器数.通过使用一种新的负载平衡算法,实现了时间效率。我们的算法可以很好地扩展到大量的处理器,并可以生成大规模的幂律网络与十亿个节点和$250$十亿边在一分钟内使用$1024$处理器。
2015-05-26 cs.DC
Optimal Round and Sample-Size Complexity for Partitioning in Parallel Sorting
本文研究并行排序中均衡划分的采样与直方图统计轮数及样本量复杂度,证明$O(\log^* p)$轮且每轮$O(p/\log^* p)$样本的上界及匹配下界,并证明一轮算法的最优样本下界为$\Omega(p \log p)$。
2023-05-28 cs.DC
Efficient cache oblivious algorithms for randomized divide-and-conquer on the multicore model
在本文中,我们提出了随机算法的排序和凸包,实现最佳性能(加速和缓存未命中)的多核模型与私有缓存模型。我们的算法是高速缓存不经意和概括的随机划分和征服的策略,由Reischuk和Reif和Sen。虽然这种方法产生了最佳的速度在PRAM模型,我们需要额外的技术来优化高速缓存未命中在一个不经意的设置。在对输入和处理器数量的温和假设下,我们的算法将具有最佳的时间和高速缓存未命中的高概率。虽然类似的结果已经得到最近排序,我们觉得我们的方法是简单和一般的,我们应用它来获得一个最佳的并行算法的三维凸包具有类似的界限。我们还提出了一个简单的随机处理器分配技术,没有明确的知识的处理器的数量,很可能会发现额外的应用程序在资源遗忘的环境。
2012-05-27 cs.CG cs.DC cs.DS
Distributed Processing for Encoding and Decoding of Binary LDPC codes using MPI
低密度奇偶检验(LDPC)码是在通信系统中用于前向纠错(FEC)的线性纠错码。但是,LDPC码的编码和解码需要密集的计算,使得其难以在基于通用软件的信号处理系统中实际使用。为了加速LDPC码的编码和解码,使用消息传递接口(MPI)在多个多核CPU上执行分布式处理。实现是使用流处理和批处理机制和执行时间为两种实现进行比较w.r.t变化的CPU数量和每个CPU的核心数。分布式处理的性能评估是通过执行时间w.r.t.处理器(CPU核心)数量的增加。
2022-01-12 cs.DC cs.IT eess.SP
Mixed-mode implementation of PETSc for scalable linear algebra on multi-core processors
随着多核处理器成为现代超级计算机中无处不在的构建块,现在是时候让应用程序在处理器设计中接受这些发展了。为了实现亿级性能,应用程序将需要利用现代高性能计算机中暴露的新并行级别的方法。一种典型的方法是使用共享内存编程技术来最好地利用多核节点以及节点间消息传递。在本文中,我们描述了在PETSc库中添加OpenMP线程功能。我们强调了一些问题,阻碍了线程应用程序在现代处理器上的良好性能,并描述了如何否定它们。PETSc的OpenMP分支使用从Fluidity中提取的矩阵进行基准测试,Fluidity是一种CFD应用程序代码,使用该库作为其线性求解器引擎。混合模式实现的整体性能优于纯MPI版本。
2012-08-10 cs.DC cs.PF
A Hybrid Parallel Implementation of the Aho-Corasick and Wu-Manber Algorithms Using NVIDIA CUDA and MPI Evaluated on a Biological Sequence Database
多个匹配算法被用来从一个有限的模式集在一个大的输入字符串中定位模式的出现。Aho-Corasick和Wu-Manber是两种最著名的多重匹配算法,它们需要更高的计算能力,特别是在必须处理大规模数据集的情况下,这在计算生物学应用中很常见。在过去的几年里,图形处理单元(GPU)已经发展成为强大的并行处理器,在科学计算中优于中央处理单元(CPU)。此外,可以并行使用多个GPU,形成混合计算机集群配置,以实现更高的处理吞吐量。本文评估的Aho-Corasick和Wu-Manber算法在混合GPU集群上的并行实现的加速比,当用于处理人类基因组的表达序列标签的快照和不同的问题参数。
2014-07-10 cs.CE cs.DC
Communication Round and Computation Efficient Exclusive Prefix-Sums Algorithms (for MPI_Exscan)
本文针对 MPI_Exscan 排他前缀和问题,提出一种新的简单算法,在 q=⌈log₂(p-1)+log₂(4/3)⌉ 轮通信内仅用 q-1 次 ⊕ 运算完成计算,并在 36 节点集群上验证其相对现有实现具有改进潜力。
2025-07-07 cs.DC
Comparative Analysis for Quick Sort Algorithm under four Different Modes of Execution
本文对顺序排序算法在四种不同的执行模式下的性能进行了比较,即顺序处理模式、传统的多线程实现、使用OpenMP库的多线程以及最后在超级计算机上的并行处理。快速排序算法被选择来运行由该努力执行的实验,并且该算法使用不同的数组大小和不同数量的处理器来运行。结果和调查结果进行了分析,揭示的局限性,以及使用并行顺序排序算法的增强潜力。
2021-09-03 cs.CC cs.DC
ReSHAPE: A Framework for Dynamic Resizing and Scheduling of Homogeneous Applications in a Parallel Environment
在科学和工程中的应用程序通常需要大量的计算资源,以在合理的时间范围内解决问题。并行超级计算机为解决此类问题提供了计算基础设施。在并行集群上运行的传统应用程序调度器仅支持静态调度,其中分配给应用程序的处理器数量在作业执行的整个生命周期内保持固定。由于作业到达时间的不可预测性和变化的资源需求,静态调度可能导致空闲的系统资源,从而降低整个系统的吞吐量。在本文中,我们提出了一个原型框架称为ReSHAPE,它支持动态的并行MPI应用程序在分布式内存平台上执行。该框架包括一个支持应用程序调度的调度程序、一个使应用程序能够与调度程序交互的API,以及一个使调度变得可行的库。使用ReSHAPE调度器框架执行的应用程序可以扩展以利用额外的空闲处理器,也可以缩小以适应高优先级应用程序,而不会挂起。在我们的研究中,我们主要集中在结构化的应用程序,具有分布在二维处理器网格的二维数据数组。调整大小库包括用于处理器选择和处理器映射的算法。实验结果表明,ReSHAPE框架可以提高单个作业的周转时间和系统的整体吞吐量。
2007-03-27 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
CROFT: A scalable three-dimensional parallel Fast Fourier Transform (FFT) implementation for High Performance Clusters
三维(3D)输入数据的FFT是数值模拟的重要计算核心,并且广泛用于在大量处理器上运行的高性能计算(HPC)代码中。许多科学应用的性能,如分子动力学模拟,取决于所使用的底层3D并行FFT库。本文提出了一种C-DAC三维快速傅里叶变换库,它利用束分解实现了三维并行FFT。为了在不影响性能的情况下利用处理器内核的超线程功能,CROFT被设计为与MPI一起使用多线程。CROFT实现具有使用多线程将计算和内存I/O与MPI通信重叠的创新特性。与其他3D FFT实现相反,CROFT仅使用两个线程,其中一个线程专用于通信,以便它可以有效地与计算重叠。因此,根据所使用的进程的数量,CROFT与FFTW 3库相比实现了约51%至42%的性能改进。
2020-08-27 cs.DC cs.PF
Benchmarking CRBLASTER on the 350-MHz 49-core Maestro Development Board
我描述的性能的CRBLASTER计算框架上的350 MHz的49核大师开发板(MDB)。49核临时测试芯片(ITC)由美国政府开发,基于Tilera公司的64核TILE 64处理器的知识产权。Maestro处理器用于太空中的高辐射环境; ITC是使用IBM 90 nm CMOS 9 SF技术和辐射加固设计(RHDB)规则制造的。CRBLASTER是一个并行处理宇宙射线拒绝应用程序,基于一个简单的计算框架,使用高性能计算行业标准消息传递接口(MPI)库。CRBLASTER旨在供研究科学家使用,以轻松地将基于并行算法的图像分析程序移植到并行处理环境中,例如使用MPI的多节点Beowulf集群或多核处理器。我描述了我将CRBLASTER移植到64核TILE 64处理器、Maestro模拟器以及49核Maestro处理器本身的经验。使用ITC的性能比较之间的仿真软件中的所有浮点运算和做所有浮点运算与硬件辅助从IEEE-754兼容的极光FPU(浮点单元),连接到每个49个核心。使用内存密集型L.A.COSMIC宇宙射线抑制算法和计算密集型泊松噪声发生器对CRBLASTER计算框架进行基准测试,揭示了Maestro硬件设计的微妙之处。最后,我描述了在下一代计算机硬件的测试阶段使用真正的科学应用程序的重要性;复杂的现实世界的科学应用程序可能会以新的方式强调硬件,而这些方式在执行简单的应用程序或单…
2012-01-23 astro-ph.IM cs.DC
A fast vectorized sorting implementation based on the ARM scalable vector extension (SVE)
开发人员实现其算法的方式以及这些实现在现代CPU上的行为方式由这些算法的设计和组织管理。向量化单元(SIMD)是为数不多的可以并且必须被显式控制的CPU部件之一。在HPC社区中,x86 CPU及其向量化指令集事实上是几十年来的标准。指令集的每一个新版本通常是向量长度的加倍,并伴随着新的操作。每一代人都在努力适应和改进以前的实现。ARM可扩展向量扩展(SVE)的发布从根本上改变了事情,原因有几个。首先,我们预计ARM处理器将在未来几年装备许多超级计算机。其次,SVE的接口在几个方面与x86扩展不同,因为它提供不同的指令,使用谓词来控制大多数操作,并且具有仅在执行时才知道的向量大小。因此,使用SVE为如何调整算法带来了新的挑战,包括那些已经在x86上进行了良好优化的算法。本文在快速排序和双调排序算法的基础上提出了一种混合排序算法。我们使用Bitonic排序来处理小分区/数组,并使用矢量化分区实现来划分分区。我们解释了如何使用谓词以及如何管理非静态向量大小。我们解释我们如何有效地实现排序内核。我们的方法只需要一个数组的O(log N)的递归调用在分区阶段,在顺序和并行的情况下。我们测试我们的方法在现代ARMv8.2上的性能,并通过对整数、双浮点数和整数的键/值对进行排序/分区来评估我们实现的不同层。我们的方法比GNUC ++排序算法平均快4倍。
2021-11-19 cs.DC
Distributed Quantum Computing with QMPI
量子计算机的实际应用需要数百万个物理量子位,单个量子处理器要达到这样的量子位数将是一个挑战。因此,在分布式环境中研究量子算法的资源需求是及时的,其中多个量子处理器通过相干网络互连。我们引入了消息传递接口(MPI)的扩展,以实现分布式量子算法的高性能实现。反过来,这些实现可以用于测试、调试和资源估计。除了量子MPI的原型实现,我们提出了一个分布式量子计算的性能模型,SENDQ。该模型的灵感来自经典的LogP模型,使得它在分布式量子计算机编程时能够为算法决策提供信息。具体来说,我们考虑了两个量子算法的物理和化学问题的几个优化,我们详细介绍了它们对SENDQ模型性能的影响。
2021-05-03 cs.DC cs.ET quant-ph
Parallel Spherical Harmonic Transforms on heterogeneous architectures (GPUs/multi-core CPUs)
球谐变换(SHT)是许多科学和实际应用的核心,从气候建模到宇宙学观测。在其中许多领域,最近提出了新的尖端科学目标,要求以非常高的分辨率和前所未有的数量模拟和分析实验或观测数据。这两个方面都对当前现有的转换实现提出了巨大的挑战。本文介绍了计算SHT的并行算法,适用于新的超级计算机体系结构,多核处理器和图形处理单元(GPU)的节点内并行的两个变种。它还讨论了它们的性能,单独和嵌入在一个顶级的,基于MPI的并行化层从S2 HAT库移植,在他们的准确性,整体效率和可扩展性。我们表明,我们的反向SHT运行在GeForce 400系列GPU配备了最新的CUDA架构(“费米”)优于最先进的实现的多核处理器上执行当前的英特尔酷睿i7- 2600 K。此外,我们表明,MPI/CUDA版本的逆变换运行在一个集群的128英伟达特斯拉S1070是多达3倍的速度比混合MPI/OpenMP版本上执行相同数量的四核处理器英特尔Nahalem的问题大小,我们的目标应用程序。然而,在这些情况下,发现直接变换的性能是最好的可比性。我们详细讨论的算法解决方案设计的主要步骤中涉及的变换计算,强调那些有重大影响的整体性能,并阐明了直接和逆操作之间的二分法的来源。
2013-04-01 astro-ph.CO cs.DC physics.ao-ph
Increasing the Efficiency of Sparse Matrix-Matrix Multiplication with a 2.5D Algorithm and One-Sided MPI
矩阵-矩阵乘法是线性代数中的基本运算,也是各种科学领域中广泛算法的重要组成部分。理论和实现的密集,方阵的情况下是发达国家。如果矩阵是稀疏的,具有特定于应用程序的稀疏模式,那么最佳实现仍然是一个悬而未决的问题。在这里,我们探讨了通信减少2.5D算法和单边MPI通信的线性标度电子结构理论的背景下的性能。特别是,我们扩展了DBCSR稀疏矩阵库,这是线性标度电子结构理论和低标度相关方法在CP 2K的基本构建块。该库专门设计用于有效地执行占用相对较大的矩阵的块稀疏矩阵-矩阵乘法。在这里,我们比较了性能的基础上,大炮的算法和MPI点对点通信的原始实现,与基于MPI单边通信(RMA)的实现,在2D和2.5D的方法。2.5D方法用内存和辅助操作来减少通信,如果通信占主导地位,这可能会导致加速。2.5D算法在单边通信中更容易实现。的实施提供了详细的描述,也为非理想的处理器拓扑结构,因为这是重要的实际应用。考虑到精确稀疏模式的重要性,甚至是决定乘法时有效填充的实际矩阵数据,测试在CP 2K包中使用应用程序基准进行。结果显示,基于RMA的2.5D算法的性能大幅提高,高达1.80倍,这是观察到的并行化中所涉及的进程的数量增加。
2017-05-29 cs.DC cs.MS
MPI-FAUN: An MPI-Based Framework for Alternating-Updating Nonnegative Matrix Factorization
Oak Ridge National Laboratories(橡树岭国家实验室);Wake Forest University(维克森林大学);Georgia Institute of Technology(佐治亚理工学院)
本文提出MPI-FAUN框架,用于高效解决大规模非负矩阵分解问题,通过交替求解非负最小二乘子问题,实现并行计算,支持多种算法并能处理大规模密集和稀疏数据集。
2016-09-28 cs.DC cs.NA math.NA
The Parallel Persistent Memory Model
我们考虑一个并行计算模型,由$P$处理器,每个处理器具有有限大小的快速本地临时存储器,并共享一个大的持久存储器。该模型允许每个处理器以有限的概率发生故障,并可能重新启动。在出错时,所有处理器状态和本地临时内存都将丢失,但持久内存将保留。该模型的动机是即将到来的非易失性存储器,其与现有的随机存取存储器一样快,可以在高速缓存行的粒度下访问,并且具有在断电时幸存的能力。它进一步动机的观察,在大型并行系统中,处理器和它们的高速缓存的故障是不寻常的。在该模型中,我们开发了一个框架,用于开发具有故障恢复能力的局部高效并行算法。存在若干挑战,包括需要从故障中恢复,期望在异步设置中这样做(即,当一个处理器发生故障时不阻塞其它处理器),以及需要对故障鲁棒的同步原语。我们描述的方法来解决这些挑战的基础上打破计算到什么,我们称之为胶囊,它具有某些属性,并开发一个工作窃取调度程序,在故障的上下文中正常工作。调度程序保证$O(W/P_A + D(P/P_A) \lceil\log_{1/f} W\rceil)$的预期时间范围,其中$W$和$D$是计算的工作和深度(在没有故障的情况下),$P_A$是计算期间可用处理器的平均数量,$f \le 1/2$是胶囊失败的概率。在该模型中,并使用所提出的方法,我们开发了高效的并行排序和其他原语的算法。
2018-06-13 cs.DC
AcceleratedKernels.jl: Cross-Architecture Parallel Algorithms from a Unified, Transpiled Codebase
AcceleratedKernels.jl是Julia中并行计算的后端不可知库,通过独特的编译架构原生针对NVIDIA,AMD,Intel和Apple加速器。它以统一、紧凑的代码库编写,可以实现高效的并行编程,最大限度地降低实现和使用的复杂性。算术重内核的基准测试显示,性能与C和OpenMP多线程CPU实现相当,Julia有时提供比传统C编译器更一致和可预测的数值性能。卓越的可组合性是突出的,因为同时CPU-GPU协同处理是可实现的-例如CPU-GPU协同排序-透明使用硬件专用的MPI实现。在Baskerville Tier 2 UK HPC集群上进行的测试表明,使用200个NVIDIA A100 GPU,可以实现538-855 GB/s的世界级排序吞吐量,与文献报道的在262,144个CPU内核上实现的900 GB/s的最高数据相当。直接NVLink GPU到GPU互连的使用导致平均4.93倍的加速;通过综合资本,运行和环境成本进行标准化,如果采用GPUDirect互连,通信繁重的HPC任务只有在GPU上才具有经济可行性。
2025-07-22 cs.DC cs.PF
The spatial computer: A model for energy-efficient parallel computation
我们提出了一种新的并行计算模型,适用于空间架构,用于通信的能量在很大程度上取决于通信处理器的距离。在我们的模型中,处理器在一个概念性的二维网格上的位置,它们在其中的距离决定了它们的通信成本。特别是,我们引入了空间计算的能量成本,它测量所有消息传播的总距离,并研究了通信的深度,它测量了消息链的最大跳数。我们显示匹配的能量下限和上限的许多基础问题,包括排序,中位数选择和矩阵乘法。我们的模型不依赖于输入形状和大小以外的任何参数,简化了算法分析。我们还展示了如何在我们的模型中模拟PRAM算法,以及如何获得一个更复杂的模型,介绍了作为参数的处理器的本地存储器的大小的结果。
2023-01-17 cs.DC cs.DS
High performance Python for direct numerical simulations of turbulent flows
Navier-Stokes方程的直接数值模拟(DNS)是流体动力学中一个非常有价值的研究工具。尽管如此,仍然很少有公开的研究代码,由于隐含的大量数字运算,可用的代码通常是用低级语言编写的,如C/C++或Fortran。在本文中,我们描述了一个纯科学的Python伪谱DNS代码,它在数千个处理器和数十亿个未知数的情况下几乎与C++的性能相匹配。我们还描述了一个通过Cython优化的版本,该版本被发现与C++的速度相匹配。求解器是用Python从头开始编写的,包括网格、MPI域分解和时间积分器。求解器已经在KAUST超级计算实验室的Shaheen超级计算机上进行了验证和基准测试,我们能够很好地扩展到数千个核心。实现的一个非常重要的部分是网格分解(我们实现了板和铅笔分解)和3D并行快速傅立叶变换(FFT)。网格分解和FFT例程已在Python中使用串行FFT例程(NumPy,pyFFTW或任何其他串行FFT模块),NumPy数组操作以及MPI for Python(mpi 4py)处理的MPI通信来实现。我们展示了如何使用4行紧凑的Python代码在Python中执行3D并行FFT以进行平板网格分解,发现Shaheen上的并行性能略好于FFTW库提供的类似例程。对于铅笔网格分解,需要7行代码来执行变换。
2016-02-11 cs.DC cs.MS
Geometric Partitioning and Ordering Strategies for Task Mapping on Parallel Computers
提出了一种将应用程序的MPI任务映射到并行计算机核上的新方法,从而减少了应用程序的通信时间。我们解决稀疏节点分配的情况下,分配给一个工作的节点不一定位于一个连续的块,也不一定在网络中彼此接近,虽然我们的方法推广到连续的分配以及。目标是将任务分配给核心,以便由“附近”的核心执行相互依赖的任务,从而降低消息必须传输的距离,网络中的拥塞量以及通信的总体成本。我们的新方法适用于几何划分算法的任务和处理器,并分配任务部分相应的处理器部分。我们还提出了一些算法优化,利用网络或应用程序的特定功能。我们发现,对于结构化有限差分迷你应用程序MiniGhost,我们的映射方法减少了通信时间高达75%相对于MiniGhost的默认映射128 K核心的Cray XK 7稀疏分配。对于大气建模代码E3 SM/HOMME,我们的方法减少了31%的IBM BlueGene/Q连续分配的32 K核心的通信时间。
2018-04-25 cs.DC
Highly Parallel Sparse Matrix-Matrix Multiplication
Lawrence Berkeley National Laboratory(劳伦斯伯克利国家实验室);University of California, Santa Barbara(加利福尼亚大学圣塔芭芭拉分校)
针对广义稀疏矩阵-矩阵乘法,提出基于二维块分布和超稀疏内核的并行算法,实现处理器数量无限制下的加速,并通过MPI实现验证了数千处理器上的可扩展性。
2010-06-11 cs.DC cs.MS cs.NA
Myrmics: Scalable, Dependency-aware Task Scheduling on Heterogeneous Manycores
基于任务的编程模型已经变得非常流行,因为它们提供了一种有吸引力的解决方案,可以并行化带有任务和数据注释的串行应用程序代码。它们通常依赖于一个运行时系统,该系统将任务并行调度到多个核心,同时解决任何数据风险。然而,现有的运行时系统实现还没有准备好在新兴的众核处理器上很好地扩展,因为它们通常依赖于高速缓存一致性存储器中的集中式结构和/或共享结构上的锁。我们提出的设计选择,政策和机制,以提高运行时系统的可扩展性,为数百个核心的单芯片处理器。基于这些概念,我们创建和评估Myrtle,一个运行时系统的依赖性感知,基于任务的编程模型上的异构硬件原型平台,模拟一个单芯片处理器的8延迟优化和512吞吐量优化的CPU。我们发现,Myrandom成功地扩展到数百个核心。与具有手动调优消息传递的相同基准测试的MPI版本相比,Myrtle实现了类似的可伸缩性,性能开销为10-30%,但编程工作量更少。我们详细分析了运行时系统的可扩展性,并确定了关键因素,有助于它。
2016-06-14 cs.DC cs.PL
LGRASS: Linear Graph Spectral Sparsification for Final Task of the 3rd ACM-China International Parallel Computing Challenge
本文介绍了我们的解决方案,第三届ACM-China IPCC的优化任务。通过复杂度分析,找出了原算法的三个耗时子程序:边标记、伪逆计算和边排序。这些子程序由于其超线性的时间复杂度而成为主要的性能瓶颈。为了解决这个问题,我们提出了LGRASS,一个线性图谱稀疏算法,运行在严格的线性时间。LGRASS利用生成树的特性和有效的算法来优化瓶颈子程序。此外,我们精心设计了一个并行处理方案LGRASS充分利用多处理器的硬件。实验表明,我们提出的方法完成任务在几十毫秒的正式测试用例,并保持其线性的图大小的随机测试用例的规模。
2022-12-14 cs.DC
rDLB: A Novel Approach for Robust Dynamic Load Balancing of Scientific Applications with Parallel Independent Tasks
科学应用程序通常包含大型和计算密集型并行循环。动态循环自调度(DLS)用于在高性能计算(HPC)系统上实现此类应用程序的平衡负载执行。大型HPC系统易受处理器或节点故障以及资源可用性扰动的影响。大多数自调度方法不考虑容错调度,或者依赖于故障或扰动检测,并通过重新调度失败的任务来做出反应。在这项工作中,一个强大的动态负载均衡(rDLB)方法提出了强大的独立任务的自我调度。所提出的方法是主动的,不依赖于故障或扰动检测。理论分析表明,该方法具有线性可扩展性,且开销随系统规模的增加呈二次方下降。rDLB集成到MPI DLS库中,通过两个计算密集型科学应用程序通过实验评估其性能。结果表明,rDLB使容忍高达(P减一)处理器故障,其中P是执行应用程序的处理器的数量。在存在扰动的情况下,与没有rDLB的对应物相比,rDLB将DLS技术的鲁棒性提高了30倍,并将应用程序执行时间降低了7倍。
2019-10-04 cs.DC cs.PF
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