基于并行计算机的地球动力数模算法制造技术

技术编号:17705458 阅读:55 留言:0更新日期:2018-04-14 18:16
本发明专利技术涉及一种基于并行计算机的地球动力数模算法,属于地质地球动力数值模拟技术领域。其包括如下步骤:预设模型参数信息、读取模型参数信息、地质地球动力数值模型分为人工输入模型和计算机转换模型,判断是否达到迭代完成时间、读取每一时刻的状态信息文件、用状态文件含有的模拟参数绘制参数场图、利用模拟参数计算可能的地球物理地球化学参数图。本发明专利技术提高了数值模拟的计算速度,并从初始模型、分辨率两个方面直接提升模拟结果的可信度,还支持数值模拟结果与其他研究成果的综合对比;可以将高精度的大尺度模拟结果与常规小尺度数值模拟、小尺度物理模拟、小尺度自然观察等相结合,减小结合时由于大尺度模拟的精度问题所带来的误差。

【技术实现步骤摘要】
基于并行计算机的地球动力数模算法
本专利技术涉及一种基于并行计算机的地球动力数模算法,属于地球动力数值模拟

技术介绍
地质学与地球动力学所研究的对象之一是地球构造演过过程。由于研究对象的空间尺度大、时间尺度长,所以不能通过观察方法研究目标区域不同历史时期的构造演化过程及其动力学机制,而数值模拟方法能够基于基本的物理、化学方程,利用计算机实验的方式解决此类问题。现有的地球动力数模算法均是针对同构众核计算机、并行工作站机群、高性能工作站、个人电脑等平台。以上几种计算机的中央处理器(CPU)包含一个或数个结构相同的核心,这种核心在逻辑运算上具有一定优势,但在浮点运算上效率略低。从效率与准确度的角度来说,上述平台并非运行地球动力数模软件的最优平台;在以上平台上执行的数模算法存在运行速度过慢、分辨率过低的问题。而异构众核计算机的中央处理器除了包含几个主要核心外还包含类似于图形处理器(GPU)的从核,此计算机更适合进行大量的数值计算。虽然异构众核计算机平台更适合运行数值模拟程序,但是目前地球动力数模算法领域没有面向异构众核的多级并行数模算法。由于中央处理器的架构以及异构众核计算机的编程环境不同,因此地球动力数模算法也与以往的不同。现有的地球动力数模算法存在以下缺陷:(1)是通过人工手动编写、用简单几何形状描述、计算机程序进行差分的方法制作模拟所需的初始模型的。(2)目前没有建立可用于数模算法的复杂三维模型的方法,这导致数模成果的可信度低、人工编写效率低,且这种数模只能局限的应用于理论探讨与验证。(3)目前算法运算速度较慢,延长了项目周期、降低了工作效率。(4)目前的数模算法不包含将计算出来的数值模拟结果转换成其他领域(如地球物理、地球化学)常用样式的数据或图示的步骤,这在一定程度上降低了模拟结果的应用性与可信度。
技术实现思路
针对现有技术存在的上述缺陷,本专利技术提出了一种新的基于并行计算机的地球动力数模算法,提高了数值模拟的计算速度,并从初始模型、分辨率两个方面直接提升模拟结果的可信度,还支持数值模拟结果与其他研究成果的综合对比。本专利技术是采用以下的技术方案实现的:本专利技术所述的基于并行计算机的地球动力数模算法,包括如下步骤:步骤一:预设模型参数信息:将人工编写好的模拟所需的或依据计算机辅助设计生成的模型参数信息,通过输入或读取两种方式读入异构众核超级计算机内存中;步骤二:读取模型参数信息:读取并分析输入到内存中的模型参数信息,按照读取的模型参数信息,以较高的分辨率来计算网格节点的数目生成数值的差分网格化的地球动力数值模型,然后规定网格节点的空间位置,并将空间位置以数组的形式存储在计算机内存中;构建地球动力数值模型,地球动力数值模型分为人工输入模型和多计算数据转换模型两种方式,分为如下情况:情况一:如果为人工输入模型:人工输入网格节点的分层界线的顶点坐标,以变量和数组的形式确定其空间位置;情况二:如果为多计算数据转换模型:读入带有几何形态的几何模型,将几何模型分类为成组的网格节点的几何顶点参数,以确定其空间位置;步骤三:读取物质参数文件:地球动力数值模型的每个相连分层界线都分割出一块区域,给每块区域赋予物性参数文件中的某个对应的物质参数信息;步骤四:将模型离散成点,将模型参数传递给点:在地球动力数值模型的整个模拟空间范围内,生成大量的粒子点;网格节点与粒子点的空间位置关系,用插值法给粒子点赋予物质参数信息;到此完成生成数值的差分网格化的高精度三维地球动力数值模型,将以上生成的变量与数组按照一定的输出规则存储为文件;步骤五:判断是否达到迭代完成时间,分为如下情况:情况一:若达到迭代完成时间,进入步骤六;情况二:若未达到迭代完成时间:计算机主进程利用MPI或OpenMP接口分配任务给其他进程:利用MPI或OpenMP接口进行异构众核计算机中的主核之间的控制、通信、计算;其他进程帮助主进程生成计算所需的矩阵;其他进程调用OpenAcc加速接口与Pthreads加速接口,进行矩阵运算:对于计算量巨大的语句模块,则调用异构众核计算机平台下的从核OpenACC加速接口与Pthreads加速接口进行加速处理;从核完成矩阵运算:利用从核的计算优势来处理地球动力数值模拟运算中的超大型矩阵运算以及IO操作;运算结果汇总,模型状态更新:通过上述的加速计算方式,计算出当前时刻的模型状态方程组及其对应的系数矩阵和系数向量进而得到解向量,将解向量依据参数类型分配到各个参数数组中,从而计算出模型的温度场、速度场、压力场;保存模型状态信息:得到模型下一时刻的状态信息并存储在硬盘中;步骤六:读取每一时刻的状态信息文件:将得到的新的状态信息计算再下一时刻的状态信息,直到得到目标时刻的状态信息;步骤七:用状态文件含有的模拟参数绘制参数场图:利用存储在硬盘中的目标时刻的状态信息,将状态信息转换成其他领域关心的参数,并将以其他领域的图标形式绘制出数据图;步骤八:利用模拟参数计算非常规的地球物理、地球化学参数图:利用密度可以计算出地震学家所需要的地质体声速分布图,利用温度数据可以计算出地热学所需要的地表热通量图,利用应力应变场数据可以计算出构造学家所需的应力分布图和断层分布图,利用密度、空间位置数据可以计算出地球物理学家所需的重力异常图。优选地,所述步骤一中,模型参数信息包括模型大小、网格分辨率、迭代初始时间、迭代终止时间。优选地,所述步骤五中,依据速度场改变模型内部离散点的位置、应力参数,依据温度场、压力场改变模型内部离散点的温度、粘度参数。优选地,所述步骤五,还包括如下小步:第一步:令初始时刻t=0,迭代最大时间为tmax;第二步:利用MPI或OpenMP库将粒子点数据和网格数据分配给其他进程;第三步:各个进程使用openACC库或Athread库调用从核计算,将粒子点参数以加权平均的方式传输到网格中;第四步:已知网格的各项物性参数,通过上述的加速计算方式,计算当前状态所对应的模型状态方程组,将其以对应的系数矩阵和系数向量的形式表示;第五步:系数矩阵为稀疏矩阵,其存储格式为三元组;将系数矩阵与系数向量作为解线性方程组函数的参数并调用此函数,例如利用广义最小残差法解线性方程组的mgmres函数;第六步:在函数mgmres运行过程中,函数包含的矩阵乘法、矩阵加减法均通过从核进行加速计算;最终求解出解向量;第七步:将解向量所包含的速度、压力、温度信息赋值给网格,计算出每个点相应的应力、应变、密度、粘度信息;第八步:将粒子点分配给各从核,使用插值法与网格数据计算粒子点的速度、压力、温度、应力、应变信息;第九步:依据粒子点的速度与时间步长△t,移动粒子点并改变其坐标值,从而完成模型状态的更新;第十步:令t=t+△t,更新当前迭代时间;第十一步:将当前时刻的迭代数据存储到计算机的硬盘中。优选地,所述步骤五的判断方法如下:如果t>tmax,则继续向下执行;如果条件不成立,则跳转到第九步进行迭代计算,直到迭代时间大于最大迭代时间;到达最大迭代时间后,令计数器N=0,令Nnum等于输出的状态文件的个数。优选地,所述步骤七中的参数场图包括温度场图、速度场图、密度场图。优选地,所述步骤八中,依据密度计算声速与声阻抗界面、声速体位置,并绘制成图声速图本文档来自技高网
...
基于并行计算机的地球动力数模算法

