Comparison of parallel sorting algorithms
在我们的研究中,我们实现和比较了七个顺序和并行排序算法:双调排序,多步双调排序,自适应双调排序,合并排序,快速排序,基数排序和样本排序。顺序算法使用C++在中央处理单元上实现,而并行算法使用CUDA平台在图形处理单元上实现。我们之所以选择这些算法,是因为据我们所知,它们的顺序和并行实现还没有在同一个执行环境中进行比较。我们改进了上述实现,并采用它们来对任意长度的输入序列进行排序。我们比较了六种不同输入分布的算法,包括32位数字,32位键值对,64位数字和64位键值对。在这份报告中,我们给出了一个简短的描述七个排序算法和所有的结果,我们的测试。
2015-11-12 cs.DC
EvoSort: A Genetic-Algorithm-Based Adaptive Parallel Sorting Framework for Large-Scale High Performance Computing
EvoSort通过遗传算法实现自适应并行排序,有效提升大规模数据处理效率,实验显示其在处理10十亿元素时达到225倍加速。
2026-01-01 cs.DC
Practical Massively Parallel Sorting
以前的并行排序算法不能扩展到最大的可用机器,因为它们要么有禁止通信量或禁止关键路线长度。我们描述的算法是一个可行的妥协,并克服这一差距,在理论和实践中。该算法是已知算法样本排序和多路归并排序的多级推广。特别是,我们的样本排序变体被证明是非常可扩展的。我们开发的一些工具可能是独立的兴趣-一个简单,实用,灵活的排序算法,用于对数时间内工作的小输入,一个近似线性时间的最佳算法,用于解决约束装箱问题,以及一个用于数据传输的算法,保证每个处理器上的消息启动数量很少。
2015-02-25 cs.DC cs.DS
Parallel Sorting System for Objects
传统的排序算法使用诸如数组、文件和列表的数据结构,这些数据结构定义了要排序的项目的访问方法。传统的交换排序、分治排序、选择排序、插入排序等方法都需要监控程序。监督控制程序可以访问这些项目,并负责将它们按正确的顺序排列。本文提出了一种不同的排序算法,不需要监督控制程序。对象会自行排序,并且在排序完成时能够终止。该算法还采用了并行处理机制,以提高其效率和有效性。本文对传统的排序方法进行了回顾,找出了它们的优缺点,并提出了一种基于概念组合的不同设计。设计的算法在Java桌面应用程序中实现和测试
2012-09-13 cs.DC cs.DS
Robust Massively Parallel Sorting
我们调查分布式内存并行排序算法,规模最大的可用机器和强大的输入大小和分布的输入元素。主要的结果是,四个排序算法涵盖了整个范围的可能的输入大小。对于三个算法,我们设计了新的低开销机制,使他们强大的重复键和倾斜的输入分布。其中之一,专为中等规模的投入,是一个快速的高品质的枢纽选择快速排序的新变种。同时,渐近分析提供了性能保证,并指导算法的选择和配置。我们验证这些假设使用广泛的实验7算法,10个输入分布,多达262144个核心,和不同的输入大小超过9个数量级。对于困难的输入分布,我们的算法是唯一有效的算法。除了最大的输入大小,我们是第一个在如此大的机器上进行实验的人,我们的算法明显优于传统上认为的算法。
2020-01-16 cs.DC
BSP Sorting: An experimental Study
批量同步并行计算模型已被用于架构无关的设计和分析的并行算法,其性能表示不仅在问题的大小n,但也在并行机的性能。在本文中,确定性和随机BSP排序算法的实现的性能进行了检查。确定性算法使用确定性规则过采样和并行样本排序,并增强以最佳渐近效率透明地处理重复密钥。随机算法是基于样本排序的,并使用过采样和确定性算法引入的思想。由此产生的随机化设计,然而,不同于传统的基于并行样本排序的算法,也增加了透明地处理重复的密钥与最佳的渐近效率,从而消除了需要标记所有输入密钥和加倍的通信/计算时间。这两种算法被证明是平衡的工作负载之间的处理器和使用和精确调整过采样的BSP分析允许结合透明的重复键处理,确保定期和平衡的通信。
2014-08-28 cs.DC
Parallel String Sample Sort
我们讨论如何字符串排序算法可以在现代多核共享内存机器上并行化。作为对原子对象的最佳顺序字符串排序算法和成功的并行排序算法的综合,我们提出了字符串样本排序。该算法有效地利用了存储层次结构,使用额外的字级并行,并在很大程度上避免了分支误预测。此外,我们并行化多键快速排序和基数排序的变体,这些变体在某些情况下也很有用。
2013-05-06 cs.DC cs.DS
Parallel Integer Sort: Theory and Practice
UC Riverside(加州大学河滨分校);University of Maryland(马里兰大学)
本文研究并行整数排序的理论与实践,提出理论高效且性能良好的新算法DovetailSort,解决现有算法中检测和利用重复键的难题。
2024-01-01 cs.DC cs.DS
A study of integer sorting on multicores
多核和GPU上的并行排序可以通过多种方法来实现,包括基于分布的方法的变体,例如基数排序,面向比较的算法,例如确定性规则采样和随机采样并行排序,以及基于网络的算法,例如Batcher的双调排序算法。在这项工作中,我们提出了一个多核处理器上的整数排序的实验研究。我们已经实现了串行和并行基数排序的各种基数,确定性规则过采样和随机过采样并行排序,也有一些以前很少探索或未探索的变种的bitonic排序和奇偶换位排序。该研究使用多线程和多处理并行编程库,C语言实现在Open MPI,MulticoreBSP和BSPlib下使用相同的源代码。一个次要的目标是试图模拟这些算法实现的性能下的多存储器BSP(多存储器BSP)模型。我们首先提供一些一般的高层次的观察这些实现的性能。如果我们可以得出任何结论的话,那就是通过考虑架构相关的特征(例如多个存储层次结构的结构和特性)来准确预测性能是困难的,并且通常是站不住脚的。在某种程度上,这受到编程工作中使用的高级库所带来的开销的影响。然而,我们仍然可以得出一些可靠的结论和理由,这些实现的性能使用MBSP模型,从而使MBSP有用和可用。
2018-08-29 cs.DC
Sorting, Searching, and Simulation in the MapReduce Framework
在本文中,我们从算法的角度研究MapReduce框架,并通过设计和分析基本排序,搜索和模拟问题的高效MapReduce算法来证明我们的方法的有用性。本研究的目的是最终将MapReduce框架置于与著名的PRAM和BSP并行模型相同的理论基础上,这将有利于MapReduce算法的理论和实践。我们描述了高效的MapReduce算法排序,多搜索,并在BSP和CRCW PRAM模型中指定的并行算法的模拟。我们还提供了一些应用这些结果的问题并行计算几何的MapReduce框架,从而导致有效的MapReduce算法排序,2-和3-维凸包,和固定维线性规划。对于映射器和归约器的内存/消息I/O大小为$M=Θ(N^ε)$的情况,对于一个小的常量$ε>0$,我们为这些应用程序设计的所有MapReduce算法都以常量轮数运行。
2011-01-10 cs.DC
Optimal Metastability-Containing Sorting via Parallel Prefix Computation
Friedrichs等人(TC 2018)表明,当对时间数字转换器产生的输入进行排序时,可以包含亚稳态,即,测量值可以被正确地分类,而无需首先使用同步器解决亚稳态。然而,这项工作是否可以通过小电路来完成尚不清楚。我们表明,这确实是可能的,通过提供一个电路,排序格雷码输入(可能包含一个亚稳态位),并具有渐近最佳的深度和大小。我们的解决方案利用并行前缀计算(PPC)框架(JACM 1980)。我们通过任意$f \geq 3$约束其扇出来改进这种构造,而不影响深度,并且仅通过一个小的常数因子来增加电路尺寸。因此,我们获得了第一个PPC电路具有渐近最佳的大小,恒定扇出,和最佳的深度。为了表明应用PPC框架的排序任务是可行的,我们证明了后者可以,尽管潜在的亚稳定性,被分解,使核心操作是关联的。我们得到了渐近最优的亚稳态包含排序网络。我们补充这些结果与模拟,独立验证的正确性,以及我们的电路的小尺寸和延迟。
2019-11-01 cs.AR cs.DC
Performance Evaluation of Parallel Sortings on the Supercomputer Fugaku
本研究在超级计算机Fugaku上实现了两种基于样本排序的多线程并行排序算法,并证明结合BlockQuicksort与选择树的第二种算法在各类数据下均实现高速度与高并行效率。
2023-05-09 cs.DC cs.NA cs.PF
LCP-Aware Parallel String Sorting
当对字符串进行字典排序时,并不总是需要检查所有符号。例如,“europar”在字符串“eureka”、“eurasia”和“excells”中的词典排名仅取决于其所谓的相关前缀“euro”。一组字符串的区别前缀大小$D$是建立所有字符串的字典序时实际需要检查的符号数。有效的字符串排序器应该是$D$感知的,即它们的复杂性应该取决于$D$而不是所有字符串中所有符号的总数$N$。虽然在顺序设置中有许多$D$感知的排序器,但在PRAM模型中似乎没有这样的结果。我们提出了一个框架,产生一个$D$感知修改任何现有的PRAM字符串排序。导出的算法相对于其原始算法是工作最优的:如果原始算法需要$O(w(N))$工作,则导出的算法需要$O(w(D))$工作。执行时间仅增加一个小的因子,该因子是最长相关前缀长度的对数。我们的框架普遍适用于PRAM模型的所有变体中的确定性和随机算法,因此未来($D$ -不知道)并行字符串排序的改进将直接导致$D$ -知道并行字符串排序的改进。
2020-06-03 cs.DC cs.DS
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
Scalable String and Suffix Sorting: Algorithms, Techniques, and Tools
本文主要研究两个基本的排序问题:字符串排序和后缀排序。第一部分考虑共享内存多核机器上的并行字符串排序,第二部分使用归纳排序原理进行外部内存后缀排序,第三部分使用新的分布式算法大数据框架Thrill进行分布式外部内存后缀排序。
2018-08-02 cs.DC cs.DS
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
Integer sorting on multicores: some (experiments and) observations
对于在多核/GPU上对整数进行排序,已经有许多提议,包括基数排序及其变体或利用特定多核架构的专用硬件特征的其他方法。还使用了基于比较的算法。基于网络的算法也已经与主要示例Batcher的双调排序算法一起使用。虽然后一种方法在理论上是“低效的”,但如果要排序的键很少,它可以导致更好的运行时间,因为它具有低开销并且易于实现。在这项工作中,我们进行了实验研究,整数排序的多核处理器上使用不仅多线程,但也多处理并行编程方法。我们的实现在Open MPI,MulticoreBSP和BSPlib下工作。我们已经实现了串行和并行基数排序的各种基数,也有一些以前很少探索或未探索的变种的双调排序和奇偶换位排序。我们提供我们的观察性能评估使用MBSP模型的算法实现在多个平台和架构和多个编程库。如果我们可以得出任何结论的话,那就是通过考虑架构相关的特征(如多个存储层次结构的结构和特征)来对其性能进行建模是困难的,并且通常是不成功或不可靠的。然而,我们仍然可以得出一些非常简单的结论,使用传统的架构无关的并行建模。
2017-08-30 cs.DC
Massively-Parallel Heat Map Sorting and Applications To Explainable Clustering
Sharif University of Technology(谢里夫理工大学)
本文提出了热图排序问题以在保持簇连通性的前提下重排与合并点及维度,证明了其NP难性,并给出了大规模并行计算模型下的常数轮次固定参数算法及NP难特例的近似算法,实证表明其优于k-means和DBSCAN。
2023-09-14 cs.DC cs.DS cs.LG
FLiMS: a Fast Lightweight 2-way Merger for Sorting
在本文中,我们提出了FLiMS,一个高效和简单的并行算法合并两个排序表驻留在银行和/或宽内存。在FPGA上,由于减少了比较器的数量并消除了先前尝试中发现的冗余逻辑,因此其实现比最先进的替代方案使用更少的硬件资源。结合选择器级的分布式特性,对于相同数量的并行性或更高的并行性,可以实现更高的性能。这在许多应用中是有用的,例如在并行合并树中实现高吞吐量排序,其中合并的资源利用对于构建大型树和内部化工作负载以实现快速计算是至关重要的。还提出了FLiMS的有效变化,用于优化偏斜数据集的吞吐量,实现稳定的排序或使用更少的出队信号。此外,FLiMS在支持单指令多数据(SIMD)指令的现代CPU上表现得与传统软件一样好,超过了一些标准库的排序性能。
2022-03-07 cs.AR 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
Leyenda: An Adaptive, Hybrid Sorting Algorithm for Large Scale Data with Limited Memory
排序是现代数据管理系统的基本任务之一。随着磁盘I/O成为最受指责的性能瓶颈和更多计算密集型工作负载,我们注意到,在异构环境中,性能瓶颈可能因基础设施而异。因此,排序内核需要适应不断变化的硬件条件。在本文中,我们提出了Leyenda,一个混合的,并行的和高效的基数最高有效位(MSB)合并排序算法,利用本地线程级CPU缓存和高效的磁盘/内存I/O。Leyenda能够根据不同的I/O和处理条件有效地进行内部或外部分拣。我们使用Sort Benchmark的三种不同工作负载对Leyenda进行了基准测试,针对三种独特的用例,包括内部,部分内存和外部排序,我们发现Leyenda的性能超过GNU的并行内存快速/合并排序实现多达三倍。Leyenda还在ACM 2019 SIGMOD编程竞赛中排名第二,总体排名第四。
2019-09-17 cs.DB cs.DC cs.DS
Merge Path - A Visually Intuitive Approach to Parallel Merging
合并两个已排序数组是排序和其他函数的重要构建块。其高效的并行化要求在计算核心之间平衡负载,最大限度地减少并行化带来的额外工作,并最大限度地减少线程间同步要求。有效使用内存也很重要。我们提出了一种新颖的、视觉上直观的方法,将两个输入排序数组划分为成对的连续元素序列,每个数组一个,使得1)每对包括任何所需的元素总数,以及2)每对的元素在输出合并排序数组中形成连续序列。虽然所得到的分区和计算复杂性类似于某些以前的算法,我们的方法是不同的,非常直观,并提供了有趣的见解。在此基础上,我们提出了一个无同步,高速缓存效率的合并(和排序)算法。虽然我们使用共享内存架构作为基础,我们的算法很容易适应其他架构。事实上,我们的方法甚至与高速缓存高效顺序排序有关。算法,以及重要的高速缓存相关的见解。
2014-06-20 cs.DC
Engineering In-place (Shared-memory) Sorting Algorithms
我们目前的排序算法,代表了最快的已知技术的输入大小,输入分布,数据类型,和机器的范围很广。速度优势的一部分是由于就地工作的特性。以前,就地特性通常意味着性能损失。我们的主要算法贡献是一个blockwise方法,就地数据分布,可证明是高速缓存效率。我们还并行化这种方法,考虑到动态负载均衡和内存局部性。我们的比较为基础的算法,就地超标量样本排序(IPS $^4$ o),结合了这种技术与无分支决策树。考虑到许多相同的元素的情况下,并通过动态适应的分布度,我们得到了一个非常强大的算法,优于最好的并行比较为基础的竞争对手的几乎三个因素。IPS $^4$ o在就地或非就地、并行或顺序设置中的性能也优于基于比较的最佳竞争产品。IPS $^4$ o在很多情况下甚至优于最好的整数排序算法。在其余的许多情况下(通常涉及近似均匀的输入分布,小键或顺序设置),我们的新就地基数排序器是最好的算法。在某种意义上,声称拥有“最好”的排序算法可以在许多论文中找到,但这些论文并不都是真的。因此,我们的结论是基于广泛的实验,涉及21个国家的最先进的排序代码,6个数据类型,10个输入分布,4台机器,4个内存分配策略,和输入大小变化超过7个数量级的交叉产品的很大一部分。这证实了我们的算法的强大性能,同时揭示了在相关出版物中报告的具体测量集之外的许多竞争对手的主要性能问题。
2021-02-03 cs.DC
Parallel bi-objective evolutionary algorithms for scalable feature subset selection via migration strategy under Spark
用于分类的特征子集选择(FSS)本质上是一个双目标优化问题,其中的任务是获得一个特征子集,该特征子集以最小的基数产生最大可能的受试者操作者特征曲线(AUC)下的面积。在当今世界,人类的所有活动都会产生大量的数据。为了挖掘这种大量的数据,这往往是高维的,有必要开发并行和可扩展的框架。在第一次的同类研究中,我们提出并开发了一个迭代MapReduce为基础的框架的双目标进化算法(EA)的包装下Apache火花与迁移策略。为了实现这一目标,我们对基于非支配排序的算法(NSGA-Ⅱ)和非支配排序粒子群优化算法(NSPSO)以及基于分解的算法(MOEA-D)进行了并行化,分别命名为P-NSGA-II-IS、P-NSPSO-IS和P-MOEA-D-IS。我们提出了一种改进的MOEA-D,通过将非支配排序原则合并到并行化中。我们在各种数据集上测试了所提出的方法的有效性。值得注意的是,P-NSGA-II在大多数数据集上都处于前2位,具有统计学意义。我们还报告了经验达到图,加速分析,和平均AUC获得的最重复的特征子集和最少的基数特征子集具有最高的AUC,和多样性分析使用hypervolume。
2022-05-19 cs.DC
High-Performance Sorting-Based k-mer Counting in Distributed Memory with Flexible Hybrid Parallelism
针对现有分布式内存k-mer计数方法缓存效率低、内存消耗高、并行灵活性不足的问题,提出基于排序的HySortK计数器,通过优化通信与混合并行实现性能提升与内存降低,并验证了实际集成效果。
2024-07-10 cs.DC q-bio.GN
Even faster sorting of (not only) integers
本文介绍了基于基数算法的最快并行排序器RADULS 2。它经过优化,可以利用现代多核CPU处理大量数据。主要创新包括:非常优化的算法,用于处理可能出现数十亿次的小数组(多达约100个记录),作为子问题处理,并改进了更大子数组的处理,更好地使用非临时内存存储。
2017-03-02 cs.DC cs.DS
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
A Randomised Approach to Distributed Sorting
本文提出一种基于随机选择下标对进行局部排序的调和排序器,其时间复杂度为 O(n(log n)^2),并展示了其在异步与同步环境下的线性加速并行化能力,适用于分布式计算场景。
2025-02-07 cs.DC cs.DM cs.DS
Parallel Sampling from the Ising $p$-Spin Model
Stanford University(斯坦福大学)
研究从高温伊辛混合p-自旋吉布斯测度采样的并行复杂度,提出两种算法。一种结合块动力学与近似拒绝采样,另一种用皮卡迭代并行化ASL过程,相比朴素ASL在运行时和工作量的\(\varepsilon\)依赖性上有显著改进。
2026-07-15 cs.DC cs.DS
Scalable Distributed-Memory External Sorting
我们设计算法,在大规模并行机器上对庞大的数据集进行排序。该算法是基于多路合并范式。我们首先概述了一个算法,其I/O的要求是接近下限。因此,与多路合并的天真实现和我们已知的所有其他方法相比,即使对于最大的可想象的输入,该算法也只对数据进行两次传递。第二种算法减少了通信开销,并以略微增加I/O要求为代价使用更传统的结果规范。一个实现在几个类别中赢得了众所周知的排序基准,并在很大程度上超过了它的竞争对手。
2009-10-14 cs.DC cs.DS cs.PF
Comparative Analysis for Quick Sort Algorithm under four Different Modes of Execution
本文对顺序排序算法在四种不同的执行模式下的性能进行了比较,即顺序处理模式、传统的多线程实现、使用OpenMP库的多线程以及最后在超级计算机上的并行处理。快速排序算法被选择来运行由该努力执行的实验,并且该算法使用不同的数组大小和不同数量的处理器来运行。结果和调查结果进行了分析,揭示的局限性,以及使用并行顺序排序算法的增强潜力。
2021-09-03 cs.CC cs.DC
Aggregating over Dominated Points by Sorting, Scanning, Zip and Flat Maps
本文证明常数维空间中支配点聚合可通过排序、zip、前缀聚合和 flat map 等 O(1) 个基本操作实现,从而表明前缀聚合足以表达其多维推广,并便于迁移到分布式架构。
2023-05-26 cs.DC
High Performance Parallel Sort for Shared and Distributed Memory MIMD
我们提出了四种高性能的混合排序方法开发的各种并行平台:共享内存多处理器,分布式多处理器,集群利用共享和分布式内存的存在。合并排序以其稳定性而闻名,被用于设计我们的几个算法。我们通过将其与快速排序相结合来提高其并行性能。我们提出了两个模型设计的共享内存MIMD(OpenMP):(a)一个非递归的合并排序和(b)混合快速排序和合并排序。第三个模型是设计用于分布式内存MIMD(MPI)使用混合快速排序和合并排序。我们的第四个模型的目的是利用共享内存的各个节点的今天的集群系统,并消除所有的内部数据传输之间的不同节点,我们的模型实现了一个一步MSD-Radix分发数据在10个包(MPI),而每个节点的并行核心使用Quicksort排序他们的数据分区顺序,然后合并和排序他们在并行采用OpenMp。所有开发的模型的性能优于基线性能。在对小数据进行排序时,混合快速排序和合并排序的性能优于集群平台中使用混合MSD-Radix和快速排序的混合内存并行合并排序,但对于较大的数据,集群平台中使用混合MSD-Radix和快速排序的混合内存并行合并排序的加速比变得更大并且不断改进。其中分布存储并行混合快速排序和归并排序的加速比最好。
2020-03-02 cs.DC
GPGPU-Parallel Re-indexing of Triangle Meshes with Duplicate-Vertex and Unused-Vertex Removal
我们描述了一种简单而高度并行的方法,用于重新索引“索引”数据集,如三角形网格或非结构化网格数据集-这是有用的操作,如删除重复或未使用的顶点,合并不同的网格等。特别是,我们的方法是并行和GPU友好的意义上,它的所有步骤都是平凡的并行,或使用GPU并行原语,如排序,前缀和;从而使其非常适合于像GPU这样的高度并行架构。
2021-09-20 cs.DC cs.DS
Undirected $(1+\varepsilon)$-Shortest Paths via Minor-Aggregates: Near-Optimal Deterministic Parallel & Distributed Algorithms
本文提出了计算任意无向赋权图中$(1+\varepsilon)$ -近似单源最短路径的近优确定性并行和分布式算法。在一个高层次上,我们确定性地减少这个和其他最短路径的问题,以$\tilde{O}(1)$次要聚合。Minor-Aggregation计算聚合(例如,最大值或总和)的节点值为每个连通分支的一些子图。我们的减少立即意味着:最佳确定性并行(PRAM)算法与$\tilde{O}(1)$深度和近线性工作。普遍最优的确定性分布式(CONGEST)算法,只要存在确定性Minor-Aggregate算法。例如,用于排除次要网络的最优$\tilde{O}(HopDiameter(G))$轮确定性CONGEST算法。几个新的工具开发的上述结果是有趣的,在自己的权利:一个本地的迭代方法减少最短路径计算“距离$D$“计算低直径分解“距离$\frac{D}{2}$“。与[Li 20]的递归顶点约简方法相比,我们的方法更简单,适用于分布式算法,并消除了许多去随机化障碍。一个简单的基于图的$\tilde{O}(1)$ -竞争$\ell_1$ -不经意的路由基于低直径分解,可以评估在近线性的工作。以前的此类路由[ZGY+20]是$n^{o(1)}$ -竞争性的,需要$n^{o(1)}$更多的工作。一个确定性算法,四舍五入任何分数单源转运流到一个完整的树解决方案。第一个分布式算法计算欧拉方向。
2022-09-23 cs.DC cs.DS
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
A Massively Parallel Algorithm for Minimum Weight Vertex Cover
我们提出了一个大规模并行算法,每台机器的近线性内存,计算$(2+\varepsilon)$近似的最小权重顶点覆盖$O(\log\log d)$轮,其中$d$是输入图的平均程度。我们的结果填补了关键剩余的差距,在国家的最先进的MPC算法的顶点覆盖和匹配问题,两个经典的优化问题,这是相互矛盾的。具体地说,最近的一系列工作-由Czumaj等人[STOC'18]、Ghaffari等人[PODC'18]、Assadi等人[SODA'19]和Gamlath等人[PODC'19]-为$(1+\varepsilon)$ -近似最大权重匹配以及$(2+\varepsilon)$ -近似最小基数顶点覆盖提供了$O(\log\log n)$时间算法。然而,后一种算法不适用于顶点覆盖的一般加权情况,其中最著名的算法保持在$O(\log n)$时间复杂度。
2020-05-21 cs.DC cs.DS
Using Optimization to Solve Positive LPs Faster in Parallel
正线性规划(LP),也称为填充和覆盖线性规划,是连接计算机科学、运筹学和优化的一类重要问题。尽管在这个问题上做出了持续的努力,但所有已知的近线性时间算法都需要$\tilde{O}(\varepsilon^{-4})$迭代才能收敛到$1\pm \varepsilon$近似解。这种$\varepsilon^{-4}$依赖性自1993年以来一直没有得到改善,并限制了这种算法的并行实现的性能。此外,以前的算法和它们的分析依赖于更新步骤和收敛参数,这些参数在本质上是组合的,并且从优化的角度来看似乎不是自然产生的。在本文中,我们利用优化理论的新见解,构建一个新的算法,打破了长期存在的$\varepsilon^{-4}$障碍。我们的算法分析简单,动机明确。我们的工作介绍了一些新的技术,如结合应用的梯度下降和镜像下降,和截断,平滑版本的标准乘法权重更新,这可能是独立的利益。
2016-11-13 cs.DC cs.DS cs.NA
A Fast Parallel Median Filtering Algorithm Using Hierarchical Tiling
NVIDIA(英伟达)
提出一种基于分层分块的并行中值滤波算法,含寄存器内数据无关与内存数据感知两变体,在 GPU 上显著优于现有方法。
2025-07-26 cs.CV cs.DC
Work-stealing for mixed-mode parallelism by deterministic team-building
我们展示了如何扩展经典的工作窃取处理数据并行任务,可以要求任何数量的线程r >= 1的执行。我们详细解释了这样介绍的想法,工作盗窃与确定性的团队建设,在一个自然的方式概括了经典的工作盗窃。给出了广义工作窃取算法的一个C++原型实现,并对其进行了简要描述。在此基础上,一个严重的,众所周知的竞争者最好的并行快速排序算法已经实现,这自然依赖于任务和数据并行。例如,对2^27-1随机生成的整数进行排序,我们可以在32核Intel Nehalem EX系统上将速度从5.1提高到8.7,始终优于经过调优的任务并行Cilk++系统。
2010-12-22 cs.DC
FractalSortCPU: Bandwidth-Efficient Compressed Radix Sort on CPU
University of Toronto(多伦多大学);Eonforge Labs(Eonforge实验室)
本文提出FractalSortCPU,通过CPU适配的直方图压缩方案,实现任意精度键值的高效基数排序,降低直方图增长,提升带宽效率,适用于大规模数据集。
2026-05-12 cs.DC cs.DS
Parallel Approximate Undirected Shortest Paths Via Low Hop Emulators
本文提出了一个计算无向图最短路的$(1+\varepsilon)$ -近似并行算法,实现了$n$ -节点图$m$ -边图的$\mathrm{poly}(\log n)$深度和$m\mathrm{poly}(\log n)$工作量.虽然具有(接近)最优运行时间的顺序算法已经存在了几十年,但接近最优的并行算法已经成为一个更严峻的挑战。对于$(1+\varepsilon)$ -近似,所有具有$\mathrm{poly}(\log n)$深度的现有算法对于某个常数$c>0$至少执行$Ω(mn^{c})$工作。改进Cohen(STOC'94)获得的这个长期存在的上限已经开放了$25$多年。我们开发了几个独立的兴趣的新工具。其中之一是跳集之外的一个新概念--低跳仿真器--一个$\mathrm{poly}(\log n)$ -近似仿真器图,其中每个最短路径最多有$O(\log\log n)$跳(边)。低跳仿真器的直接应用是$\mathrm{poly}(\log n)$的并行算法-近似单源最短路径(SSSP)、Bourgain嵌入、度量树嵌入和低直径分解,所有这些都具有$\mathrm{poly}(\log n)$深度和$m\mathrm{poly}(\log n)$工作。为了提高对$(1+\varepsilon)$的近似比,我们引入了可压缩预处理器,并将其应用于Sherman的框架(SODA'1…
2019-11-05 cs.DC cs.DS
GPU Multisplit: an extended study of a parallel algorithm
Multissplit是一种非常有用的并行原语,它将其输入数据排列到连续的桶或箱中,其中将元素分类到桶中的函数由程序员提供。由于GPU上缺乏有效的多分割,程序员通常选择使用排序来实现多分割。一种方法是首先生成桶ID的辅助数组,然后基于它对输入数据进行排序。如果索引较小的桶具有较小值的键,则多分裂的另一种方法是直接对输入数据进行排序。这两种方法都是低效的,并且需要更多的工作:前者需要更昂贵的数据移动,而后者在每个桶中对元素进行排序时花费了不必要的努力。在这项工作中,我们提供了一个并行模型和多个实现的多分裂问题。我们主要关注的是少量(最多256个)桶的多分割。我们使用线程束同步编程模型,并强调线程束范围内的通信,以避免分支发散和减少内存使用。我们还对输入元素进行了分层重新排序,以更好地合并全局内存访问。在GeForce GTX 1080 GPU上,对于仅键(或键值)多拆分,我们可以达到18.93 Gkeys/s(或11.68 Gpairs/s)的峰值吞吐量。最后,我们演示了如何multisplit可以用作基数排序的构建块。在我们的基于多拆分的排序实现中,我们实现了与最快的GPU排序例程相当的性能,对32位键(和键值对)进行排序,吞吐量为3.0 G keys/s(和2.1 Gpair/s)。
2017-05-19 cs.DC
Parallel Quicksort without Pairwise Element Exchange
Quicksort是一种在分布式内存并行计算机上进行并行排序的指导性课堂方法,有很多机会说明特定的实现方案和与MPI等常见通信接口的权衡。标准的分布式内存快速排序实现在快速排序递归的每一级交换分区的数据元素。在本文中,我们证明这是不必要的:只分配所选的枢轴就足够了,并将元素重新分配推迟到递归的底部。这减少了从$O(n\log p)$到$O(n)$交换的数据的总量,$n$是要排序的元素的总数,$p$是处理器的2的幂数,这是通过权衡总共$O(p)$附加的枢轴元素分布来实现的。基于这一观察,我们描述了新的,\emph{exchange-free}实施变种的并行快速排序和Wagar的HyperQuicksort。我们已经实现了讨论的四个不同的快速排序的变化在MPI中,并表明,良好的枢轴选择,快速排序没有成对的元素交换可以显着快于标准的实现中等规模的问题。
2018-10-24 cs.DC
Using Optimization to Obtain a Width-Independent, Parallel, Simpler, and Faster Positive SDP Solver
Princeton University(普林斯顿大学);MIT(麻省理工学院);Boston University(波士顿大学)
本文提出一种基于优化框架的简单算法,通过新的矩阵不等式和随机化梯度截断技术,实现与最佳线性规划求解器相同的迭代次数,解决正SDP求解问题。
2016-01-11 cs.DC cs.DS cs.NA