论文部分内容阅读
为应对目前栅格地理数据分析中处理数据规模扩大、计算复杂的问题,并行计算得到了日益广泛的应用。然而对地理学研究者而言,从底层进行并行编程难度较高,因此,借助栅格地理计算并行编程库进行算法研发成为快速实现并行化的一种常用方式。栅格地理计算并行编程库在设计上尽可能隐藏各类并行编程细节,使算法研发者在开发栅格地理计算算法时,能以类似串行编程的方式快速、高效地实现并行算法。现有的栅格地理计算并行编程库中,栅格地理计算并行算子(Parallel Raster-based Geocomputation Operators,PaRGO)(Qin等,2014)在设计思路上不仅能较好地隐藏与具体环境相关的复杂并行编程细节,而且能兼容多种常用并行计算平台(SMP、集群及GPU),支持用户以一套串行风格的代码实现多平台可用的并行化计算,相比同类型已有栅格地理计算并行编程库具有优势。 但目前PaRGO设计上仅支持对数据规则、均匀的域分解方式,在应用于数据、计算过程在空间上分布不均的栅格地理计算并行化时,会面临负载不均衡、并行性能不足的问题。 本文借鉴Wang和Armstrong(2009)提出的“空间计算域”概念,对栅格地理计算中普遍存在的数据、算法空间异质分布特征进行统一定量化表达,基于此设计了计算负载均衡的域划分方法,并实现为一套可综合考虑数据及计算过程的空间分布、兼容多种并行计算平台的栅格地理计算并行算子。在示范应用中,选取模糊C均值聚类和反距离加权插值两种空间计算负载分布不均匀的算法,基于所研发的棚格地理计算并行算子进行并行化实现。评价结果表明,本文所设计的基于空间计算域的域划分方式可有效均衡各进程的计算负载,显著提升了栅格地理计算并行算子的加速效率。