基于GPU集群的大规模三维弹性波正演模拟并行策略.ppt

上传人:文库蛋蛋多 文档编号:2872315 上传时间:2023-02-28 格式:PPT 页数:31 大小:2.37MB
返回 下载 相关 举报
基于GPU集群的大规模三维弹性波正演模拟并行策略.ppt_第1页
第1页 / 共31页
基于GPU集群的大规模三维弹性波正演模拟并行策略.ppt_第2页
第2页 / 共31页
基于GPU集群的大规模三维弹性波正演模拟并行策略.ppt_第3页
第3页 / 共31页
基于GPU集群的大规模三维弹性波正演模拟并行策略.ppt_第4页
第4页 / 共31页
基于GPU集群的大规模三维弹性波正演模拟并行策略.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《基于GPU集群的大规模三维弹性波正演模拟并行策略.ppt》由会员分享,可在线阅读,更多相关《基于GPU集群的大规模三维弹性波正演模拟并行策略.ppt(31页珍藏版)》请在三一办公上搜索。

1、基于GPU集群的大规模三维弹性波正演模拟并行策略,2023年2月28日,胜利油田青年科技人员创新创效大赛,汇 报 提 纲,一、背景和意义二、研究内容与创新点三、成果应用与推广,地震正演模拟作为认识波场特征,寻求合理采集处理参数的重要手段,同时也是反演和成像的基础,具有重要的研究意义。目前地震正演算法,特别是三维地震正演算法,尚不具备应用到大规模实际生产的能力,其主要原因为:计算效率太低。正演算法的计算量十分庞大,经测试,计算一个10101010平方米,采样点数为2000的区块,剖分网格大小为10米10米10米,使用CPU串行计算一个单炮的时间就超过24个小时,这样的效率在实际生产中是不能容忍的

2、。内存需求巨大。并行加速设备GPU的内存容量较小,这使得正演算法在CPU+GPU异构平台上并行执行也变得十分困难因此,提高计算效率和解决存储压力是三维模块实用化的关键。,背景和意义,弹性波正演模块的程序结构,背景和意义,读取参数,读取速度模型,加载观测系统,单炮组1,旋转交错网格高阶差分单炮模拟,已计算所有炮?,否,输出单炮记录,结束,是,开始,单炮组2,旋转交错网格高阶差分单炮模拟,输出单炮记录,已计算所有炮?,否,收集结果,是,进程1,进程2,背景和意义,旋转交错网格高阶差分单炮模拟,本研究成果使用MPI并行技术和CUDA编程模式实现了基于CPU/GPU协同并行计算平台的三维弹性波正演模拟

3、算法。基于本研究成果,三维正演模块的计算效率得到了大幅度的提升,进而提高了算法的生产能力,同时大幅度地降低了电能的使用量,节省大量的经费。本研究成果为三维正演模块在大规模实际生产中的实用化提供了有效支撑。,背景和意义,汇 报 提 纲,一、背景和意义二、研究内容与创新点三、成果应用与推广,研究内容,为了解决目前正演算法计算效率较低和内存需求较大的问题,实现正演算法在大规模实际生产中的应用,本成果提出了使用基于CPU/GPU异构平台的加速策略来提升算法的计算效率,使用区域分解方法来分摊内存存储的压力,因此形成了基于CPU/GPU异构集群的三维有限差分正演模拟多级并行策略。,研究内容,多级并行策略,

4、研究内容 基于CPU/GPU异构平台实现并行加速,使用MPI+CUDA的多核异构并行编程方式实现到了单炮级和结点级的并行,主要研究:使用MPI实现单炮级并行CPU/GPU协同并行模式使用CUDA实现结点级并行PML边界条件的处理,研究内容 基于CPU/GPU异构平台实现并行加速,1.使用MPI实现单炮级并行,单炮级并行使用MPI进程组间并行来实现。根据子区域的个数确定每一个单炮计算需要的进程数,然后将所有进程按此进程数分成若干个进程组,将需要计算的所有炮平均分配到每个进程组上计算。每个进程组可以视为单个进程,进程组之间相互独立,互不依赖;进程组内各进程的计算并不完全独立,需要在通讯域内相互传递

