一种加速克里金插值的方法

文档序号:9887602阅读:1335来源:国知局
一种加速克里金插值的方法
【技术领域】
[0001] 本发明涉及地学领域,尤其涉及一种加速克里金插值的方法。
【背景技术】
[0002] 克里金插值算法也称为空间自协方差最佳插值法,它最早由南非矿业工程师 D.G.Krige提出,因此也以他的名字命名该算法。克里金插值算法广泛用于地学、环境科学 等领域。它是根据未知点周围一定范围内观测点的值来估计未知点取值的一种方法。该方 法是一种线性无偏方法,内插结果准确率高。然而在实际应用中,待插值地区面往往过大, 插值密度也要求很高,这就造成了克里金插值速度很慢,严重限制了它的应用。随着并行计 算技术的发展,基于这些新技术加速克里金算法成为一个研究热点。目前,克里金加速算法 主要分为以下几个方面:
[0003] -、基于集群技术
[0004] 集群由大量计算机通过高速网络连接组成,普通的商用集群一般包含上百个节 点。集群的特点是相对普通PC(个人电脑),运算能力比较强,但也存在着能耗高,管理成本 高,应用难度高的缺点。基于集群硬件平台来加速克里金插值方法通常使用消息传递接口 (MPI),具体实现方法包括两种:一是将算法中每一个可以并行的部分在集群中以并行方式 完成;二是以每个未知点的估计做为一个并行单元在集群上并行执行。前者编程相对容易, 因为克里金插值中的可并行部分是矩阵计算,现有大量专业人员编写的可在集群上并行运 行的代码库可以使用,但是这种并行方式对集群的利用率不高,同时会产生大量的节点间 通讯,对速度有很大的影响;后者能充分利用集群的计算资源,但是需要编写克里金算法中 的包括矩阵计算的各种数值算法,因此实现成本高,对编写代码人员的编程能力要求较高。
[0005] 二、基于多核CPU
[0006] 由于工艺原因,CPU的核心频率遇到了瓶颈,CPU的主流发展朝多核方向发展,充分 利用多核CHJ的资源也成为加速克里金的一种主要方法。多核CPU成本较集群低,实现相对 容易,节点间通讯速度也较快,但受CPU核心数量的限制,其能够并行执行的线程数有限,因 此加速比潜力不如集群或GPU。基于多核CPU加速克里金插值一般使用OpenMP框架,具体的 加速方法也分为两类:一是将可并行执行的矩阵计算在多核CPU上并行执行;二是以每个待 估的未知点做为基本的并行单元完成克里金插值的并行执行。
[0007] 三、基于 GPU
[0008] GPU平台是一种有前景的并行加速平台。GPU相对集群成本低很多,能耗也小很多, 而且GPU包含的可并行执行的计算核心数量远高于多核CPU,主流的GPU都拥有几千个计算 核心。基于GPU硬件平台的加速技术主要基于两种软件平台:统一计算设备架构(CUDA)和开 放运算语言(OpenCL)。具有加速方法同集群和多核CPU-样,分为两类:一是将可并行执行 的矩阵计算在多核CHJ上并行执行;二是以每个待估的未知点做为基本的并行单元完成克 里金插值的并行执行。
[0009] 四、组合方法
[0010] 由于一种计算设备可能同时包含上述几种计算平台,因此上述几种加速算法也可 以混合应用,以最大程度挖掘计算平台的潜力。

【发明内容】

[0011] 克里金插值是地学领域经常用到的一种插值方法,同其它插值方法相比,例如:反 距离加权插值法、最近邻点插值法、线性插值三角网法、局部多项式法等,其插值精度较高。 但是克里金插值是一种严重消耗计算和内存资源的算法,尤其是在大面积区域中做高密度 克金金插值是相当慢的,严重地影响了克里金插值的实际应用价值。本发明针对克金格插 值算法提出一种新的解决方案,能极大的提高克里金插值的速度。
[0012] 本发明为解决现有加速克里金插值的方法仅从计算平台的计算资源的角度来加 速,克里金插值中仍存在大量的冗余计算和存储的问题,而提出一种加速克里金插值的方 法。
[0013] -种加速克里金插值的方法,按以下步骤进行:
[0014] 步骤一、在CPU端,按已知观测点的横坐标值对观测点从小到大排序;
[0015] 步骤二、将排好序的数据传送到GPU,并启动GPU端克里金插值程序;
[0016] 步骤三、在GPU中每个线程执行一个待估点的计算,所有线程首先搜索待估未知点 X周围η个已知观测点xj( j = l,2,. . .,n),作为该未知点的邻近点;
[00?7] 步骤四、同步GPU中同一个workgroup内所有线程,待workgroup内所有的待估未知 点的邻近点搜索完成后,执行下一步;
[0018] 步骤五、所有workgroup内的第一个线程比较所有相邻待估未知点的邻近点,并标 识具有相同邻近观测点的待估未知点;
[0019] 其中,对于具有相同邻近点的待估点中最先出现的点,称为父节点;
[0020] 步骤六、标记为父节点的GPU线程,根据变异函数公式| -乳? + A)] 及其拟合模型构造变异函数矩阵:
[0021] 在这个步骤中,只有标记为父节点的线程参与了计算并保存结果矩阵,其它线程 即没有消耗计算,也没有浪费存储空间;
[0022] 步骤七、标记为父节点的GPU线程求f的逆矩阵f
[0023] 步骤八、GPU内所有线程构造自己的矩阵:
[0024] 步骤九、GPU内所有线程解方程序组Y XK-1,求出V,其中,
^是 拉格朗日乘子;
[0025]步骤十、GPU内所有线程根据系数Μ估计待测值X [0026]
[0027]本发明包括以下有益效果:
[0028] 1、传统方法仅从计算平台的计算资源的角度来加速,本发明方法从根本上解决了 克里金插值法的运算速度慢的问题,在克里金插值过程中,选择离待估计最近的一定数量 观测点来计算权值系数,相邻的待估点通常有相同的邻近已知观测点,由于待估未知点的 取值完全取决于其邻近已知观测点的值,因此,对于具有相同邻近观测点的待估点,只需计 算其中一个待估点,由此减少大量的冗余计算和中间计算过程中的矩阵存储量。
[0029] 2、本发明方法提出一种搜索邻近点的方法,减少了搜索范围,从而提高了搜索速 度。
【附图说明】
[0030] 图1为具有相同邻近观测点的待估未知点的标识过程示意图。
【具体实施方式】
[0031] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合图1和具体实施 方式对本发明作进一步详细的说明。
【具体实施方式】 [0032] 一、本实施方式所述的一种加速克里金插值的方法,按以下步骤进 行:
[0033]步骤一、在CPU端,按已知观测点的横坐标值对观测点从小到大排序;
[0034]步骤二、将排好序的数据传送到GPU,并启动GPU端克里金插值程序;
[0035]步骤三、在GPU中每个线程执行一个待估点的计算,所有线程首先搜索待估未知点 X周围η个已知观测点xj( j = l,2,. . .,n),作为该未知点的邻近点;
[0036] 步骤四、同步GPU中同一个workgroup内所有线程,待workgroup内所有的待估未知 点的邻近点搜索完成后,执行下一步;
[0037]步骤五、所有workgroup内的第一个线程比较所有相邻待估未知点的邻近点,并标 识具有相同邻近观测点的待估未知点;
[0038] 其中,对于具有相同邻近点的待估点中最先出现的点,称为父节点;
[0039] 步骤六、标记为父节点的GPU线程,根据
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1