服务器 频道

如何提高效率 石油勘探挑战高性能计算

    详解地震资料处理HPC的三大关键因素

     目前为石油行业客户广泛应用的商用地震资料处理软件有Paradigm的Geodepth和Focus、Western Geco的Omega、CGG的GeoCluster,这些应用均为支持大规模集群运算的并行版本。地震资料处理是典型的浮点计算密集型应用,以求解数据密集的波动方程为主要计算模式,因此对浮点计算能力要求较高,对内存带宽的占用中等,而大量炮集的处理需要良好的多核扩展性。

 如何提高效率 石油勘探挑战高性能计算

    另一方面,国内自主开发的这一类软件主要是采用PSTM叠前时间偏移和PSDM叠前深度偏移的算法,如中国石油东方地球物理公司(BGP)自主开发的GeoEast、中国石化南京石油物探研究所开发的iCluster等。在计算精度和复杂度上,国外主要厂商WesternGeco等已开始将RTM逆时偏移等消耗CPU资源更多、精度更高的偏移算法投入生产。国内的中国石油东方地球物理公司等企业也开始尝试Paradigm公司的CRAM共反射角偏移模块。

    1、计算性能是先决条件

  蒂埃里先生认为,对于这类地震波法的勘探计算来说,性能是用户所在意的关键因素——那意味着更少的计算时间。而以他的观点来看,性能不过是尽一切可能让CPU保持在最有效率的模式运算所需负载。

 如何提高效率 石油勘探挑战高性能计算

  如上图所示,英特尔团队在针对高性能计算的多核处理器中使用了诸多技术,以提升指令缓存的命中率,减少统一周期内的指令数目,减少指令流水线瓶颈和内存访问瓶颈,在预判指令方面也做了众多优化,并通过调整内存、线程和I/O性能将CPU性能最大化。

    2、内存带宽和容量易成瓶颈

 如何提高效率 石油勘探挑战高性能计算

  但另一方面,当多核处理器越来越强的时候,内存带宽和容量就成为了瓶颈。可以看到,英特尔至强5600和至强7500的主要变化之一就是提高了内存带宽(增加内存通道);加大内存容量的支持(这意味着内存寻址线的增加)。相比内存容量来说(不在意内存密度的情况下,容量可以用规模来实现),内存带宽是处理器之外决定计算性能的关键因素之一(决定系统I/O的关键)。

如何提高效率 石油勘探挑战高性能计算

    3、指令集进化提升浮点吞吐率

  除此之外的一个关键因素是处理器的浮点吞吐率,这关乎到处理器指令架构和指令集效率。蒂埃里先生表示,英特尔一直以来引领着处理器指令集的发展,从最早的SSE1到前年65纳米Core时代的SSE3指令集再到45纳米Penry、Nehalem时代的SSE4指令集(SSE4.2已经具备独立的除法器指令集),现在的32纳米Westmere处理器则集成了最新的AVX指令集。

 如何提高效率 石油勘探挑战高性能计算

    记者在之后的采访中了解到,中石油东方地球物理公司研究院处理器中心总工程师赖能和表示,他们最苦恼的问题就是系统CPU利用率和磁盘I/O。他表示,地震波的高性能计算需要大量的磁盘空间做数据存储,因此需要服务器内部具有庞大的磁盘存储。可以说,这类高性能计算应用,对于内存、磁盘和CPU计算能力都有着极高的需求。

 如何提高效率 石油勘探挑战高性能计算

    从上图可以看出,近年来的共炮波动方程算法对于计算性能的需求已经10倍于2000年的克希霍夫算法,而其仍然保持了中等程度的内存敏感需求。这意味着,在10倍的计算量之下,吞吐也要提升10倍以上(考虑到额外的开销,I/O提升要远超过10倍才能满足)。这就对除内存带宽以外的整体I/O带宽提出了苛刻的要求。

 如何提高效率 石油勘探挑战高性能计算
点击图片查看原始大小

    如果被I/O性能掣肘,那么将任务切分后并行在多路系统集群中运算就成了不二之选。上面四幅图显示了英特尔能源及高吞吐计算团队的研究成果:从串行算法的分析优化到拆分为并行计算逻辑,再到并行计算的效率优化以及最后的计算结果分析。蒂埃里先生表示,这些数据表明并行计算是解决目前高吞吐量计算的重要手段,并且只有基于x86指令集的处理器架构才能更有效的为客户提升高性能计算的效率。除此之外,对于类似GPGPU这样的流处理器,蒂埃里先生认为其程序的恶劣迁移性和平均功耗并不适合地球物理的有关计算。

    “每次采集的数据和不同地理位置的数据都需要进行很多调校,包括不同纬度的地震波算法等。x86架构下这很容易,而对于GPU这样的流处理器来说,微调一次周期要数个月,这是客户无法忍受的。”蒂埃里先生道出了GPGPU无法回避的问题:编程和维护成本、难度都较高。

0
相关文章