当前位置: X-MOL 学术Comput. Geosci. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
High-performance parallel implementations of flow accumulation algorithms for multicore architectures
Computers & Geosciences ( IF 4.2 ) Pub Date : 2021-03-03 , DOI: 10.1016/j.cageo.2021.104741
Bartłomiej Kotyra , Łukasz Chabudziński , Przemysław Stpiczyński

The calculation of flow accumulation is one of the tasks in digital terrain analysis that is not easy to parallelize. The aim of this work was to develop new, faster ways to calculate flow accumulation and achieve shorter execution times than popular software tools for this purpose. We prepared six implementations of algorithms based on both top-down and bottom-up approaches and compared their performance using 118 different data sets (including 59 subcatchments and 59 full frames) of various sizes but the same area and resolution. Our results clearly show that the parallel top-down algorithm (without the use of OpenMP tasks) is the most suitable implementation for flow accumulation calculations of all we have tested. The mean and median execution times of this algorithm are the shortest in all cases studied. The implementation is characterized by high speedups. The execution times of the parallel top-down implementation are two orders of magnitude shorter compared to the Flow Accumulation tool from ArcGIS Desktop. This is important, considering the performance of popular GIS platforms, where it takes hours to perform the same kind of operations with the use of similar equipment.



中文翻译:

多核体系结构的流量累积算法的高性能并行实现

流量累积的计算是数字地形分析中不容易并行化的任务之一。这项工作的目的是开发一种新的,更快的方法来计算流量累积,并比为此目的的流行软件工具缩短执行时间。我们基于自上而下和自下而上的方法准备了六种算法的实现,并使用大小不同但面积和分辨率相同的118个不同数据集(包括59个子汇水面积和59个全帧)比较了它们的性能。我们的结果清楚地表明,并行的自顶向下算法(不使用OpenMP任务)是我们测试过的所有流量累积计算的最合适实现。在所有研究的情况下,该算法的平均执行时间和中值执行时间最短。该实现的特点是高速度。与ArcGIS Desktop的Flow Accumulation工具相比,并行自顶向下实现的执行时间短了两个数量级。考虑到流行的GIS平台的性能,这一点很重要,在该平台上,使用相似的设备执行相同类型的操作需要花费数小时。

更新日期:2021-03-17
down
wechat
bug