【技术保护点】
一种基于并行计算机的地球动力数模算法,其特征在于,包括如下步骤:步骤一:预设模型参数信息:将人工编写好的模拟所需的或依据计算机辅助设计生成的模型参数信息,通过输入或读取两种方式读入异构众核超级计算机内存中;步骤二:读取模型参数信息:读取并分析输入到内存中的模型参数信息,按照读取的模型参数信息,以较高的分辨率来计算网格节点的数目生成数值的差分网格化的地球动力数值模型,然后规定网格节点的空间位置,并将空间位置以数组的形式存储在计算机内存中;构建地球动力数值模型,地球动力数值模型分为人工输入模型和多计算数据转换模型两种方式,分为如下情况:情况一:如果为人工输入模型:人工输入网格节点的分层界线的顶点坐标,以变量和数组的形式确定其空间位置;情况二:如果为多计算数据转换模型:读入带有几何形态的几何模型,将几何模型分类为成组的网格节点的几何顶点参数,以确定其空间位置;步骤三:读取物质参数文件:地球动力数值模型的每个相连分层界线都分割出一块区域,给每块区域赋予物性参数文件中的某个对应的物质参数信息;步骤四:将模型离散成点,将模型参数传递给点:在地球动力数值模型的整个模拟空间范围内,生成大量的粒子点;网格节点与粒子点的空间位置关系,用插值法给粒子点赋予物质参数信息;到此完成生成数值的差分网格化的高精度三维地球动力数值模型,将以上生成的变量与数组按照一定的输出规则存储为文件;步骤五:判断是否达到迭代完成时间,分为如下情况:情况一:若达到迭代完成时间,进入步骤六;情况二:若未达到迭代完成时间:计算机主进程利用MPI或OpenMP接口分配任务给其他进程:利用MPI或OpenMP接口进行异构众核计算机中的主核之间的控制、通信、计算;其他进程帮助主进程生成计算所需的矩阵;其他进程调用OpenAcc加速接口与Pthreads加速接口,进行矩阵运算:对于计算量巨大的语句模块,则调用异构众核计算机平台下的从核OpenACC加速接口与Pthreads加速接口进行加速处理;从核完成矩阵运算:利用从核的计算优势来处理地球动力数值模拟运算中的超大型矩阵运算以及IO操作;运算结果汇总,模型状态更新:通过上述的加速计算方式,计算出当前时刻的模型状态方程组及其对应的系数矩阵和系数向量进而得到解向量,将解向量依据参数类型分配到各个参数数组中,从而计算出模型的温度场、速度场、压力场;保存模型状态信息:得到模型下一时刻的状态信息并存储在硬盘中;步骤六:读取每一时刻的状态信息文件:将得到的新的状态信息计算再下一时刻的状态信息,直到得到目标时刻的状态信息;步骤七:用状态文件含有的模拟参数绘制参数场图:利用存储在硬盘中的目标时刻的状态信息,将状态信息转换成其他领域关心的参数,并将以其他领域的图标形式绘制出数据图;步骤八:利用模拟参数计算非常规的地球物理、地球化学参数图:利用密度可以计算出地震学家所需要的地质体声速分布图,利用温度数据可以计算出地热学所需要的地表热通量图,利用应力应变场数据可以计算出构造学家所需的应力分布图和断层分布图,利用密度、空间位置数据可以计算出地球物理学家所需的重力异常图。...

