作为我国西气东输主要油气资源的塔里木地区克拉2大型油气田,用其地震成像以分析三维叠前深度偏移,在曙光3000计算机上的并行,印证了国产应用软件良好的成像效果和超大规模国产并行计算机突出的计算性能,从而展示其在油气勘探方面的应用前景。
三维叠前深度偏移分为地震反射波射线走时计算和绕射波叠加成像两部分。走时计算是根据给定的介质层速度模型,通过求解程函方程,计算所有地面激发点到地下所有可能成像点的反射波传播时间。对于克拉2地震资料,其地面点数约100000个,每个点的成像范围是6000米×3000米×12000米,如果计算网格为120米,则网格有51×25×101=128775个点即0.5151兆字节,整个射线表格的计算量和存储量为25.775G字节,当采用60米网格时,这个数字扩大8倍为206.2G字节,当采用30米网格时,这个数字再扩大8倍为1649.6C字节。计算网格小意味着较高的计算精度,但是计算量、存储量和传输量都成倍增加,考虑到实际可用的并行机节点个数的限制,我们这里采用120米计算网格。绕射波叠加成像部分是将地面接收的每一个地震反射波振幅偏移到地下所有可能的反射点上,通常作法是将成像空间放在计算机内存里,每读取一个地震道,同时读取相应其炮点和接收点的射线走时表格,通过内插法计算出每个相关成像点的反射波旅行时间,把地震道该时间上的振幅累加到成像点上,便可实现一个地震道的反射波偏移归位。对于克拉2地震资料,输入地震道超过3000万个,走时表格读取量超过3000万×0.5151=15453G字节,与巨大存取量相对应的是同样巨大的计算量。
此外,由于三维情况下成像空间会变得很大,当其超过内存的允许范围时,成像空间应放入磁盘,所以,规划有效的输入地震道与成像空间的关系就变得十分重要。
巨大的计算量意味着过长的运算时间,利用多个节点或CPU进行并行处理,通过计算能力的增强换取计算时间的缩短,使三维叠前深度偏移技术的数值实现成为可能;而通过多个CPU内存的组合,则可以有效地解决内存容量与成像空间的矛盾。但是,并行处理也会带来数据或信息传输的问题,合理地考虑节点之间的数据传输和并行策略是保证并行效率的关键。
三维叠前深度偏移的并行实现策略
(1)依赖于并行环境PVM(Parallel Virtual Machine—并行虚拟机);
(2)使用Master/S[ave的并行编程模式,Master与Slave分工合作;
(3)尽可能地把计算放在各个Slave中去做。这样,就使得Master能够对各个Slave的数据请求实时响应,缩短slave等待处理数据的时间,从而充分发挥出每个Slave的能力,提高并行的整体效率。
(4)使用“任务池”技术,使负载易于达到动态平衡。
(5)使用较大粒度并行。因为每个地面点的射线走时计算和对每个地震记录的偏移处理均具有无关性,所以可以以每个地面点的射线走时计算和每个地震道的偏移处理为基本单位进行计算。其次,在计算射线旅行时的并行算法中,当Slave向Master提出任务请求时,Master一次向Slave分配一定数量的地面点。分配地面点的数量的策略是:在大体能确保负载平衡的前提下,使Stave每次从 Master处得到的任务量最大。同样,在对地震记录进行偏移处理的时候,Slave 每次从Master处得到的任务量也尽可能地大,使得每次能够用一个较大消息包 进行传送。
并行难点与解决方案
对于共享存储并行机而言,由于其主存容量大而且各个处理器存取同一存储字的时间相同,故偏移模块的并行实现较为容易.但是对于分布存储的并行机和机群系统而言,由于其主存呈分散状态,且各个处理器存取同一存储字的时间呈层次性的特点。这时,对偏移处理模块予以并行化时将面临两大难点:(1)成像区的分配问题;(2)射线旅行时表的保存及获取问题。下面就这两个问题进行详细的分析。
(1)成像区的分配问题
当成像空间大于单个CPU内存容量时,成像空间不能完整地存放在并行机中每个结点的内存中。在这种情况下,成像空间分割的方案是:把成像区分割到最少的处理器上,并且把这些处理器尽可能地集中到相同的几个结点上。这时,在这些处理器上创建的进程就构成了一个进程组,它们协同工作,共同完成整个成像区的处理。对于某一地震道(集),需要遍历整个成像区,同时,要求该进程组中各个进程在完成偏移处理后同步,经过同步点后,再对重新获得的地震道(集)进行同样的处理。同时,在另外一些处理器上创建的进程也构成这样的进程组,完成类似的工作。进程组与进程组之间相互独立;进程组内各进程相互关联,需要同步。即:相同的输入地震道数据需传送到同一处理器组中的所有处理器上;这就需要这些处理器同步后才能接收输入的地震道。同时,在最后成像结果回收的时候也只能一部分一部分地回收、叠加、输出,然后再一部分一部分地回收、叠加、输出,……直至结束。而且,输出的时侯应按序(按处理器在组中的序号)输出。
(2)射线推行时表的保存及获取问题
偏移成像时,相应于每一个输入地震道要读取并传输炮点和接收点的射线定时表格,对于KL2勘探资料,该数据量超过9000G字节,所以,数据传输是影响并行效率的关键所在。实际上,偏移所用的走时表格具有高重复性的特点,利用这个特点能够有效地减少网络上的数据传输量。针对这种情况,我们采用了类似并行文件系统的思想。即:在计算射线旅行时阶段,在每个参与计算的Slave上打开一个新的存放旅行时的文件。当旅行时计算出来后,立即存入本进程所打开的文件中,而无需利用消息传递机制把旅行时传回Master,由Master来进行存储;并同时在Master中把该项旅行时的相关信息记录到一索引文件中。而在进行成像处理过程中,当需要旅行时,首先,本进程的内存中是否有该项旅行时,如有,则直接使用;否则,查询该索引文件,确定出所需旅行时所在文件的文件序号及所在文件中的记录序号,这样就可以直接定位,然后读取。通过该策略,可以较为有效地避免旅行时的存放、读取时的“瓶颈”问题。
以8个CPU作为参照,当CPU个数达到32时,其并行加速比超过91%,说明三维叠前深度偏移的并行化是有效的,同时,也说明曙光3000并行计算机的优良性能。
三维叠前深度偏移的实际应用依赖于并行处理,并行计算机的体系结构、并行机制、传输效率、计算性能等因素对并行效率有很大的影响,而合理地利用并行计算机的资源和能力则是应用方面的课题。曙光3000并行计算机突出的性能指标为三维叠前深度偏移技术的实际应用提供了条件,而地震成像软件系统及其在并行方面的客户化工作则为曙光3000的专业化应用打下了基础,本文通过KL2大型油气田地震资料的深度成像,展示了具有自主知识产权的专业软件系统与国产超大规模并行计算机相结合的成功实例和美好发展前景。