Scalable Distributed-Memory External Sorting
我们设计算法,在大规模并行机器上对庞大的数据集进行排序。该算法是基于多路合并范式。我们首先概述了一个算法,其I/O的要求是接近下限。因此,与多路合并的天真实现和我们已知的所有其他方法相比,即使对于最大的可想象的输入,该算法也只对数据进行两次传递。第二种算法减少了通信开销,并以略微增加I/O要求为代价使用更传统的结果规范。一个实现在几个类别中赢得了众所周知的排序基准,并在很大程度上超过了它的竞争对手。
2009-10-14 cs.DC cs.DS cs.PF
Memory-Adjustable Navigation Piles with Applications to Sorting and Convex Hulls
我们认为空间有界的计算随机存取机(RAM)的输入是一个只读的随机存取介质,输出是要产生一个只写顺序存取介质,和可用的工作空间允许随机读取和写入,但容量有限。输入的长度是$N$元素,输出的长度受计算限制,并且工作空间的容量是用于某个预定参数$S$的$O(S)$位。我们提出了一个国家的最先进的优先级队列-所谓的可调导航桩-这个有限的RAM模型。在一些合理的假设下,我们的优先级队列支持$\mathit{minimum}$和$\mathit{insert}$在$O(1)$最坏情况下的时间和$\mathit{extract}$在$O(N/S + \lg{} S)$最坏情况下的时间为任何$S \geq \lg{} N$。我们展示了如何使用这种数据结构来排序$N$元素和计算凸包的$N$点在二维欧几里德空间中的$O(N^2/S + N \lg{} S)$最坏情况下的时间为任何$S \geq \lg{} N$。根据已知的下界的任何分支程序的时空积寻找独特的元素,我们的排序和凸壳算法是最优的。在设计其他空间高效的算法时,可调节的导航桩已经证明是有用的,我们希望它能找到其他应用的方法。
2015-10-24 cs.DS
Lower Bounds for External Memory Integer Sorting via Network Coding
对超大型数据集进行排序是实践中经常发生的任务。这些数据集通常比计算机的主存储器大得多,因此经常使用由Aggarwal和Vitter(1988)首次引入的外部存储器排序算法。基于比较的外部存储器排序的复杂性已经被理解了几十年,但是如果我们假设要排序的键是整数,情况仍然难以理解。在内部存储器中,可以使用经典的基数排序算法在$O(n)$时间内对每个$Θ(\lg n)$比特的一组$n$整数密钥进行排序,然而在外部存储器中,没有已知的比基于简单比较的整数排序算法更快的整数排序算法。在本文中,我们提出了一个严格的条件下界的外部存储排序的整数的复杂性。我们的下界是基于一个著名的猜想,在网络编码的李和李,谁证明了网络编码不能帮助任何超出标准的多商品流率在无向图。以前唯一将Li和Li猜想与算法的下界联系起来的工作是Adler等人的工作。Adler等人确实获得了遗忘算法的相对简单的下界(存储器访问模式是固定的并且与输入数据无关)。不幸的是,遗忘是一个很强的限制,特别是整数排序:我们表明,李和李猜想意味着一个$Ω(n \log n)$下界的内部存储器遗忘排序时的关键字是$Θ(\lg n)$位。这与经典的(非遗忘的)基数排序算法形成鲜明对比。事实上,超越遗忘是非常重要的;我们需要引入几个新的方法和相关技术,这是他们自己的兴趣,以获得我们的外部存储器整数排序的紧下界。
2018-11-04 cs.CC cs.DB cs.DS
Undirected Multiple-Unicast Network Coding and Faster External-Memory Integer Sorting
University of Toronto(多伦多大学);Tsinghua University(清华大学)
该研究针对Li-Li猜想给出反例,提出确定性外存整数排序算法,其块传输次数在多参数范围内优于经典方法,并通过Lean 4验证了算法正确性与编码的优势。
2026-11-03 cs.CC cs.DS cs.IT
Zig-zag Sort: A Simple Deterministic Data-Oblivious Sorting Algorithm Running in O(n log n) Time
我们描述和分析曲折排序-一个确定性的数据不经意的排序算法运行在O(n log n)的时间,可以说是简单的比以前已知的算法具有类似的属性,这是基于AKS排序网络。因为它是数据不经意和确定性的,所以曲折排序可以实现为一个简单的O(n log n)大小的排序网络,从而为Incerpi和Sedgewick在1985年提出的一个开放问题提供了解决方案。此外,Zig-zag Sort是Shellsort的一个变体,实际上是第一个在O(n log n)时间内运行的确定性Shellsort变体。Plaxton等人在1992年和Sedgewick在1996年提出了这样一个算法的存在性问题。然而,与今天更相关的事实是,在O(n log n)时间内运行的简单数据不经意确定性排序算法的存在简化了几种提议的遗忘RAM模拟方法(其利用AKS排序网络)中的内部循环计算,并且这反过来意味着在几种云计算应用中用于隐私保护数据外包的简化机制。我们提供了曲折排序的建设性和非建设性的实现,基于被称为ε-halver的电路的存在,使得在我们的建设性实现中的常数因子比AKS排序网络的建设性变体的常数因子小几个数量级,AKS排序网络的建设性变体也基于ε-halver的使用。
2014-03-11 cs.DS
Sorting with Asymmetric Read and Write Costs
新兴的存储器技术在写入存储器与从存储器读取的成本(在时间和能量两者上)之间具有显著的差距。在本文中,我们提出的模型和算法,占这种差异,重点是写效率排序算法。首先,我们考虑PRAM模型与非对称写成本,并表明,排序可以在$O\left(n\right)$写,$O\left(n \log n\right)$读,对数深度(并行时间)。接下来,我们考虑外部存储器(EM)模型的一个变体,该模型向$ω> 1$收取将大小为$B$的块写入到辅助存储器的费用,并提出三种EM排序算法(多路合并排序,样本排序和使用缓冲区树的堆排序)的变体,这些算法渐进地减少了原始算法的写入次数,并对每个块写入大致执行$ω$块读取。最后,我们定义了一个变种的理想缓存模型与不对称的写成本,并提出写效率高,缓存无关的并行算法排序,FFT和矩阵乘法。将工作窃取和并行深度优先缓存器的先验边界调整到非对称设置,这些分别为具有私有缓存或共享缓存的机器产生并行缓存复杂性边界。
2016-03-11 cs.DS
Batched Predecessor and Sorting with Size-Priced Information in External Memory
在单位成本比较模型中,一个黑盒接受两个输入项并输出比较结果。排序和搜索等问题已经在这个模型中进行了研究,它已经被推广到包括定价信息的概念,其中不同的项目对(例如数据库记录)具有不同的比较成本。这些比较成本可以是任意的(在这种情况下,没有算法可以接近最优(Charikar et al. STOC 2000)),结构化的(例如,比较成本可能取决于数据库的长度(Gupta et al. FOCS 2001)),或随机的(Angelov et al. LATIN 2008)。出于数据库设置的成本取决于项目的大小,我们考虑的问题,排序和批处理前两个非均匀的项目集$A$和$B$作为输入。(1)在RAM设置中,我们考虑两个集合都有$n$键的情况。在$A$中比较两个项目的成本是$a$,在$A$中比较一个项目和$B$中比较一个项目的成本是$b$,在$B$中比较两个项目的成本是$c$。我们给出了$a \le b \le c$情形的上界和下界。请注意,案例$b=1, a=c=\infty$是著名的“螺母和螺栓”问题。(2)在磁盘访问模型(DAM),在磁盘和内部存储器之间传输元素的主要瓶颈,我们考虑的情况下,在$B$中的元素大于元素在$A$。较大的项需要更多的I/O进入内存,消耗更多的内存空间,并且需要完整地进行比较。我们首先给出了输出敏感的下限和上限的批量前的问题,并使用这些推导出的两个模型中的排序的复…
2020-04-27 cs.DC cs.DS
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
Theoretical Model of Computation and Algorithms for FPGA-based Hardware Accelerators
虽然FPGA已被广泛用作工业计算中的硬件加速器,但还没有为基于FPGA的加速器的研究设计出计算的理论模型。在本文中,我们提出了一个理论模型的计算系统与传统的CPU和FPGA,基于字RAM。我们在这个模型中的几个算法是渐近快于他们的字RAM同行。具体地说,我们展示了一个算法的排序,评估的关联操作和一般技术,加快一些递归算法和一些动态程序。我们还得到了下界的运行时间需要解决一些问题。
2018-11-16 cs.DS
Sorting and Ranking of Self-Delimiting Numbers with Applications to Outerplanar Graph Isomorphism
针对以Elias gamma码编码的自定界数序列,本文在word RAM模型下提出O(k+N/log N)时间、O(N)位空间的高效排序与稠密/竞争排名算法,并应用于树、森林及外平面图同构,实现O(n)时间与O(n)位空间。
2024-09-03 cs.DS
Selection in the Presence of Memory Faults, with Applications to In-place Resilient Sorting
在大小为$n$的未排序数组中寻找$k^{th}$最小元素的选择问题是计算机科学研究的基本问题之一。这项工作的主要重点是设计算法来解决存在内存故障的选择问题。这些可能是宇宙射线、阿尔法粒子或硬件故障的结果。具体来说,这里假设的计算模型是由Finocchi和Italiano引入的RAM模型(简称FRAM)的错误变体。在该模型中,存储单元的内容可能在执行期间被逆向地损坏,并且该算法被给予关于可能发生的损坏的数量的上限$δ$。这项工作的主要贡献是一个确定性的弹性选择算法的最佳O(n)最坏情况下的运行时间。有趣的是,运行时间不依赖于故障的数量,并且算法不需要知道$δ$。上述弹性选择算法可用于改进由Gieseke、Moruz和Vasperhold开发的弹性$k$ -d树的复杂度界限。具体地说,构造$k$ -d树的时间复杂度从$O(n\log^2 n + δ^2)$提高到$O(n \log n)$ .在确定性算法的基础上,提出了一种随机弹性选择算法,该算法比确定性算法简单,具有$O(n + α)$期望的时间复杂度和O(1)空间复杂度(即,已到位)。该算法用于开发第一个弹性排序算法,该算法在适当的位置并实现最佳的$O(n\log n + αδ)$预期运行时间。
2012-08-28 cs.DS
Exploiting non-constant safe memory in resilient algorithms and data structures
我们通过添加任意大小的安全内存$S$来扩展Finocchi和Italiano(2008)的FaithRAM模型,然后我们推导出弹性算法技术的性能和安全内存大小之间的权衡。令$δ$和$α$分别表示在算法执行期间可能发生的最大故障量和实际发生的故障数,其中$α\leq δ$。我们提出了一个弹性算法排序$n$条目,需要$O\left(n\log n+α(δ/S + \log S)\right)$时间,并使用$Θ(S)$安全内存字。我们的算法优于以前的弹性排序算法,不利用可用的安全内存,并需要$O\left(n\log n+ αδ\right)$时间。最后,我们利用我们的排序算法,推导出一个弹性的优先级队列。我们的实现使用$Θ(S)$安全存储器字和$Θ(n)$错误存储器字来存储$n$密钥,并且需要$O\left(\log n + δ/S\right)$为每个插入和删除操作分摊时间。我们的弹性优先级队列提高了现有技术所需的$O\left(\log n + δ\right)$摊销时间。
2015-04-02 cs.DS
XiSort: Deterministic Sorting via IEEE-754 Total Ordering and Entropy Minimization
本研究提出基于IEEE-754全序与熵最小化的确定性浮点排序算法XiSort,支持内存与外存运行,具备可证明收敛性与符号幂等性,吞吐量表现优异,可用于科学计算、高频金融等领域的跨平台可复现排序。
2025-05-17 cs.DS cs.IT cs.NA
A Bulk-Parallel Priority Queue in External Memory with STXXL
我们提出了一个大容量并行外部存储器优先级队列的设计和实现,以利用共享存储器的并行性和高外部存储器传输速度并行磁盘。为了通过解耦项插入和提取来实现更高的性能,我们提供了两个并行化接口:一个使用“批量”序列,另一个通过定义“限制”项。在设计中,我们讨论了如何使用多个堆并行插入,以及如何计算一个动态预测序列来预取块和应用并行多路合并提取。我们的实验结果表明,在选定的基准的优先级队列达到75%的旋转磁盘和65%的固态硬盘的全并行I/O带宽,或在外部存储器中的排序速度时,由计算限制。
2015-04-02 cs.DS
Efficient Algorithms with Asymmetric Read and Write Costs
在计算机内存(主存)的几种新兴技术中,读的成本比写的成本要便宜得多。内存成本的这种不对称性为算法设计提出了与RAM根本不同的模型。在本文中,我们研究的下限和上限,在这种不对称的读写成本的各种问题。我们考虑的情况下,除了$O(1)$内存具有不对称的成本,和对称内存的小缓存的情况下。我们使用$(M,ω)$-ARAM对这两种情况进行建模,其中存在大小为$M$的小(对称)存储器和大的无界(非对称)存储器,两者都是随机访问,并且其中从大存储器读取具有单位成本,但是写入具有成本$ω\gg 1$。对于FFT和排序网络,我们显示了$Ω(ωn\log_{ωM} n)$的下界成本,这表明当$ω$由$M$中的多项式约束时,不可能以更便宜的读取实现渐进改进。此外,有一个渐进的差距($\min(ω,\log n)/\log(ωM)$)之间的成本排序网络和比较排序的模型。这与RAM和大多数其他型号形成鲜明对比。我们还显示了一个计算的下限上的$n\times n$钻石DAG的$Ω(ωn^2/M)$成本,这表明没有渐进的改善是可实现的快速读取。然而,我们表明,对于编辑距离问题(及相关问题),这似乎是一个钻石DAG,存在一个算法,只有$O(ωn^2/(M\min(ω^{1/3},M^{1/2})))$成本。为了实现这一点,我们使用了在严格的DAG计算中被禁止的"路径草图"技术。最后,我们展示了几个有趣的最短路径问题…
2016-08-28 cs.DS
Implementing the Comparison-Based External Sort
在大数据时代,排序是DBMS和类似系统不可或缺的操作。对数据进行排序可以帮助生成运行时间显著降低的查询计划。它还可以提供其他好处,例如具有非阻塞运算符,可以稳定地产生数据(没有突发),或者具有减少内存占用的运算符。查询处理的任何步骤都可能需要排序,即,无论是源数据还是中间结果。同时,要排序的数据可能不适合主存。在这种情况下,应该使用外部排序操作符,它将中间结果写入磁盘。在本文中,我们考虑了基于比较的排序类型的外部排序运算符。我们讨论了它的实现,并描述相关的设计决策。我们的目的是研究合并步骤中使用的数据结构对性能的影响。为此,我们已经实验性地评估了在DBMS内部实现的三种数据结构。结果表明,它是值得努力实现一个有效的数据结构运行合并,即使在现代商品计算机通常是磁盘绑定。此外,我们证明了使用失败者树是比朴素方法和基于堆的方法更有效的方法。
2022-07-26 cs.DB cs.DS cs.PF
Privacy-Preserving Access of Outsourced Data via Oblivious RAM Simulation
假设一个客户端Alice将她的数据外包给了一个外部存储提供商Bob,因为他有能力存储她的大数据集,大小为n,而她的私人存储空间要小得多,比如说,对于某个常数r > 1,大小为O(n^{1/r})。Alice信任Bob来维护她的数据,但她希望保持其内容的私密性。当然,她可以加密她的数据,但她也希望对Bob隐藏她的访问模式。我们描述了一个小的对数或多对数摊销增加访问时间的不经意的RAM模拟问题的计划,具有很高的成功概率,同时保持外部存储的大小为O(n)。为了实现这一目标,我们的算法贡献包括一个并行MapReduce布谷鸟哈希算法和外部存储器dataoblivious排序算法。
2011-05-02 cs.CR cs.DC cs.DS
Bidirectional Text Compression in External Memory
双向压缩算法的工作原理是用引用替换重复的子串,与著名的LZ77方案不同,引用可以指向任何一个方向。我们提出了这样一个算法,特别适合于外部存储器的实现。我们在高达128 GiB的大数据集上进行了实验评估(仅使用16 GiB的RAM),结果表明它比所有已知的LZ77压缩机都要快得多,同时产生的因子数量大致相同。我们还介绍了一个外部存储器解压与任何单向或双向压缩方案压缩的文本。
2019-12-03 cs.DS
Using Hashing to Solve the Dictionary Problem (In External Memory)
我们考虑了外部存储器中的字典问题,并将众所周知的缓冲树的更新时间提高了大约一个对数因子。对于任意λ>= max {lg lg n,log_{M/B}(n/B)},我们可以支持时间复杂度为O(λ/ B)的更新和时间复杂度为O(log_λn)的查询。我们还提出了一个下限的细胞探针模型表明,我们的数据结构是最佳的。在RAM中,半个多世纪以来,哈希表一直被用来比二分查找更快地解决字典问题。相比之下,我们的数据结构是第一个在外部存储器中克服比较障碍的结构。我们的也是第一个令人信服地脱离不可分割性范式的数据结构。
2011-04-14 cs.DS
DecreaseKeys are Expensive for External Memory Priority Queues
外部存储器数据结构中最大的公开问题之一是DecreaseKey操作的优先级队列问题。如果仅需要支持插入和提取最小值操作,则可以设计基于比较的优先级队列,其在一系列$N$操作上执行$O((N/B)\lg_{M/B} N)$ I/O,其中$B$是以字数表示的磁盘块大小,而$M$是以字数表示的主存储器大小。这与基于比较的排序的下限相匹配,因此对于基于比较的优先级队列是最佳的。但是,如果我们还需要支持DecreaseKeys,那么最知名的优先级队列的性能仅为$O((N/B) \lg_2 N)$ I/O。最大的问题是是否真的有必要降低性能。我们肯定地回答这个问题,证明了一个下界的$Ω((N/B) \lg_{\lg N} B)$ I/O处理一个序列的$N$混合插入,ExtraxMin和DecreaseKey操作。我们的下界证明了在细胞探测模型,因此也适用于非比较为基础的优先级队列。
2016-11-03 cs.CC cs.DS
Efficient Algorithms and Data Structures for Massive Data Sets
对于许多算法的问题,传统的算法,优化的数量上执行的指令证明昂贵的I/O。新颖的和非常不同的设计技术,当应用到这些问题,可以产生算法的I/O效率。这篇论文加入了越来越多的合唱这样的结果。我们使用的计算模型是外部存储器模型和W流模型。在外部记忆模型下,我们得到了如下结果。(1)一种计算图的最小生成树的I/O高效算法,该算法改进了最佳已知算法的性能。(2)软堆的第一个外部存储器版本,一个近似可融合的优先级队列。(3)硬堆,第一个可合并的外部内存优先级队列,它与已知外部内存优先级队列的摊销I/O性能相匹配,同时允许以相同的摊销成本进行合并操作。(4)I/O高效的精确,近似和随机算法的最小割问题,这还没有探索之前的外部存储器模型。(5)区间图的I/O的一些下限和上限。在W-Stream模型上,我们得到了如下结果。(1)用于各种树问题和列表排序的算法,其性能与最知名的算法相匹配,并且比它们更容易实现。(2)通过有效的排序算法,以及最大独立集问题,改进了最知名的算法。(3)给出了求顶点着色、近似单源最短路、最大匹配和近似加权顶点覆盖等图问题的有效算法。(4)列表排序和最大匹配的传递的下界。我们提出了两个变种的W-流模型,并设计算法的最大独立集,顶点着色,平面图单源最短路径问题的模型。
2010-05-19 cs.DS
Prefix Sharing Is a Sorting Problem
本文证明LLM服务中前缀共享的片段排序问题等价于在请求上选择二叉层次结构,提出O(3^m)精确算法和1/2近似凝聚聚类,在BEIR上减少17-36%预填充。
2026-10-27 cs.CL cs.DS
External memory bisimulation reduction of big graphs
在本文中,我们提出,据我们所知,第一个已知的I/O高效的解决方案,用于计算的k-互模拟分区的大规模有向图,并执行维护这样的分区更新后的底层图形。互模拟在图数据的理论和应用中无处不在,互模拟是一个强大的节点等价概念,它直观地将图中共享基本结构特征的节点分组在一起。k-互模拟是互模拟的标准变体,其中仅在半径$k\geqslant 0$的局部邻域内考虑节点的拓扑特征。我们的分区构造算法的I/O成本由$O(k\cdot \mathit{sort}(|\et|) + k\cdot scan(|\nt|) + \mathit{sort}(|\nt|))$限定,而我们的维护算法由$O(k\cdot \mathit{sort}(|\et|) + k\cdot \mathit{sort}(|\nt|))$限定。空间复杂度界分别为$O(|\nt|+|\et|)$和$O(k\cdot|\nt|+k\cdot|\et|)$。这里,$|\et|$和$|\nt|$分别是由输入图的边集和节点集占用的磁盘页面的数量,而$\mathit{sort}(n)$和$\mathit{scan}(n)$分别是分类和扫描的成本,在外部存储器中占用$n$页的文件。对各种大规模真实世界和合成图形数据集的实证分析表明,我们的算法在实践中有效地执行,随着图形大小的增长而优雅地扩展。
2013-05-02 cs.DB cs.DS