Skip to main content
QUICK REVIEW

[论文解读] Space-filling Curves for High-performance Data Mining

Christian Böhm|arXiv (Cornell University)|Aug 4, 2020
Algorithms and Data Compression参考文献 17被引用 4
一句话总结

本文提出优化的希尔伯特曲线算法——FUR-Hilbert-Loop 与 FGF-Hilbert-Loop,通过克服传统对数时间复杂度和必须为2的幂次网格的限制,实现缓存无关的数据访问,从而在高性能数据挖掘中取得突破。这些方法实现了空间填充曲线遍历的线性时间生成,并显著减少了矩阵乘法、k-Means聚类和相似性连接等算法中的缓存未命中次数。

ABSTRACT

Space-filling curves like the Hilbert-curve, Peano-curve and Z-order map natural or real numbers from a two or higher dimensional space to a one dimensional space preserving locality. They have numerous applications like search structures, computer graphics, numerical simulation, cryptographics and can be used to make various algorithms cache-oblivious. In this paper, we describe some details of the Hilbert-curve. We define the Hilbert-curve in terms of a finite automaton of Mealy-type which determines from the two-dimensional coordinate space the Hilbert order value and vice versa in a logarithmic number of steps. And we define a context-free grammar to generate the whole curve in a time which is linear in the number of generated coordinate/order value pairs, i.e. a constant time per coordinate pair or order value. We also review two different strategies which enable the generation of curves without the usual restriction to square-like grids where the side-length is a power of two. Finally, we elaborate on a few applications, namely matrix multiplication, Cholesky decomposition, the Floyd-Warshall algorithm, k-Means clustering, and the similarity join.

研究动机与目标

  • 克服传统方法中将希尔伯特曲线序值与坐标相互转换时所需的对数时间复杂度的高计算成本。
  • 消除空间填充曲线应用中网格尺寸必须为2的幂次的限制,使其可应用于任意大小的数据网格。
  • 通过利用空间填充曲线的遍历顺序,设计高效、缓存无关的数据挖掘基础操作算法。
  • 通过保持局部性的遍历模式,最小化缓存未命中,从而提升内存受限算法的性能。
  • 通过基于曲线的访问排序,实现数据挖掘工作负载的高效并行化与向量化(SIMD/MIMD)

提出的方法

  • 使用Mealy型有限自动机定义希尔伯特曲线,以对数时间复杂度实现坐标到序值与序值到坐标的映射计算。
  • 引入上下文无关文法,以线性时间生成整个希尔伯特曲线,实现每对坐标点的常数时间生成。
  • 提出FUR-Hilbert-Loop(叠加网格法),通过使用4×4子网格进行铺砌,并动态计算曲线段,以处理非2的幂次网格。
  • 开发FGF-Hilbert-Loop(跳过法),通过预存于64位变量中的预计算微型程序,跳过无效或无关的网格单元。
  • 使用微型程序——针对所有方向的4×4网格的压缩、预计算曲线段——以加速遍历并减少运行时开销。
  • 将基于曲线的遍历集成至高性能算法中,如矩阵乘法、Cholesky分解、Floyd-Warshall算法、k-Means与相似性连接,实现缓存无关执行。

实验结果

研究问题

  • RQ1如何在不依赖对数时间复杂度的前提下,高效计算希尔伯特曲线在坐标到序值与序值到坐标两个方向上的映射?
  • RQ2在空间填充曲线应用中,有哪些技术可消除网格尺寸必须为2的幂次的限制?
  • RQ3空间填充曲线能否用于使数据挖掘算法实现缓存无关,从而在不同缓存大小下提升性能?
  • RQ4微型程序与快速遍历机制如何减少基于曲线的数据访问模式中的运行时开销?
  • RQ5基于希尔伯特曲线的遍历在真实世界的数据挖掘工作负载(如相似性连接与矩阵运算)中,性能提升程度如何?

主要发现

  • FUR-Hilbert-Loop 通过使用4×4子网格铺砌并采用基于叠加的曲线计算,实现了对任意大小网格的高效遍历,消除了2的幂次限制。
  • FGF-Hilbert-Loop 通过跳过操作,保持了序值与坐标对之间的1:1映射关系,同时实现了对稀疏或索引化数据的快速、缓存高效遍历。
  • 存储于64位变量中的微型程序通过将迭代操作替换为直接查找,加速了曲线遍历,显著减少了运行时开销。
  • 与标准嵌套循环访问模式相比,基于希尔伯特曲线的遍历显著减少了缓存未命中次数,尤其在真实缓存大小(主内存的5%–20%)下效果明显。
  • 在相似性连接与矩阵乘法中,基于希尔伯特曲线的访问模式通过提升数据局部性并降低内存带宽压力,实现了显著的性能提升。
  • 将SIMD与MIMD并行化机制与希尔伯特曲线遍历相结合,进一步加速了k-Means聚类与基于GPU的数据挖掘工作负载的性能。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

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