5、数据。组内进程协调合作,共同完成一个单炮的计算。,研究内容 基于CPU/GPU异构平台实现并行加速,2.CPU/GPU协同并行模式,3.使用CUDA实现结点级并行,GPU使用线程格(Grid)和并行线程块(Block)来管理线程,目前CUDA仅支持二维的线程块数组。而有限差分方法对网格结点的循环计算涉及了三个维度,在使用CUDA将算法迁移到GPU设备上时,需要将三维空间沿x方向进行切片,每个yz平面为一个切片。GPU线程块Block中的每个线程完成切片上一个结点的计算。GPU每次并行计算一个切片,沿x方向循环计算,直到所有切片计算完成。,研究内容 基于CPU/GPU异构平台实现并行加速,研究内

6、容 基于CPU/GPU异构平台实现并行加速,4.PML边界条件的处理,在PML边界中的节点上引入辅助变量f(x,y,z),由于f(x,y,z)在不同位置的取值不同,因此分成了多种情况来实现,造成程序中分支很多,十分不利于向GPU上移植。,if(x=bdry&y=bdry&z=bdry)!#$#$#$#$#$#$#elseif(.)!#$#$#$#$#%else(.)!#%$#$%#$#%#,解决方案:第一步,在全部区域上都引入辅助变量,只是将变量在内部区域上的值设置为零。这样在全部区域上的处理都相同,避免了分别依次计算各个区域的串行执行方式,提高了计算效率。,研究内容 基于CPU/GPU异构平

7、台实现并行加速,4.PML边界条件的处理,研究内容 基于CPU/GPU异构平台实现并行加速,4.PML边界条件的处理,第二步,将内部区域中的零值辅助变量进行压缩存储,然后利用一个映射数组来描述压缩前后的存储对应关系,实现对辅助变量的访问。这样可节省大量的内存,缓解内存压力。,研究内容使用区域分解方法分摊存储压力,为了解决这存储需求的问题,我们实现了区域分解算法。将三维计算区域沿某一方向分成若干子区域,每个子区域分给一个节点计算,这样既将内存压力分配给多个节点分担,又实现了区域级的并行计算。主要研究了:区域分解方法的实现消息传递时间隐藏策略并行I/O的实现,研究内容使用区域分解方法分摊存储压力,

8、以沿x方向为例,根据计算区域的大小,确定分解子区域的个数,保证每个子区域的计算所需内存小于GPU的显存。在对区域进行平均划分之后,进程组中的每个进程负责一个子区域的运算。子区域的计算并非完全独立并行执行的。由于差分格式的限制,每个结点的计算都需要用到该结点上下、左右、前后六个方向的若干个点的波场值,因此对于每个区域的边界附近的结点,其计算需要用到相邻区域的结点的波场值。因此我们在每个子区域上附加一个辅助区域。,1.区域分解方法的实现,研究内容区域分解方法研究,图中A标记区域即为增加的辅助区域,宽度等于差分格式的阶数。该区域用来接收相邻区域中B标记的部分传递来的波场值。图中给出了各个区域之间的数

9、据传递示意图。一旦区域间的数据传递完成,各个子区域上的计算就可以相互独立地并发执行。,1.区域分解方法的实现,研究内容区域分解方法研究,数据传递的时间将会大大降低计算效率,因此我们设计了如图所示的方案,让数据传递时间与计算时间同时进行,从而有效隐藏数据传递的时间。执行流程为:首先在GPU上计算需要交换的部分(B标记部分)的波场值,传回CPU后由CPU启动MPI非阻塞发送(接收)。启动后,程序并不等待发送(接收)操作完成,而是立即返回,执行下一指令在GPU进行子区域剩余部分(C标记部分)的计算,而CPU同时在进行发送(接收)数据的任务,这样CPU收发数据的时间与GPU计算C标记部分的时间就相互重

