论文部分内容阅读
逆时偏移技术(Reverse time migration,RTM)主要应用于解决地震成像问题,是现行偏移方法中最精确的一种。逆时偏移成像的优势在于其成像过程是基于数值方法求解双程波动方程,不仅没有角度限制,还充分考虑了回转波、棱柱波、多次反射等复杂传播路径,因此能够在高倾角、速度变化剧烈的复杂地下结构中得到高质量的图像。逆时偏移成像质量优于基于射线理论的Kirchhoff偏移或基于单程波动方程的其他偏移方法,然而求解双程波动方程计算量大、计算需要的存储资源多,导致逆时偏移成像计算成本较高,这在一定程度上限制了其在工业应用中的推广。缓解计算瓶颈可以从两个方面入手:一方面使用快速、高精度算法求解波动方程,以减少所需的计算资源;另一方面采用更高效的硬件,更优化的并行代码来提高逆时偏移的执行效率,充分发挥硬件的性能。逆时偏移成像的核心步骤之一是求解双程波动方程,所以求解波动方程的效率很大程度上决定了整个逆时偏移的效率。本文中,我们建议使用高阶有限差分方法(Finite difference time domain method,FDTD)和时域伪谱方法(Pseudospectral time-domain method,PSTD)来提高逆时偏移中方程数值求解的效率。传统逆时偏移成像中使用较多的二阶中心差分格式,计算简单但存在采样率高、计算量大等问题,求解效率不高。在空间采样上采用高阶差分格式,能够有效降低空间采样率,减少网格规模,从而节省存储空间和计算时间。在三维空间中均使用有限差分方法进行计算,在保证同样计算精度的前提下,空间离散上用12阶差分格式代替2阶差分格式,能够节省多达96.3%的存储空间和大量的计算时间。然而,即使使用高阶差分方法,逆时偏移所需的计算资源仍然过于庞大,要进一步降低计算存储,使用时域伪谱方法是一个有效手段。时域伪谱方法能够比高阶有限差分方法更进一步缩减所需的存储空间和计算时间。时域伪谱方法是传统伪谱方法与完美匹配层技术结合而成。伪谱方法利用快速傅里叶变换(Fast Fourier transform,FFT)求取空间导数,由于奈奎斯特抽样定理(Nyquist sampling theorem),伪谱方法的空间采样密度仅需要每个最小波长2个采样点,这仅为2阶差分格式的六分之一和12阶差分格式的二分之一。对一个三维问题,在获得同样计算精度的前提下,伪谱方法需要的空间网格规模约为2阶差分格式的0.5%,且仅为12阶段差分格式的12.5%。然而,由于傅里叶变换的隐含周期性约束引起的折叠效应和Gibbs效应,传统伪谱方法具有的低采样、高精度优势只有在空间上具有周期性的问题上才能充分发挥作用,这极大限制了伪谱方法的广泛应用。时域伪谱方法采用完美匹配层技术作为边界条件,不仅能够截断物理计算区域,并使边界处不产生反射,还能够人为构造出周期性条件,从而能够满足傅里叶变换的隐含周期性约束,使得时域伪谱方法能够在复杂的非周期性问题中使用。为了满足逆时偏移的庞大计算需求,中央处理器集群(CPU Cluster)、通用图形处理单元(Graphics Processing Unit,GPU)和现场可编程门阵列(Field programing gate array,FPGA)等硬件设备均在逆时偏移中得到不同层次的应用。在这些硬件中,性能稳定、通用性好、编程难度适中的主要有中央处理器集群和图形处理单元。我们在逆时偏移中使用的高阶差分方法和时域伪谱方法也是适合并行加速的。本文中,我们在中央处理器中使用OpenMP技术、在图形处理单元中基于CUDA平台对逆时偏移进行了并行加速,并取得了良好的加速效果。采用高阶差分方法和时域伪谱方法,与传统的二阶中心差分方法相比,只需要较低的空间采样率就能达到同样的精度,因此能够大量节省占用的存储空间,这一点对于显存数量本就极为有限的图形处理单元尤其重要。采用我们建议的算法使得图形处理单元能够求解规模比原来大得多的问题,计算效率也大幅度提升。文中我们还对时域伪谱方法在图形处理单元中的计算进行了优化。我们提出了一种结合了一维傅里叶变换和基于共享内存的高效矩阵转置的新方法来代替三维傅里叶变换,使得图形处理单元中伪谱求导的效率提升了 30%。我们还采用了把实数序列傅里叶变换替换成复数序列傅里叶变换得到的一种新的合并伪谱求导算子,使得伪谱求导的效率再次获得了提升,计算时间平均减少了 20%。本文中,我们在多个2D、3D地震模型中应用了我们提出的逆时偏移方法,并验证了其精确、快速、计算成本低等特点。本论文的创新性在于:针对逆时偏移成像的主要瓶颈,本文一方面在逆时偏移成像中使用了快速高精度的高阶差分和时域伪谱方法,大幅度减少了所需的计算资源,促进了逆时偏移成像在工业中的应用;另一方面使用多种加速技术对基于高阶差分和时域伪谱方法的逆时偏移成像进行了并行加速,对加速的步骤和细节进行了优化,较大幅度提升了加速效果,从而提高了计算资源的使用效率。