协作类大规模地理栅格信息并行处理办法探讨
第一章绪论
经济发展和资源环境保护的应用需求带动了以高分辨率遥感卫星为
代表的新一代数据获取技术的提高,也带来数据量级的几何增长。随着地
理栅格数据时空分辨率增加、数据类型增多、计算面积增大,地理计算越
来越呈现出“超大规模数据量特征,同时随着地理空间分析和建模复杂程
度的提高,地理栅格数据计算越来越呈现出“超大规模计算密集型特征”
。但受限于工艺水平和物理极限,单机系统计算能力己无大幅提高空间,
现有地理计算平台也己无法满足应用需求,且当前主流的新型硬件架构提
供的计算能力也没有被地理栅格数据处理算法充分利用,因此,现有的地
理栅格计算平台及相关算法系统无法满足当前大规模复杂地理计算的需求
。随着计算机硬件、网络技术的发展以及大数据量的地学计算的应用需求
,发展高性能地学计算方法成为当前地学计算中一个非常活跃的研宂领域
。由于地学计算是典型的计算密集型与数据密集型特征的计算,尤其地理
栅格数据更具有计算存储一体化体系特征,因此,基于多核处理器研发地
理栅格数据的计算模型和并行算法尤为迫切,相对来说,在复杂地理计算
和地理过程模拟等方面的大规模应用较少。另外,由于一些大的应用需要
每秒执行数十万亿次乃至数百万亿此浮点运算的计算机,如天气预报、核
武器、石油勘探、地震数据处理、飞行器数值模拟、地理数据地学计算等
,这些应用需求推动了并行计算机和并行计算体系架构的发展,如我国的
天河系列计算集群等。
..........
第二章大规模地理栅格数据并行处理方法分析
地理栅格数据处理算法的串并行方式对比
本章对地理栅格数据的并行处理机制进行研究,对编写并行的地理
栅格数据算法可能会遇到的问题和一个研发团队要进行协作开发需要面临
的挑战进行分析。基于分析结论,提出一个较高质量栅格并行处理框架所
应具备的特点和功能。对于基于并行技术的地理栅格数据处理算法,其核
心思想是将一个复杂的地理计算划分为多个子任务,每个子任务单独进行
计算,处理方式如图所示,程序首先读取栅格数据的宽度、髙度、格式
等元数据内容,并按照计算强度划分多个子任务,每个子任务在获取自己
所需要至输入域每个进程迭代调用函数获得一个结果值写入到对应输出域
,最终将输出域合并写入到磁盘之中完成整个算法。在进行并行方式处理
栅格数据的时候,如果每个任务由单独的计算机或者来完成,将利用调动
更多的计算资源,其计算能力较原有的串行方式大为提高。
地理栅格多线程并行的I/O
在程序运行宏声明部分时,自动启动多个线程同时运行,在宏声明
程序体全部运行结束之后,重新同步为一个进程运行。与多进程访问方式
不同点是在进行多线程栅格数据并行计算过程中,每个线程可以访问进程
内部的所有数据,基本的处理方式如下:首先将进程要处理的栅格数据按
照线程数划分为多个“区域”,每个线程计算对应区域的数据,并获得结
果。在这个处理过程中,划分“区域”涉及到不同线程之间相互覆盖的问
题,某些基于卷积计算算法,一个点的数据需要对周边数据进行统计计算
出结果,在区域边界一个线程对原始数值的修改会影响到另外一个线程的
结果。作为替换,栅格数据处理程序可采用的模式是:申请一块缓冲区大
小与进程中的栅格数据大小相同。将进程要处理的栅格数据按照线程数划
分为多个“区域”。每个线程计算对应区域的数据,获得的结果写入到缓
冲区之中。
第三章协作式大规模地理栅格数据并行处理框架........27
大规模地理栅格数据的并行处理框架的结构与任务......27
基于框架的地理栅格数据间接访问技术.......29
基于框架的地理栅格数据典型并行操作方法..................
..32
第四章协作式地理栅格局域并行..........47
局部型栅格算法的特点和运行模式.....47
第五章协作式地理栅格数据全局并行...........81
全局型地理栅格算法的特点和运行模式.......81
全局型地理栅格算法特点分析一一以快速傅里叶变换算法为例..
.........82
面向人规模地理栅格数据的丼行快速傅里叶变换算法.......84
第六章协作式地理栅格数据动态并行
栅格数据动态计算的特点和运行模式
前两章所对应的栅格处理算法属于静态型算法,即数据和算法确定
之后运算的步骤、总运算量、各个进程的计算量是一定的;而基于栅格数
据的动态地理计算在步骤上事先无法事先确定,各个进程的计算量也受当
前步骤及数据复杂度的影响难以保证平衡;同时该类算法在并行的时候涉
及大量的步骤同步操作,并行编程较为困难。本章利用框架实现了一种动
态同步处理栅格数据的方法算法,并实现了的并行栅格聚类算法,实验结
果表明本文提出的算法可以较好的应对地理栅格数据动态并问题,以较小
代价实现算法。这种类型旳算法在并行时会遇到以下问题:计算步骤上事
先无法确定,每次迭代的结果均需要判断是否达到停止标准。每次迭代,
进程间均需要进行复杂的进度同步和关键变量同步的工作,一个进程的不
同步可能会引起整个计算过程的死锁。单个进程的计算量也受当前步骤及
数据复杂度的影响难以保证平衡,可能会出现一个最慢的进程拖慢整个算
法的运行速度的情况。
地理栅格数据动态并行特点分析一一以FCM算法为例
对于FCM算法的一个问题是需要反复遍历整个数据集,这就需要将整
个数据集加载到内存之中。当地理栅格数据较大的情况下这种加载较难实
现;同时FCM算法涉及到模糊隶属度的计算,计算时间也相对较长。为了
应对较大数据可以采用的方式是进行抽样聚类,进行数据抽样可以明显的
降低数据量,并加快算法运算速度,但是抽样的方式与比例对最终结果有
很大影响,在数据较为复杂的数据集中较低的抽样比例将影响结果的正确
性。在单个计算机的内存容量、计算能力难以大幅度提高的情况下,难以
实现较好大型栅格数据聚类效果。为了应对这一情况有必要利用集群并行
的数据能力对大型栅格数据进行聚类。
.............
第七章结论与展望
具体包含以下几个方面的工作:
(1) 提出了一种大规模地理栅格数据并行处理算法的并行解耦方法
(2)构建了协作式大规模栅格数据的并行处理框架
在地理栅格数据并行处理机制及并行解耦方法研宄的基础上,建立
了适合于协同幵发的数据块分块、分发、缝合的数据类模型,为实现地学
栅格数据协同并行奠定了基础;建立了核心算法的封装类模型及开发策略
,实现了代码开发与算法细节分离,保证了并行计算与分析应用工作的协
同。
(3) 提出了基于并行解耦思想的地理栅格数据局域计算并行化方法
以面向大型地理栅格数据的并行访问框架为基础,研制了系列典型
的局部型地理栅格处理算法,深度分析了算法的运行时间、时间等特性。
从软件工程角度提高了并行框架的可用性与易用性,同时分析了影响栅格
数据并行处理速度的关键因子,为进一步的算法效率提高奠定基础。
............ 参考文献(略)