10、叠,从而达到隐藏数据传递时间的目的。,2.消息传递时间隐藏策略,研究内容区域分解方法研究,3.并行I/O的实现,一般采用的方式(如左图所示)是设置一个节点专门负责读写文件。读文件时,读写节点从文件读取所有数据,然后根据需求将数据分发给其他计算节点。计算结束后,读写节点从各个计算进程收集数据,合并之后写出到文件。由于需要进行文件传递,这样的读写方式效率较低。根据区域分解方法的特点,我们使用了MPI-IO机制实现了多节点并行读写(如右图所示),即不再设置专门的读写节点,而是为每个节点在文件中指定其读写位置,各个节点并行的从该位置读写数据,这样可以省去数据传递的过程,从而提升读写的效率。,创新点,基

11、于CPU/GPU异构平台实现了三维弹性波正演模拟算法的并行加速策略,大幅度的提高了算法的执行效率。实现区域分解方法,有效地解决了原有算法内存需求大,单节点无法计算的问题。提出了消息传递时间隐藏策略、压缩存储、并行读写等方法策略,进一步提高了算法的计算效率和性能。,汇 报 提 纲,一、背景和意义二、研究内容与创新点三、成果应用与推广,成果应用,使用本成果的算法,对东部砂砾岩体构造模型进行了正演模拟。正演模拟参数:模型大小为49426061350,纵、横波速度模型均为6.5GB。观测系统设置为:每一个单炮都设置了6条检波线,检波线间距为100米。每条线有20个检波点,检波点间距为50米,炮间距为1

12、00米,采样点数为2000。计算使用的网格大小为10米10米10米,时间步长为0.5毫秒。计算机集群环境:使用了5个计算节点,每个节点配置了12核CPU,同时挂载两个GPU卡设备。CPU均为Intel Xeon X5650,主频为2.67GHZ,内存为24GB;GPU设备均为Tesla M2090,每个GPU的显存为6GB。,成果应用,若只使用CPU进行一个单炮的模拟需要约192.5小时。使用CPU/GPU协同并行计算时,若只是用单个GPU(即不适用区域分解方法)是无法计算的,因为计算所需内存为11.5G,远远超过了单个GPU的内存大小。利用本成果,我们对区域进行了分解,并使用了两个CPU进程

13、和两个GPU卡设备对其分别进行计算,使用GPU内存为5.78G,小于单个GPU的内存大小。在此配置下,计算一个单炮模拟需要的时间为756秒。使用本成果方法,使得大规模模拟任务成为可能,并且并行效率提高十分可观,可行性和计算效率,成果应用,CPU和GPU设备的工作功率分别为95瓦和250瓦,则计算一个单炮,使用单个CPU计算的策略的耗电量为95*192.5=18.2875千瓦时,使用本成果策略的耗电量为2*(95+250)*756/3600=0.1449千瓦时。若工业电费为0.64元/度,则可节省电费11.6元,完成10000个单炮的模拟,就可节省电费11.6万元。使用本成果算法,可以节省大量电

14、费成本,经济效益十分可观。,经济效益,成果应用,砂砾岩体速度模型,成果应用,波场快照,成果应用,单炮记录,成果推广,地震波正演模拟在油气勘探开发中应用十分广泛,常常被用于指导地震采集参数设计、评价地震处理效果、检验地震解释结论,甚至直接被用于含油气性检测。地震正演还是波动方程偏移和反演的基础,具有很高的实用价值。随着勘探的深入,地质构造越来越复杂,给采集、处理和解释人员带来了巨大的挑战。为了能够清楚地了解复杂构造和地震记录的联系,作为重要工具的地震正演模拟的需求也越来越大。但是基于CPU的三维正演算法计算周期长,耗电量大,生产成本高,使得大规模的正演模拟难以开展。本成果解决以上问题,大幅度缩短了计算时长,节省了电能消耗,降低了成本,使得大规模实际生产成为可能。本成果的推广,将给采集、处理和解释人员的工作提供快速、有力的支撑,推广应用前景广泛。,谢谢!请领导和专家批评指正,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号