VORO++ is a software library written in C++ for computing the Voronoi tessellation, a technique in computational geometry that is widely used for analyzing systems of particles. VORO++ was released in 2009 and is based on computing the Voronoi cell for each particle individually. Here, we take advantage of modern computer hardware, and extend the original serial version to allow for multithreaded computation of Voronoi cells via the OpenMP application programming interface. We test the performance of the code, and demonstrate that we can achieve parallel efficiencies greater than 95% in many cases. The multithreaded extension follows standard OpenMP programming paradigms, allowing it to be incorporated into other programs. We provide an example of this using the VoroTop software library, performing a multithreaded Voronoi cell topology analysis of up to 102.4 million particles.
翻译:VORO++是一个用C++编写的软件库,用于计算沃罗诺伊图——计算几何中广泛用于分析粒子系统的技术。VORO++于2009年发布,其核心方法是逐一计算每个粒子的沃罗诺伊单元。在此,我们利用现代计算机硬件优势,将原有串行版本扩展为支持通过OpenMP应用程序编程接口进行多线程沃罗诺伊单元计算。我们对该代码进行了性能测试,结果表明在许多情况下可达到超过95%的并行效率。该多线程扩展遵循标准OpenMP编程范式,可被整合至其他程序中。我们以VoroTop软件库为例,展示了该扩展在处理多达1.024亿个粒子时的多线程沃罗诺伊单元拓扑分析能力。