论文标题
pargeo:平行计算几何的库
ParGeo: A Library for Parallel Computational Geometry
论文作者
论文摘要
本文介绍了Pargeo,这是一个用于计算几何形状的多核心库。 Pargeo包含用于基本任务的模块,包括基于$ K $ d-Tree的空间搜索,空间图生成和计算几何算法。 我们专注于图书馆提供的三种新算法贡献。首先,我们基于预订技术提出了一种新的并行凸壳算法,以实现对船体的并行修改。我们还提供了随机增量凸赫尔算法的第一个并行实现,以及$ \ mathbb {r}^3 $中的分隔和框架凸出凸壳算法。其次,对于最小的封闭球问题,我们提出了一种新的基于采样的算法,以快速减小数据集的大小。我们还提供了WELZL经典算法的第一个平行实现,用于最小的封闭球。第三,我们提出了BDL-Tree,这是一种平行批处理$ k $ d-Tree,允许在动态更改的点集上进行有效的并行更新和$ K $ -NN查询。 BDL-树由一组$ k $ d-树组成,可用于有效地插入,删除和查询批次的点并行。 在带有双向超线程的36个内核上,我们最快的凸赫尔算法可实现高达44.7倍的自相机并行加速,并且在最佳现有的顺序实现方面最多可实现559倍的速度。我们使用基于采样的算法的最小封闭球算法可实现高达27.1倍的自相关并行加速,并且在最佳现有顺序实现的情况下最多可实现178倍的速度。我们对BDL-TREE的实施实现了高达46.1倍的自相机并行加速。在pargeo中的所有算法中,我们实现了8.1---46.61x的自相关并行加速。
This paper presents ParGeo, a multicore library for computational geometry. ParGeo contains modules for fundamental tasks including $k$d-tree based spatial search, spatial graph generation, and algorithms in computational geometry. We focus on three new algorithmic contributions provided in the library. First, we present a new parallel convex hull algorithm based on a reservation technique to enable parallel modifications to the hull. We also provide the first parallel implementations of the randomized incremental convex hull algorithm as well as a divide-and-conquer convex hull algorithm in $\mathbb{R}^3$. Second, for the smallest enclosing ball problem, we propose a new sampling-based algorithm to quickly reduce the size of the data set. We also provide the first parallel implementation of Welzl's classic algorithm for smallest enclosing ball. Third, we present the BDL-tree, a parallel batch-dynamic $k$d-tree that allows for efficient parallel updates and $k$-NN queries over dynamically changing point sets. BDL-trees consist of a log-structured set of $k$d-trees which can be used to efficiently insert, delete, and query batches of points in parallel. On 36 cores with two-way hyper-threading, our fastest convex hull algorithm achieves up to 44.7x self-relative parallel speedup and up to 559x speedup against the best existing sequential implementation. Our smallest enclosing ball algorithm using our sampling-based algorithm achieves up to 27.1x self-relative parallel speedup and up to 178x speedup against the best existing sequential implementation. Our implementation of the BDL-tree achieves self-relative parallel speedup of up to 46.1x. Across all of the algorithms in ParGeo, we achieve self-relative parallel speedup of 8.1--46.61x.