首页 | 本学科首页   官方微博 | 高级检索  
     检索      

多边形叠加Vatti算法的VCS优化方法与GPU并行化
引用本文:张志锟,范俊甫,徐少波,陈政.多边形叠加Vatti算法的VCS优化方法与GPU并行化[J].地球信息科学,2022,24(3):437-447.
作者姓名:张志锟  范俊甫  徐少波  陈政
作者单位:1.山东理工大学 建筑工程学院,淄博 2550002.深圳大学 建筑与城市规划学院,深圳 518060
基金项目:国家自然科学基金;国家重点研发计划;山东理工大学青年教师发展支持计划;山东省重大科技创新工程项目;山东省自然科学基金
摘    要:Vatti算法是常用的矢量多边形裁剪算法之一,在其构建扫描束实现交点计算的过程中,二叉树的数据结构和递归计算方法导致其计算效率受矢量多边形边界顶点数量影响显著。本文针对Vatti算法执行过程中较为耗时的扫描束构建环节,提出了一种多边形边界顶点预排序的优化方法——VCS(Vertex Coordinate Pre-Sorting)方法,并基于该方法实现了对Vatti算法的GPU细粒度并行化。VCS方法使用双向链表对Vatti算法原有的二叉树数据结构进行了替换,以较小的额外存储空间取得了多边形边界顶点信息查找效率的明显提升。在GPU环境下采用双调排序算法对多边形边界顶点数组元素进行并行化排序并过滤出有效值,克服了原始算法使用二叉树存储导致效率低下的问题。实验结果表明,改进后的算法与原始算法相比,具有相同的计算精度;当多边形顶点数量为92万,CUDA每个线程块中的线程数量为32时,使用VCS优化方法,与采用CPU计算构建扫描束方法相比,GPU并行化方法获得了39.6倍的相对加速比,矢量多边形叠加分析算法效率总体上提升了4.9倍。

关 键 词:叠加分析  多边形裁剪  CUDA并行  双调排序  VCS  Vatti算法  数据结构  高性能计算  GIS  
收稿时间:2021-07-18

VCS Optimization Method of Vatti Algorithm for Polygon Overlay and Parallelization Using GPU
ZHANG Zhikun,FAN Junfu,XU Shaobo,CHEN Zheng.VCS Optimization Method of Vatti Algorithm for Polygon Overlay and Parallelization Using GPU[J].Geo-information Science,2022,24(3):437-447.
Authors:ZHANG Zhikun  FAN Junfu  XU Shaobo  CHEN Zheng
Institution:1. School of Civil and Architectural Engineering, Shandong University of Technology, Zibo 255000, China2. School of Architecture & Urban Planning, Shenzhen University, Shenzhen 518060, China
Abstract:Vatti algorithm is one of the widely used vector polygon clipping algorithms. In the process of intersection calculation based on the construction of scanning beams, the data structure of binary tree and recursive calculation method lead to an obvious increase in time consumption when dealing with polygons with plenty of vertices. The calculation efficiency of the algorithm is significantly affected by the boundary vertex number of the overlapping polygons. Aiming at the efficiency improvement of the time-consuming scanning beam construction process of Vatti algorithm, this paper proposes an optimization approach based on polygon boundary vertex pre-sorting method, which is named VCS (Vertex Coordinate Pre-Sorting) method, and realizes a fine-grained level parallel Vatti algorithm on GPU device based on CUDA. The VCS method replaces the original binary tree data structure of Vatti algorithm with a double linked list, and obtains an obvious efficiency improvement on polygon boundary vertex information searching process with a smaller additional storage space. In GPU environment, the bitonic sorting method is used to sort the elements of polygon boundary vertex array in parallel and filter out the valid values, which overcomes the defect of low efficiency caused by the original algorithm using binary tree data structure. Experimental results show that the improved algorithm presents higher efficiency with the same calculation accuracy as the original algorithm. When the number of polygon vertices is 920 000 and the number of threads in each thread block is 32, compared with the serial algorithm which builds scan beams using CPU, the VCS optimization method with GPU-based parallel polygon clipping algorithm obtains a relative acceleration ratio of 39.6 times, and the efficiency of vector polygon superposition analysis algorithm is improved by 4.9 times overall.
Keywords:overlay analysis  polygon clipping  CUDA parallel  bitonic sort  VCS  Vatti algorithm  data structure  high performance computing  GIS  
本文献已被 万方数据 等数据库收录!
点击此处可从《地球信息科学》浏览原始摘要信息
点击此处可从《地球信息科学》下载免费的PDF全文
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号