Skip to main content
QUICK REVIEW

[论文解读] Cache-Oblivious Priority Queues with Decrease-Key and Applications to Graph Algorithms

John Iacono, Riko Jacob|arXiv (Cornell University)|Mar 7, 2019
Distributed systems and fault tolerance被引用 1
一句话总结

本文提出了一种缓存无关的优先队列,支持插入、键值减小、提取最小值和更新操作,在外部内存中实现了更高的I/O效率。通过引入使用x-boxes和缓冲存储库树的参数化结构,作者在大规模稠密图上实现了图算法的最优I/O界限,特别是单源最短路径、深度优先搜索和广度优先搜索,当E/V = Ω(M)时,I/O复杂度为O(E/B log(E/V B) E/B)。

ABSTRACT

We present priority queues in the cache-oblivious external memory model with block size $B$ and main memory size $M$ that support on $N$ elements, operation extsc{UPDATE} (combination of extsc{INSERT} and extsc{DECREASEKEY}) in $O \left(\frac{1}{B}\log_{\frac{\lambda}{B}} \frac{N}{B} ight)$ amortized I/Os and operations extsc{EXTRACT-MIN} and extsc{DELETE} in $O \left(\lceil \frac{\lambda^{\varepsilon}}{B} \log_{\frac{\lambda}{B}} \frac{N}{B} ceil \log_{\frac{\lambda}{B}} \frac{N}{B} ight)$ amortized I/Os, using $O \left(\frac{N}{B}\log_{\frac{\lambda}{B}} \frac{N}{B} ight)$ blocks, for a user-defined parameter $\lambda \in [2, N ]$ and any real $\varepsilon \in (0,1)$. Our result improves upon previous I/O-efficient cache-oblivious and cache-aware priority queues [Chowdhury and Ramachandran, TALG 2018], [Brodal et al., SWAT 2004], [Kumar and Schwabe, SPDP 1996], [Arge et al., SICOMP 2007], [Fadel et al., TCS 1999]. We also present buffered repository trees that support on a multi-set of $N$ elements, operation extsc{INSERT} in $O \left(\frac{1}{B}\log_{\frac{\lambda}{B}} \frac{N}{B} ight)$ I/Os and operation extsc{EXTRACT} on $K$ extracted elements in $O \left(\frac{\lambda^{\varepsilon}}{B} \log_{\frac{\lambda}{B}} \frac{N}{B} + \frac{K}{B} ight)$ amortized I/Os, using $O \left(\frac{N}{B} ight)$ blocks, improving previous cache-aware and cache-oblivious results [Arge et al., SICOMP '07], [Buchsbaum et al., SODA '00]. In the cache-oblivious model, for $\lambda = O \left(E/V ight)$, we achieve $O \left(\frac{E}{B}\log_{\frac{E}{V B}} \frac{E}{B} ight)$ I/Os for single-source shortest paths, depth-first search and breadth-first search algorithms on massive directed dense graphs $(V,E)$. Our algorithms are I/O-optimal for $E/V = \Omega (M)$ (and in the cache-aware setting for $\lambda = O(M)$).

研究动机与目标

  • 设计一种在外部内存中高效支持键值减小和更新操作的缓存无关优先队列。
  • 在缓存无关模型中,改进单源最短路径、深度优先搜索和广度优先搜索等基础图算法的I/O复杂度。
  • 在E/V = Ω(M)的稠密图中实现最优I/O界限,利用参数λ = O(E/V)。
  • 将x-boxes和缓冲存储库树的应用扩展至缓存无关环境,以实现高效、参数化的I/O操作。

提出的方法

  • 引入一种使用x-boxes(大小参数λ ∈ [2, N] 和 α ∈ (0, 1))的参数化缓存无关优先队列。
  • 在x-boxes中采用批量插入和分数级联技术,以实现每元素O(1/B)摊销I/O的高效搜索与提取。
  • 通过使用大小递增的x-boxes分层结构,实现插入操作的O(1/B logλB (N/B))摊销I/O。
  • 将缓冲存储库树(BRTs)与x-boxes结合,实现插入操作O(1/B logλB (N/B))和提取操作O(λα/(1+α)/B logλB (N/B) + K/B)的摊销I/O。
  • 设定λ = O(E/V),以优化图算法在稠密图中的性能。
  • 将这些数据结构与已知的外部内存图算法(如Vitter的SSSP、Buchsbaum的DFS/BFS)结合,推导出端到端的I/O界限。

实验结果

研究问题

  • RQ1缓存无关优先队列能否以匹配最优基为(M/B)对数界限的I/O复杂度支持键值减小和更新操作?
  • RQ2支持所有标准操作(包括键值减小)的缓存无关优先队列的最优I/O复杂度是多少?
  • RQ3x-boxes能否用于设计高效、参数化的缓存无关优先队列和BRTs数据结构?
  • RQ4所提出的结构如何提升大规模稠密图上图算法的I/O效率?
  • RQ5在缓存无关模型中,何种参数设置(如λ = O(E/V))可使SSSP、DFS和BFS实现I/O最优?

主要发现

  • 所提出的缓存无关优先队列支持更新操作的I/O复杂度为O(1/B logλB (N/B))摊销I/O,提取最小值操作为O(⌈λε/B logλB (N/B)⌉ logλB (N/B))摊销I/O,使用O(N/B logλB (N/B))个块。
  • 当λ = O(M)时,I/O复杂度达到最优O(1/B logM/B (N/B))摊销I/O,与已知最优缓存感知界限一致。
  • 缓冲存储库树支持插入操作的I/O复杂度为O(1/B logλB (N/B)),提取操作为O(λα/(1+α)/B logλB (N/B) + K/B)摊销I/O每元素。
  • 当λ = O(E/V)时,SSSP、DFS和BFS算法的I/O复杂度为O(E/B log(E/V B) E/B),在E/V = Ω(M)时为I/O最优。
  • 结果优于以往的缓存无关方法,后者或缺乏键值减小支持,或产生O(1/B log²(N/B))的I/O复杂度。
  • 该框架在缓存无关模型中实现了稠密图的I/O最优性,统一了高效优先队列与BRTs在外部内存图处理中的应用。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。