arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1710.06384cs.CGcs.DScs.PF
收藏

空间填充曲线上的高效邻域搜索

Efficient Neighbor-Finding on Space-Filling Curves

David Holzmüller

摘要:

空间填充曲线(SFC,也称为FASS曲线)是科学计算和计算机科学的其他领域中的有用工具,用于以高速缓存高效且并行化友好的方式将多维网格排序以存储在阵列中。许多算法,例如基于网格的数值PDE求解器,在网格遍历期间必须访问每个网格单元的所有相邻单元。虽然相邻元素的数组索引可以存储在单元中,但它们仍然需要在初始化或自适应细化网格时进行计算。因此,一个快速的邻居发现算法可以显着提高多维网格上的计算的运行时间。在这篇论文中,我们展示了如何在平均时间复杂度为$O(1)$的情况下,找到由空间填充曲线排序的许多规则网格上的邻居。通常,这假设网格单元内的SFC的局部取向(即,描述语法的变量)是预先已知的,这可以在遍历期间有效地实现。支持的SFC包括任意维度的Hilbert、Peano和Sierpinski曲线。我们假设可以在$O(1)$中执行整数算术运算,即与整数的大小无关。这里我们不讨论自适应细化网格的情况。然而,它似乎是一个推广的算法,以适当的自适应网格是可能的。为了制定邻居发现算法并证明其正确性和运行时属性,引入了一个建模框架。该框架将顶点标记的思想扩展到使用文法和矩阵的描述。使用sfcpp库,我们提供了一个C++实现来渲染由这些模型生成的SFC,并自动计算邻居查找算法所需的所有查找表。此外,优化的邻居发现各种SFC的实现包括我们提供运行时测量。

英文摘要:

Space-filling curves (SFC, also known as FASS-curves) are a useful tool in scientific computing and other areas of computer science to sequentialize multidimensional grids in a cache-efficient and parallelization-friendly way for storage in an array. Many algorithms, for example grid-based numerical PDE solvers, have to access all neighbor cells of each grid cell during a grid traversal. While the array indices of neighbors can be stored in a cell, they still have to be computed for initialization or when the grid is adaptively refined. A fast neighbor-finding algorithm can thus significantly improve the runtime of computations on multidimensional grids. In this thesis, we show how neighbors on many regular grids ordered by space-filling curves can be found in an average-case time complexity of $O(1)$. In general, this assumes that the local orientation (i.e. a variable of a describing grammar) of the SFC inside the grid cell is known in advance, which can be efficiently realized during traversals. Supported SFCs include Hilbert, Peano and Sierpinski curves in arbitrary dimensions. We assume that integer arithmetic operations can be performed in $O(1)$, i.e. independent of the size of the integer. We do not deal with the case of adaptively refined grids here. However, it appears that a generalization of the algorithm to suitable adaptive grids is possible. To formulate the neighbor-finding algorithm and prove its correctness and runtime properties, a modeling framework is introduced. This framework extends the idea of vertex-labeling to a description using grammars and matrices. With the sfcpp library, we provide a C++ implementation to render SFCs generated by such models and automatically compute all lookup tables needed for the neighbor-finding algorithm. Furthermore, optimized neighbor-finding implementations for various SFCs are included for which we provide runtime measurements.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