【技术特征摘要】
1.一种基于并行计算机的地球动力数模算法,其特征在于,包括如下步骤:步骤一:预设模型参数信息:将人工编写好的模拟所需的或依据计算机辅助设计生成的模型参数信息,通过输入或读取两种方式读入异构众核超级计算机内存中;步骤二:读取模型参数信息:读取并分析输入到内存中的模型参数信息,按照读取的模型参数信息,以较高的分辨率来计算网格节点的数目生成数值的差分网格化的地球动力数值模型,然后规定网格节点的空间位置,并将空间位置以数组的形式存储在计算机内存中;构建地球动力数值模型,地球动力数值模型分为人工输入模型和多计算数据转换模型两种方式,分为如下情况:情况一:如果为人工输入模型:人工输入网格节点的分层界线的顶点坐标,以变量和数组的形式确定其空间位置;情况二:如果为多计算数据转换模型:读入带有几何形态的几何模型,将几何模型分类为成组的网格节点的几何顶点参数,以确定其空间位置;步骤三:读取物质参数文件:地球动力数值模型的每个相连分层界线都分割出一块区域,给每块区域赋予物性参数文件中的某个对应的物质参数信息;步骤四:将模型离散成点,将模型参数传递给点:在地球动力数值模型的整个模拟空间范围内,生成大量的粒子点;网格节点与粒子点的空间位置关系,用插值法给粒子点赋予物质参数信息;到此完成生成数值的差分网格化的高精度三维地球动力数值模型,将以上生成的变量与数组按照一定的输出规则存储为文件;步骤五:判断是否达到迭代完成时间,分为如下情况:情况一:若达到迭代完成时间,进入步骤六;情况二:若未达到迭代完成时间:计算机主进程利用MPI或OpenMP接口分配任务给其他进程:利用MPI或OpenMP接口进行异构众核计算机中的主核之间的控制、通信、计算;其他进程帮助主进程生成计算所需的矩阵;其他进程调用OpenAcc加速接口与Pthreads加速接口,进行矩阵运算:对于计算量巨大的语句模块,则调用异构众核计算机平台下的从核OpenACC加速接口与Pthreads加速接口进行加速处理;从核完成矩阵运算:利用从核的计算优势来处理地球动力数值模拟运算中的超大型矩阵运算以及IO操作;运算结果汇总,模型状态更新:通过上述的加速计算方式,计算出当前时刻的模型状态方程组及其对应的系数矩阵和系数向量进而得到解向量,将解向量依据参数类型分配到各个参数数组中,从而计算出模型的温度场、速度场、压力场;保存模型状态信息:得到模型下一时刻的状态信息并存储在硬盘中;步骤六:读取每一时刻的状态信息文件:将得到的新的状态信息计算再下一时刻的状态信息,直到得到目标时刻的状态信息;步骤七:用状态文件含有的模拟参数绘制参数场图:利用存储在硬盘中的目标时刻的状态信息,将状态信息转换成其他领域关心的参数,并将以其他领域的图标形式绘制出数据图;步骤八:利用模拟参数计算非常规的地球物理、地球化学参数图:利用密度可以计算出地震学家所需要的地质体声速分布图,利用温度数据可以计算出地热学所需要的地表热通量图,利用应力应变场数据可以计算出构造学家所需的应力分布图和...

【专利技术属性】
技术研发人员:董昊戴黎明李三忠马芳芳陶建丽胡梦颖
申请(专利权)人:中国海洋大学
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1