服务器 频道

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

    【IT168 专稿】随着国际社会对地球环境的关注与日剧增,石油行业如何能在保证不破坏生态环境的情况下,实现高效勘探和开采是当前能源领域的主要话题。在英特尔2010年高性能计算研讨会上,英特尔能源及高吞吐计算团队高级主管工程师菲利普•蒂埃里表示,随着全球石油资源的日益减少,现有油田的深度开采,石油行业被迫进入更加复杂的环境中,更加复杂的计算模型需要更高的计算系统,百亿亿计算很可能将在石油行业首先出现。

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

    石油勘探与高性能计算

  前不久发布的第35届全球高性能计算Top 500排行榜中,英特尔总共有408套上榜系统,占据榜单近82%的份额,而90%以上的四核系统均使用了英特尔至强处理器(引人瞩目的是:此次榜单中已有7套系统采用了英特尔至强5600系列处理器(研发代号:Westmere-EP),还有2套是基于新的英特尔至强7500系列处理器(研发代号:Nehalem-EX))。其中大部分用在科学计算和能源计算领域(如美国能源部、中石油中石化等超算机房)。可见,在高性能计算方面,英特尔多核处理器在高性能计算领域充分得到了广大用户的认可。

 如何提高效率 石油勘探挑战高性能计算
英特尔能源及高吞吐计算团队高级主管工程师 菲利普•蒂埃里先生

  蒂埃里先生表示,从70年代开始到现在,地球物理的研究运用了claerbout偏移状态方程、Tarantula反演问题原理等理论,结合建模、数据获取进行断层分析。早期的分析主要是基于2D数据采集,从90年代开始数据获取开始运用3D方式,并逐渐升级到3D WAZ方式。蒂埃里先生认为,随着成像模式的改进,地球物理也逐渐从2D成像(如2D WEM、2D RTM等)演进到3D成像模式。

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

  不过,3D成像对于后台计算处理的压力过大,在90年代早期一般的石油勘探不敢采用过于精细的复杂算法就是因为当时的超级计算机性能不高,往往一次勘探得到的数据需要数个月的计算时间成像。而现在,至强系列处理器的进步使得超级计算机跃升到千万亿次(Pflops)级别,这也极大的缩短了勘探数据的计算时间——使得精确3D成像构造成为可能,而其中必须使用的是地震波石油勘探。

  据了解,地震波法石油勘探使用的高性能计算应用,主要可分为地震资料处理和油藏模拟两大类。地震资料处理是典型的浮点计算密集型应用,以求解数据密集的波动方程为主要计算模式,因此对浮点计算能力要求较高,对大量密集的处理需要良好的多核扩展性。而油藏模拟对计算平台的要求是需要支持稀疏矩阵方程的迭代求解,对内存带宽的要求非常高,并需要大缓存支持,因此这类软件可归为对内存带宽高度敏感的计算密集应用。

  结合这两大类石油勘探领域核心高性能计算应用的特点,以及石油企业对于勘探业务计算任务执行效率和成本的要求,适用于这一领域的高性能计算解决方案,必须要具备以下四个特性:

  1. 具有强大的性能,特别是浮点计算性能、并行计算性能和内存子系统性能;

  2. 拥有出色的能效表现和性价比;

  3. 配备优秀的软件开发和调优工具;

  4. 符合开放的标准,软硬件层面都有广泛的合作伙伴支持。

    详解地震资料处理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无法回避的问题:编程和维护成本、难度都较高。

    下一个十年:百亿亿次计算的构想

  菲利普•蒂埃里先生认为,未来10年的地震波成像计算需求,将主要是声学波计算转换成弹性波计算的过程,并且这一转变会导致5~6倍的计算性能需求、内存容量、I/O带宽需求的增加。

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

    据了解,目前的地震波计算主要是以较粗糙的算法来计算声学回波的一系列数据,用以描绘地下油藏的分布和地质结构。而随着石油储量的逐渐枯竭(以往打个洞往外喷油的情形已经不再,需要往里注入高压水和泥浆将石油压出来,现在有些地方这么做也无法提取石油了,于是需要往里注入化学试剂将石油“洗出来”),更有效的探明石油在地下的分布形态将有助于科学可持续的开采,并将可以对一些原先无法探测的地域进行勘探(如高海拔区域等)。

    声学回波只能大致的描绘地质结构,而弹性波却可以将各个地质断层的细微结构完好的显示出来。从算法角度来说,声学波是简略算法,而弹性波的算法要复杂的多,因为需要确认地下各个细节和地震波在不同地质结构中来回“弹着”传播造成的衍射,进而逆推出地下岩层和地质结构,更精细的描绘油矿分布。

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

    根据英特尔能源及高吞吐计算团队的研究结果,应对未来勘探的高性能计算系统除了必须具备多核多路服务器外,还需要应用诸如SSD这样的固态硬盘以保证高随机I/O——不过,目前SSD的容量还有限(SLC只有64GB,MLC也才刚刚要突破300G大关),因此业内人士表示SSD还不能大规模应用在勘探领域,不过注定是未来的方向。

    2019年迎来Exaflops百亿亿次计算!

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

    看了上图,任谁都会振奋一把——Exaflops百亿亿次计算——是目前千万亿次计算的100倍。蒂埃里先生坦然的表示,根据以往的处理器和超级计算机发展速度,2019年左右超级计算机将达到Exaflops级别的计算能力。这张图显示了其存在意义:将把目前高性能计算数据中心的能效比缩减100倍——每峰值Tflops的功耗约为30皮焦耳(今天这个数字是3千瓦)。而目前这一百亿亿次项目正在德国的Exascale研究会的带动下进行着系统研究。

    有趣的是,要实现百亿亿次计算机,其难点也正如其卖点——必须先解决庞大的功耗问题——如果以目前的功耗来建造,一个百亿亿次的计算系统目前需要15座核电站提供运行所需要的电力。

0
相关文章